From 29c7dde5ed43c3e89b74c0aea91bddbfca6bcf4b Mon Sep 17 00:00:00 2001
From: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
Date: Tue, 4 Jul 2023 15:16:44 +0000
Subject: [PATCH] Release 0.0.14
---
.fernignore | 1 +
LICENSE | 21 +
alert_rule.go | 39 ++
alert_strategy.go | 48 ++
api_error_response.go | 14 +
api_error_response_data.go | 6 +
api_key_integration_configs.go | 8 +
attached_integration_to_source.go | 7 +
attempt_error_codes.go | 150 +++++
attempt_state.go | 65 ++
attempt_status.go | 60 ++
attempt_trigger.go | 66 ++
attempts_client.go | 158 +++++
bad_request_error.go | 27 +
basic_auth_integration_configs.go | 8 +
batch_operation.go | 35 ++
batch_operation_paginated_result.go | 9 +
batch_operation_plan.go | 12 +
batch_operation_query.go | 66 ++
bookmark.go | 25 +
bookmark_paginated_result.go | 9 +
bookmarks_client.go | 385 ++++++++++++
bulk_retry_events_client.go | 321 ++++++++++
bulk_retry_ignored_events_client.go | 321 ++++++++++
bulk_retry_requests_client.go | 321 ++++++++++
client.go | 141 +++++
connection.go | 27 +
connection_filter_property.go | 98 +++
...ter_property_connection_filter_property.go | 6 +
connection_paginated_result.go | 9 +
connections_client.go | 515 ++++++++++++++++
console_line.go | 8 +
console_line_type.go | 65 ++
core/client_option.go | 47 ++
core/core.go | 179 ++++++
core/environments.go | 9 +
core/pointer.go | 103 ++++
create_bookmark_request.go | 14 +
create_connection_request.go | 22 +
create_connection_request_destination.go | 18 +
...n_request_destination_rate_limit_period.go | 54 ++
create_connection_request_ruleset.go | 12 +
create_connection_request_source.go | 9 +
create_destination_request.go | 17 +
...e_destination_request_rate_limit_period.go | 54 ++
create_event_bulk_retry_request.go | 8 +
create_event_bulk_retry_request_query.go | 42 ++
...event_bulk_retry_request_query_attempts.go | 66 ++
...event_bulk_retry_request_query_attempts.go | 12 +
create_event_bulk_retry_request_query_body.go | 66 ++
...ate_event_bulk_retry_request_query_body.go | 6 +
..._bulk_retry_request_query_bulk_retry_id.go | 66 ++
...e_event_bulk_retry_request_query_cli_id.go | 82 +++
...e_event_bulk_retry_request_query_cli_id.go | 7 +
...nt_bulk_retry_request_query_cli_user_id.go | 65 ++
...ent_bulk_retry_request_query_created_at.go | 66 ++
...ent_bulk_retry_request_query_created_at.go | 11 +
...bulk_retry_request_query_destination_id.go | 67 +++
...ent_bulk_retry_request_query_error_code.go | 66 ++
..._bulk_retry_request_query_event_data_id.go | 66 ++
..._event_bulk_retry_request_query_headers.go | 66 ++
..._event_bulk_retry_request_query_headers.go | 6 +
create_event_bulk_retry_request_query_id.go | 67 +++
...event_bulk_retry_request_query_issue_id.go | 66 ++
...ulk_retry_request_query_last_attempt_at.go | 66 ++
...ulk_retry_request_query_last_attempt_at.go | 11 +
...t_bulk_retry_request_query_parsed_query.go | 66 ++
...t_bulk_retry_request_query_parsed_query.go | 6 +
...ulk_retry_request_query_response_status.go | 82 +++
...ulk_retry_request_query_response_status.go | 12 +
...vent_bulk_retry_request_query_source_id.go | 67 +++
...e_event_bulk_retry_request_query_status.go | 66 ++
..._bulk_retry_request_query_successful_at.go | 66 ++
..._bulk_retry_request_query_successful_at.go | 11 +
...ent_bulk_retry_request_query_webhook_id.go | 67 +++
create_ignored_event_bulk_retry_request.go | 8 +
..._ignored_event_bulk_retry_request_query.go | 13 +
...ed_event_bulk_retry_request_query_cause.go | 67 +++
...ent_bulk_retry_request_query_webhook_id.go | 67 +++
create_integration_request.go | 13 +
create_integration_request_configs.go | 114 ++++
create_issue_trigger_request.go | 12 +
create_issue_trigger_request_configs.go | 82 +++
create_request_bulk_retry_request.go | 8 +
create_request_bulk_retry_request_query.go | 29 +
...e_request_bulk_retry_request_query_body.go | 66 ++
...e_request_bulk_retry_request_query_body.go | 6 +
..._bulk_retry_request_query_bulk_retry_id.go | 66 ++
...est_bulk_retry_request_query_created_at.go | 65 ++
...est_bulk_retry_request_query_created_at.go | 11 +
...t_bulk_retry_request_query_events_count.go | 81 +++
...t_bulk_retry_request_query_events_count.go | 12 +
...equest_bulk_retry_request_query_headers.go | 66 ++
...equest_bulk_retry_request_query_headers.go | 6 +
create_request_bulk_retry_request_query_id.go | 67 +++
..._bulk_retry_request_query_ignored_count.go | 81 +++
..._bulk_retry_request_query_ignored_count.go | 12 +
...st_bulk_retry_request_query_ingested_at.go | 65 ++
...st_bulk_retry_request_query_ingested_at.go | 11 +
...t_bulk_retry_request_query_parsed_query.go | 66 ++
...t_bulk_retry_request_query_parsed_query.go | 6 +
...ulk_retry_request_query_rejection_cause.go | 82 +++
...ulk_retry_request_query_rejection_cause.go | 12 +
...uest_bulk_retry_request_query_source_id.go | 67 +++
...request_bulk_retry_request_query_status.go | 47 ++
create_ruleset_request.go | 11 +
create_source_request.go | 8 +
create_transformation_request.go | 12 +
create_transformation_request_env_value.go | 65 ++
delay_rule.go | 40 ++
deleted_bookmark_response.go | 8 +
deleted_integration.go | 7 +
deleted_issue_trigger_response.go | 7 +
delivery_issue.go | 62 ++
delivery_issue_aggregation_keys.go | 10 +
delivery_issue_data.go | 9 +
delivery_issue_reference.go | 9 +
delivery_issue_with_data.go | 63 ++
destination.go | 27 +
destination_paginated_result.go | 9 +
destination_rate_limit_period.go | 54 ++
destinations_client.go | 421 +++++++++++++
detached_integration_from_source.go | 6 +
event.go | 40 ++
event_array.go | 5 +
event_attempt.go | 43 ++
event_attempt_body.go | 7 +
event_attempt_paginated_result.go | 9 +
event_data.go | 12 +
event_data_body.go | 81 +++
event_data_body_event_data_body.go | 6 +
event_data_headers.go | 65 ++
event_data_parsed_query.go | 65 ++
...ta_parsed_query_event_data_parsed_query.go | 6 +
event_paginated_result.go | 9 +
event_status.go | 65 ++
events_client.go | 367 ++++++++++++
filter_rule.go | 42 ++
filtered_meta.go | 59 ++
get_attempts_request.go | 12 +
...ts_request_dir_get_attempts_request_dir.go | 47 ++
get_bookmarks_request.go | 17 +
...s_request_dir_get_bookmarks_request_dir.go | 47 ++
get_connections_request.go | 19 +
...request_dir_get_connections_request_dir.go | 47 ++
get_destinations_request.go | 17 +
...equest_dir_get_destinations_request_dir.go | 47 ++
get_event_bulk_retries_request.go | 17 +
..._dir_get_event_bulk_retries_request_dir.go | 47 ++
get_events_request.go | 32 +
...ents_request_dir_get_events_request_dir.go | 47 ++
...st_order_by_get_events_request_order_by.go | 53 ++
get_ignored_event_bulk_retries_request.go | 17 +
..._ignored_event_bulk_retries_request_dir.go | 47 ++
get_integrations_request.go | 8 +
get_issue_count_request.go | 20 +
...request_dir_get_issue_count_request_dir.go | 47 ++
...der_by_get_issue_count_request_order_by.go | 65 ++
...t_status_get_issue_count_request_status.go | 60 ++
...quest_type_get_issue_count_request_type.go | 54 ++
get_issue_triggers_request.go | 14 +
...uest_dir_get_issue_triggers_request_dir.go | 47 ++
..._by_get_issue_triggers_request_order_by.go | 47 ++
get_issues_request.go | 20 +
...sues_request_dir_get_issues_request_dir.go | 47 ++
...st_order_by_get_issues_request_order_by.go | 65 ++
...equest_status_get_issues_request_status.go | 60 ++
...es_request_type_get_issues_request_type.go | 54 ++
get_request_bulk_retries_request.go | 17 +
...ir_get_request_bulk_retries_request_dir.go | 47 ++
get_request_events_request.go | 32 +
...uest_dir_get_request_events_request_dir.go | 47 ++
..._by_get_request_events_request_order_by.go | 53 ++
get_request_ignored_events_request.go | 12 +
..._get_request_ignored_events_request_dir.go | 47 ++
get_requests_request.go | 26 +
...ts_request_dir_get_requests_request_dir.go | 47 ++
..._order_by_get_requests_request_order_by.go | 47 ++
get_requests_request_status.go | 47 ++
get_rulesets_request.go | 15 +
...ts_request_dir_get_rulesets_request_dir.go | 47 ++
get_sources_request.go | 16 +
...ces_request_dir_get_sources_request_dir.go | 47 ++
get_transformation_executions_request.go | 15 +
...t_transformation_executions_request_dir.go | 47 ++
...sformation_executions_request_log_level.go | 65 ++
get_transformations_request.go | 13 +
...est_dir_get_transformations_request_dir.go | 47 ++
go.mod | 3 +
go.sum | 0
handled_hmac_configs.go | 7 +
hmac_algorithms.go | 59 ++
hmac_integration_configs.go | 10 +
hmac_integration_configs_encoding.go | 47 ++
ignored_event.go | 14 +
ignored_event_cause.go | 59 ++
ignored_event_meta.go | 65 ++
ignored_event_paginated_result.go | 9 +
integration.go | 23 +
integration_configs.go | 114 ++++
integration_feature.go | 53 ++
integration_paginated_result.go | 9 +
integration_provider.go | 174 ++++++
integrations_client.go | 392 ++++++++++++
issue.go | 66 ++
issue_count.go | 8 +
issue_status.go | 60 ++
issue_trigger.go | 23 +
issue_trigger_backpressure_configs.go | 10 +
...igger_backpressure_configs_destinations.go | 66 ++
issue_trigger_backpressure_delay.go | 6 +
issue_trigger_channels.go | 10 +
issue_trigger_delivery_configs.go | 10 +
issue_trigger_delivery_configs_connections.go | 66 ++
issue_trigger_email_channel.go | 7 +
issue_trigger_integration_channel.go | 7 +
issue_trigger_paginated_result.go | 9 +
issue_trigger_reference.go | 82 +++
issue_trigger_slack_channel.go | 9 +
issue_trigger_strategy.go | 48 ++
issue_trigger_transformation_configs.go | 10 +
..._transformation_configs_transformations.go | 66 ++
issue_triggers_client.go | 445 ++++++++++++++
issue_type.go | 54 ++
issue_with_data.go | 65 ++
issue_with_data_paginated_result.go | 9 +
issues_client.go | 387 ++++++++++++
not_found_error.go | 27 +
notifications_client.go | 54 ++
order_by_direction.go | 59 ++
raw_body.go | 7 +
request.go | 36 ++
request_data.go | 12 +
request_data_body.go | 81 +++
request_data_body_request_data_body.go | 6 +
request_data_headers.go | 65 ++
request_data_parsed_query.go | 65 ++
..._parsed_query_request_data_parsed_query.go | 6 +
request_ingest_priority.go | 48 ++
request_paginated_result.go | 9 +
request_rejection_cause.go | 89 +++
requests_client.go | 566 ++++++++++++++++++
retried_event.go | 8 +
retry_request.go | 8 +
retry_request_request.go | 8 +
retry_rule.go | 43 ++
retry_strategy.go | 48 ++
rule.go | 113 ++++
ruleset.go | 23 +
ruleset_paginated_result.go | 9 +
rulesets_client.go | 413 +++++++++++++
seek_pagination.go | 11 +
seek_pagination_dir.go | 65 ++
seek_pagination_order_by.go | 65 ++
shopify_integration_configs.go | 12 +
...y_integration_configs_rate_limit_period.go | 47 ++
short_event_data.go | 12 +
short_event_data_body.go | 81 +++
...t_event_data_body_short_event_data_body.go | 6 +
short_event_data_headers.go | 65 ++
short_event_data_parsed_query.go | 65 ++
...sed_query_short_event_data_parsed_query.go | 6 +
source.go | 25 +
source_integration.go | 14 +
source_paginated_result.go | 9 +
sources_client.go | 417 +++++++++++++
test_transformation_request.go | 17 +
test_transformation_request_env.go | 7 +
test_transformation_request_request.go | 17 +
test_transformation_request_request_body.go | 66 ++
...est_transformation_request_request_body.go | 6 +
...sformation_request_request_parsed_query.go | 7 +
toggle_webhook_notifications.go | 9 +
toggle_webhook_notifications_request.go | 12 +
topics_value.go | 60 ++
transform_full.go | 42 ++
transform_full_transformation.go | 13 +
transform_reference.go | 40 ++
transform_rule.go | 65 ++
transformation.go | 22 +
transformation_execution.go | 19 +
transformation_execution_log_level.go | 66 ++
transformation_execution_paginated_result.go | 9 +
transformation_executor_output.go | 12 +
transformation_executor_output_request.go | 11 +
...sformation_executor_output_request_body.go | 65 ++
...sformation_executor_output_request_body.go | 6 +
...rmation_executor_output_request_headers.go | 65 ++
...on_executor_output_request_parsed_query.go | 65 ++
...on_executor_output_request_parsed_query.go | 6 +
...formation_executor_output_request_query.go | 65 ++
...formation_executor_output_request_query.go | 6 +
transformation_failed_meta.go | 7 +
transformation_issue.go | 62 ++
transformation_issue_aggregation_keys.go | 9 +
transformation_issue_data.go | 9 +
transformation_issue_reference.go | 10 +
transformation_issue_with_data.go | 63 ++
transformation_paginated_result.go | 9 +
transformations_client.go | 503 ++++++++++++++++
trigger_bookmark_request.go | 8 +
trigger_bookmark_request_target.go | 48 ++
unprocessable_entity_error.go | 27 +
update_bookmark_request.go | 14 +
update_connection_request.go | 14 +
update_connection_request_ruleset.go | 12 +
update_destination_request.go | 19 +
...e_destination_request_rate_limit_period.go | 54 ++
update_integration_request.go | 13 +
update_integration_request_configs.go | 114 ++++
update_issue_request.go | 8 +
update_issue_request_status.go | 60 ++
update_issue_trigger_request.go | 13 +
update_issue_trigger_request_configs.go | 82 +++
update_ruleset_request.go | 13 +
update_source_request.go | 10 +
update_transformation_request.go | 12 +
update_transformation_request_env_value.go | 65 ++
upsert_connection_request.go | 22 +
upsert_connection_request_destination.go | 18 +
...n_request_destination_rate_limit_period.go | 54 ++
upsert_connection_request_ruleset.go | 12 +
upsert_connection_request_source.go | 9 +
upsert_destination_request.go | 17 +
...t_destination_request_rate_limit_period.go | 54 ++
upsert_issue_trigger_request.go | 12 +
upsert_issue_trigger_request_configs.go | 82 +++
upsert_ruleset_request.go | 11 +
upsert_source_request.go | 8 +
upsert_transformation_request.go | 12 +
upsert_transformation_request_env_value.go | 65 ++
331 files changed, 17558 insertions(+)
create mode 100644 .fernignore
create mode 100644 LICENSE
create mode 100644 alert_rule.go
create mode 100644 alert_strategy.go
create mode 100644 api_error_response.go
create mode 100644 api_error_response_data.go
create mode 100644 api_key_integration_configs.go
create mode 100644 attached_integration_to_source.go
create mode 100644 attempt_error_codes.go
create mode 100644 attempt_state.go
create mode 100644 attempt_status.go
create mode 100644 attempt_trigger.go
create mode 100644 attempts_client.go
create mode 100644 bad_request_error.go
create mode 100644 basic_auth_integration_configs.go
create mode 100644 batch_operation.go
create mode 100644 batch_operation_paginated_result.go
create mode 100644 batch_operation_plan.go
create mode 100644 batch_operation_query.go
create mode 100644 bookmark.go
create mode 100644 bookmark_paginated_result.go
create mode 100644 bookmarks_client.go
create mode 100644 bulk_retry_events_client.go
create mode 100644 bulk_retry_ignored_events_client.go
create mode 100644 bulk_retry_requests_client.go
create mode 100644 client.go
create mode 100644 connection.go
create mode 100644 connection_filter_property.go
create mode 100644 connection_filter_property_connection_filter_property.go
create mode 100644 connection_paginated_result.go
create mode 100644 connections_client.go
create mode 100644 console_line.go
create mode 100644 console_line_type.go
create mode 100644 core/client_option.go
create mode 100644 core/core.go
create mode 100644 core/environments.go
create mode 100644 core/pointer.go
create mode 100644 create_bookmark_request.go
create mode 100644 create_connection_request.go
create mode 100644 create_connection_request_destination.go
create mode 100644 create_connection_request_destination_rate_limit_period.go
create mode 100644 create_connection_request_ruleset.go
create mode 100644 create_connection_request_source.go
create mode 100644 create_destination_request.go
create mode 100644 create_destination_request_rate_limit_period.go
create mode 100644 create_event_bulk_retry_request.go
create mode 100644 create_event_bulk_retry_request_query.go
create mode 100644 create_event_bulk_retry_request_query_attempts.go
create mode 100644 create_event_bulk_retry_request_query_attempts_create_event_bulk_retry_request_query_attempts.go
create mode 100644 create_event_bulk_retry_request_query_body.go
create mode 100644 create_event_bulk_retry_request_query_body_create_event_bulk_retry_request_query_body.go
create mode 100644 create_event_bulk_retry_request_query_bulk_retry_id.go
create mode 100644 create_event_bulk_retry_request_query_cli_id.go
create mode 100644 create_event_bulk_retry_request_query_cli_id_create_event_bulk_retry_request_query_cli_id.go
create mode 100644 create_event_bulk_retry_request_query_cli_user_id.go
create mode 100644 create_event_bulk_retry_request_query_created_at.go
create mode 100644 create_event_bulk_retry_request_query_created_at_create_event_bulk_retry_request_query_created_at.go
create mode 100644 create_event_bulk_retry_request_query_destination_id.go
create mode 100644 create_event_bulk_retry_request_query_error_code.go
create mode 100644 create_event_bulk_retry_request_query_event_data_id.go
create mode 100644 create_event_bulk_retry_request_query_headers.go
create mode 100644 create_event_bulk_retry_request_query_headers_create_event_bulk_retry_request_query_headers.go
create mode 100644 create_event_bulk_retry_request_query_id.go
create mode 100644 create_event_bulk_retry_request_query_issue_id.go
create mode 100644 create_event_bulk_retry_request_query_last_attempt_at.go
create mode 100644 create_event_bulk_retry_request_query_last_attempt_at_create_event_bulk_retry_request_query_last_attempt_at.go
create mode 100644 create_event_bulk_retry_request_query_parsed_query.go
create mode 100644 create_event_bulk_retry_request_query_parsed_query_create_event_bulk_retry_request_query_parsed_query.go
create mode 100644 create_event_bulk_retry_request_query_response_status.go
create mode 100644 create_event_bulk_retry_request_query_response_status_create_event_bulk_retry_request_query_response_status.go
create mode 100644 create_event_bulk_retry_request_query_source_id.go
create mode 100644 create_event_bulk_retry_request_query_status.go
create mode 100644 create_event_bulk_retry_request_query_successful_at.go
create mode 100644 create_event_bulk_retry_request_query_successful_at_create_event_bulk_retry_request_query_successful_at.go
create mode 100644 create_event_bulk_retry_request_query_webhook_id.go
create mode 100644 create_ignored_event_bulk_retry_request.go
create mode 100644 create_ignored_event_bulk_retry_request_query.go
create mode 100644 create_ignored_event_bulk_retry_request_query_cause.go
create mode 100644 create_ignored_event_bulk_retry_request_query_webhook_id.go
create mode 100644 create_integration_request.go
create mode 100644 create_integration_request_configs.go
create mode 100644 create_issue_trigger_request.go
create mode 100644 create_issue_trigger_request_configs.go
create mode 100644 create_request_bulk_retry_request.go
create mode 100644 create_request_bulk_retry_request_query.go
create mode 100644 create_request_bulk_retry_request_query_body.go
create mode 100644 create_request_bulk_retry_request_query_body_create_request_bulk_retry_request_query_body.go
create mode 100644 create_request_bulk_retry_request_query_bulk_retry_id.go
create mode 100644 create_request_bulk_retry_request_query_created_at.go
create mode 100644 create_request_bulk_retry_request_query_created_at_create_request_bulk_retry_request_query_created_at.go
create mode 100644 create_request_bulk_retry_request_query_events_count.go
create mode 100644 create_request_bulk_retry_request_query_events_count_create_request_bulk_retry_request_query_events_count.go
create mode 100644 create_request_bulk_retry_request_query_headers.go
create mode 100644 create_request_bulk_retry_request_query_headers_create_request_bulk_retry_request_query_headers.go
create mode 100644 create_request_bulk_retry_request_query_id.go
create mode 100644 create_request_bulk_retry_request_query_ignored_count.go
create mode 100644 create_request_bulk_retry_request_query_ignored_count_create_request_bulk_retry_request_query_ignored_count.go
create mode 100644 create_request_bulk_retry_request_query_ingested_at.go
create mode 100644 create_request_bulk_retry_request_query_ingested_at_create_request_bulk_retry_request_query_ingested_at.go
create mode 100644 create_request_bulk_retry_request_query_parsed_query.go
create mode 100644 create_request_bulk_retry_request_query_parsed_query_create_request_bulk_retry_request_query_parsed_query.go
create mode 100644 create_request_bulk_retry_request_query_rejection_cause.go
create mode 100644 create_request_bulk_retry_request_query_rejection_cause_create_request_bulk_retry_request_query_rejection_cause.go
create mode 100644 create_request_bulk_retry_request_query_source_id.go
create mode 100644 create_request_bulk_retry_request_query_status.go
create mode 100644 create_ruleset_request.go
create mode 100644 create_source_request.go
create mode 100644 create_transformation_request.go
create mode 100644 create_transformation_request_env_value.go
create mode 100644 delay_rule.go
create mode 100644 deleted_bookmark_response.go
create mode 100644 deleted_integration.go
create mode 100644 deleted_issue_trigger_response.go
create mode 100644 delivery_issue.go
create mode 100644 delivery_issue_aggregation_keys.go
create mode 100644 delivery_issue_data.go
create mode 100644 delivery_issue_reference.go
create mode 100644 delivery_issue_with_data.go
create mode 100644 destination.go
create mode 100644 destination_paginated_result.go
create mode 100644 destination_rate_limit_period.go
create mode 100644 destinations_client.go
create mode 100644 detached_integration_from_source.go
create mode 100644 event.go
create mode 100644 event_array.go
create mode 100644 event_attempt.go
create mode 100644 event_attempt_body.go
create mode 100644 event_attempt_paginated_result.go
create mode 100644 event_data.go
create mode 100644 event_data_body.go
create mode 100644 event_data_body_event_data_body.go
create mode 100644 event_data_headers.go
create mode 100644 event_data_parsed_query.go
create mode 100644 event_data_parsed_query_event_data_parsed_query.go
create mode 100644 event_paginated_result.go
create mode 100644 event_status.go
create mode 100644 events_client.go
create mode 100644 filter_rule.go
create mode 100644 filtered_meta.go
create mode 100644 get_attempts_request.go
create mode 100644 get_attempts_request_dir_get_attempts_request_dir.go
create mode 100644 get_bookmarks_request.go
create mode 100644 get_bookmarks_request_dir_get_bookmarks_request_dir.go
create mode 100644 get_connections_request.go
create mode 100644 get_connections_request_dir_get_connections_request_dir.go
create mode 100644 get_destinations_request.go
create mode 100644 get_destinations_request_dir_get_destinations_request_dir.go
create mode 100644 get_event_bulk_retries_request.go
create mode 100644 get_event_bulk_retries_request_dir_get_event_bulk_retries_request_dir.go
create mode 100644 get_events_request.go
create mode 100644 get_events_request_dir_get_events_request_dir.go
create mode 100644 get_events_request_order_by_get_events_request_order_by.go
create mode 100644 get_ignored_event_bulk_retries_request.go
create mode 100644 get_ignored_event_bulk_retries_request_dir_get_ignored_event_bulk_retries_request_dir.go
create mode 100644 get_integrations_request.go
create mode 100644 get_issue_count_request.go
create mode 100644 get_issue_count_request_dir_get_issue_count_request_dir.go
create mode 100644 get_issue_count_request_order_by_get_issue_count_request_order_by.go
create mode 100644 get_issue_count_request_status_get_issue_count_request_status.go
create mode 100644 get_issue_count_request_type_get_issue_count_request_type.go
create mode 100644 get_issue_triggers_request.go
create mode 100644 get_issue_triggers_request_dir_get_issue_triggers_request_dir.go
create mode 100644 get_issue_triggers_request_order_by_get_issue_triggers_request_order_by.go
create mode 100644 get_issues_request.go
create mode 100644 get_issues_request_dir_get_issues_request_dir.go
create mode 100644 get_issues_request_order_by_get_issues_request_order_by.go
create mode 100644 get_issues_request_status_get_issues_request_status.go
create mode 100644 get_issues_request_type_get_issues_request_type.go
create mode 100644 get_request_bulk_retries_request.go
create mode 100644 get_request_bulk_retries_request_dir_get_request_bulk_retries_request_dir.go
create mode 100644 get_request_events_request.go
create mode 100644 get_request_events_request_dir_get_request_events_request_dir.go
create mode 100644 get_request_events_request_order_by_get_request_events_request_order_by.go
create mode 100644 get_request_ignored_events_request.go
create mode 100644 get_request_ignored_events_request_dir_get_request_ignored_events_request_dir.go
create mode 100644 get_requests_request.go
create mode 100644 get_requests_request_dir_get_requests_request_dir.go
create mode 100644 get_requests_request_order_by_get_requests_request_order_by.go
create mode 100644 get_requests_request_status.go
create mode 100644 get_rulesets_request.go
create mode 100644 get_rulesets_request_dir_get_rulesets_request_dir.go
create mode 100644 get_sources_request.go
create mode 100644 get_sources_request_dir_get_sources_request_dir.go
create mode 100644 get_transformation_executions_request.go
create mode 100644 get_transformation_executions_request_dir_get_transformation_executions_request_dir.go
create mode 100644 get_transformation_executions_request_log_level_get_transformation_executions_request_log_level.go
create mode 100644 get_transformations_request.go
create mode 100644 get_transformations_request_dir_get_transformations_request_dir.go
create mode 100644 go.mod
create mode 100644 go.sum
create mode 100644 handled_hmac_configs.go
create mode 100644 hmac_algorithms.go
create mode 100644 hmac_integration_configs.go
create mode 100644 hmac_integration_configs_encoding.go
create mode 100644 ignored_event.go
create mode 100644 ignored_event_cause.go
create mode 100644 ignored_event_meta.go
create mode 100644 ignored_event_paginated_result.go
create mode 100644 integration.go
create mode 100644 integration_configs.go
create mode 100644 integration_feature.go
create mode 100644 integration_paginated_result.go
create mode 100644 integration_provider.go
create mode 100644 integrations_client.go
create mode 100644 issue.go
create mode 100644 issue_count.go
create mode 100644 issue_status.go
create mode 100644 issue_trigger.go
create mode 100644 issue_trigger_backpressure_configs.go
create mode 100644 issue_trigger_backpressure_configs_destinations.go
create mode 100644 issue_trigger_backpressure_delay.go
create mode 100644 issue_trigger_channels.go
create mode 100644 issue_trigger_delivery_configs.go
create mode 100644 issue_trigger_delivery_configs_connections.go
create mode 100644 issue_trigger_email_channel.go
create mode 100644 issue_trigger_integration_channel.go
create mode 100644 issue_trigger_paginated_result.go
create mode 100644 issue_trigger_reference.go
create mode 100644 issue_trigger_slack_channel.go
create mode 100644 issue_trigger_strategy.go
create mode 100644 issue_trigger_transformation_configs.go
create mode 100644 issue_trigger_transformation_configs_transformations.go
create mode 100644 issue_triggers_client.go
create mode 100644 issue_type.go
create mode 100644 issue_with_data.go
create mode 100644 issue_with_data_paginated_result.go
create mode 100644 issues_client.go
create mode 100644 not_found_error.go
create mode 100644 notifications_client.go
create mode 100644 order_by_direction.go
create mode 100644 raw_body.go
create mode 100644 request.go
create mode 100644 request_data.go
create mode 100644 request_data_body.go
create mode 100644 request_data_body_request_data_body.go
create mode 100644 request_data_headers.go
create mode 100644 request_data_parsed_query.go
create mode 100644 request_data_parsed_query_request_data_parsed_query.go
create mode 100644 request_ingest_priority.go
create mode 100644 request_paginated_result.go
create mode 100644 request_rejection_cause.go
create mode 100644 requests_client.go
create mode 100644 retried_event.go
create mode 100644 retry_request.go
create mode 100644 retry_request_request.go
create mode 100644 retry_rule.go
create mode 100644 retry_strategy.go
create mode 100644 rule.go
create mode 100644 ruleset.go
create mode 100644 ruleset_paginated_result.go
create mode 100644 rulesets_client.go
create mode 100644 seek_pagination.go
create mode 100644 seek_pagination_dir.go
create mode 100644 seek_pagination_order_by.go
create mode 100644 shopify_integration_configs.go
create mode 100644 shopify_integration_configs_rate_limit_period.go
create mode 100644 short_event_data.go
create mode 100644 short_event_data_body.go
create mode 100644 short_event_data_body_short_event_data_body.go
create mode 100644 short_event_data_headers.go
create mode 100644 short_event_data_parsed_query.go
create mode 100644 short_event_data_parsed_query_short_event_data_parsed_query.go
create mode 100644 source.go
create mode 100644 source_integration.go
create mode 100644 source_paginated_result.go
create mode 100644 sources_client.go
create mode 100644 test_transformation_request.go
create mode 100644 test_transformation_request_env.go
create mode 100644 test_transformation_request_request.go
create mode 100644 test_transformation_request_request_body.go
create mode 100644 test_transformation_request_request_body_test_transformation_request_request_body.go
create mode 100644 test_transformation_request_request_parsed_query.go
create mode 100644 toggle_webhook_notifications.go
create mode 100644 toggle_webhook_notifications_request.go
create mode 100644 topics_value.go
create mode 100644 transform_full.go
create mode 100644 transform_full_transformation.go
create mode 100644 transform_reference.go
create mode 100644 transform_rule.go
create mode 100644 transformation.go
create mode 100644 transformation_execution.go
create mode 100644 transformation_execution_log_level.go
create mode 100644 transformation_execution_paginated_result.go
create mode 100644 transformation_executor_output.go
create mode 100644 transformation_executor_output_request.go
create mode 100644 transformation_executor_output_request_body.go
create mode 100644 transformation_executor_output_request_body_transformation_executor_output_request_body.go
create mode 100644 transformation_executor_output_request_headers.go
create mode 100644 transformation_executor_output_request_parsed_query.go
create mode 100644 transformation_executor_output_request_parsed_query_transformation_executor_output_request_parsed_query.go
create mode 100644 transformation_executor_output_request_query.go
create mode 100644 transformation_executor_output_request_query_transformation_executor_output_request_query.go
create mode 100644 transformation_failed_meta.go
create mode 100644 transformation_issue.go
create mode 100644 transformation_issue_aggregation_keys.go
create mode 100644 transformation_issue_data.go
create mode 100644 transformation_issue_reference.go
create mode 100644 transformation_issue_with_data.go
create mode 100644 transformation_paginated_result.go
create mode 100644 transformations_client.go
create mode 100644 trigger_bookmark_request.go
create mode 100644 trigger_bookmark_request_target.go
create mode 100644 unprocessable_entity_error.go
create mode 100644 update_bookmark_request.go
create mode 100644 update_connection_request.go
create mode 100644 update_connection_request_ruleset.go
create mode 100644 update_destination_request.go
create mode 100644 update_destination_request_rate_limit_period.go
create mode 100644 update_integration_request.go
create mode 100644 update_integration_request_configs.go
create mode 100644 update_issue_request.go
create mode 100644 update_issue_request_status.go
create mode 100644 update_issue_trigger_request.go
create mode 100644 update_issue_trigger_request_configs.go
create mode 100644 update_ruleset_request.go
create mode 100644 update_source_request.go
create mode 100644 update_transformation_request.go
create mode 100644 update_transformation_request_env_value.go
create mode 100644 upsert_connection_request.go
create mode 100644 upsert_connection_request_destination.go
create mode 100644 upsert_connection_request_destination_rate_limit_period.go
create mode 100644 upsert_connection_request_ruleset.go
create mode 100644 upsert_connection_request_source.go
create mode 100644 upsert_destination_request.go
create mode 100644 upsert_destination_request_rate_limit_period.go
create mode 100644 upsert_issue_trigger_request.go
create mode 100644 upsert_issue_trigger_request_configs.go
create mode 100644 upsert_ruleset_request.go
create mode 100644 upsert_source_request.go
create mode 100644 upsert_transformation_request.go
create mode 100644 upsert_transformation_request_env_value.go
diff --git a/.fernignore b/.fernignore
new file mode 100644
index 0000000..084a8eb
--- /dev/null
+++ b/.fernignore
@@ -0,0 +1 @@
+# Specify files that shouldn't be modified by Fern
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..a09c223
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Fern
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/alert_rule.go b/alert_rule.go
new file mode 100644
index 0000000..48bb6c8
--- /dev/null
+++ b/alert_rule.go
@@ -0,0 +1,39 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+type AlertRule struct {
+ Strategy AlertStrategy `json:"strategy,omitempty"`
+ type_ string
+}
+
+func (a *AlertRule) Type() string {
+ return a.type_
+}
+
+func (a *AlertRule) UnmarshalJSON(data []byte) error {
+ type unmarshaler AlertRule
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *a = AlertRule(value)
+ a.type_ = "alert"
+ return nil
+}
+
+func (a *AlertRule) MarshalJSON() ([]byte, error) {
+ type embed AlertRule
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*a),
+ Type: "alert",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/alert_strategy.go b/alert_strategy.go
new file mode 100644
index 0000000..788da4c
--- /dev/null
+++ b/alert_strategy.go
@@ -0,0 +1,48 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Alert strategy to use
+type AlertStrategy uint8
+
+const (
+ AlertStrategyEachAttempt AlertStrategy = iota + 1
+ AlertStrategyLastAttempt
+)
+
+func (a AlertStrategy) String() string {
+ switch a {
+ default:
+ return strconv.Itoa(int(a))
+ case AlertStrategyEachAttempt:
+ return "each_attempt"
+ case AlertStrategyLastAttempt:
+ return "last_attempt"
+ }
+}
+
+func (a AlertStrategy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", a.String())), nil
+}
+
+func (a *AlertStrategy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "each_attempt":
+ value := AlertStrategyEachAttempt
+ *a = value
+ case "last_attempt":
+ value := AlertStrategyLastAttempt
+ *a = value
+ }
+ return nil
+}
diff --git a/api_error_response.go b/api_error_response.go
new file mode 100644
index 0000000..0f8bebb
--- /dev/null
+++ b/api_error_response.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Error response model
+type ApiErrorResponse struct {
+ // Error code
+ Code string `json:"code,omitempty"`
+ // Status code
+ Status float64 `json:"status,omitempty"`
+ // Error description
+ Message string `json:"message,omitempty"`
+ Data *ApiErrorResponseData `json:"data,omitempty"`
+}
diff --git a/api_error_response_data.go b/api_error_response_data.go
new file mode 100644
index 0000000..2eaaeb6
--- /dev/null
+++ b/api_error_response_data.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ApiErrorResponseData struct {
+}
diff --git a/api_key_integration_configs.go b/api_key_integration_configs.go
new file mode 100644
index 0000000..a36cf0d
--- /dev/null
+++ b/api_key_integration_configs.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ApiKeyIntegrationConfigs struct {
+ HeaderKey string `json:"header_key,omitempty"`
+ ApiKey string `json:"api_key,omitempty"`
+}
diff --git a/attached_integration_to_source.go b/attached_integration_to_source.go
new file mode 100644
index 0000000..4bf99d0
--- /dev/null
+++ b/attached_integration_to_source.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type AttachedIntegrationToSource struct {
+ Success bool `json:"success,omitempty"`
+}
diff --git a/attempt_error_codes.go b/attempt_error_codes.go
new file mode 100644
index 0000000..6c5f687
--- /dev/null
+++ b/attempt_error_codes.go
@@ -0,0 +1,150 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Attempt could not complete because of an error
+type AttemptErrorCodes uint8
+
+const (
+ AttemptErrorCodesTimeout AttemptErrorCodes = iota + 1
+ AttemptErrorCodesNotFound
+ AttemptErrorCodesConnectionRefused
+ AttemptErrorCodesConnectionReset
+ AttemptErrorCodesMissingUrl
+ AttemptErrorCodesCli
+ AttemptErrorCodesCliUnavailable
+ AttemptErrorCodesSelfSignedCert
+ AttemptErrorCodesErrTlsCertAltnameInvalid
+ AttemptErrorCodesSslErrorCaUnknown
+ AttemptErrorCodesTtlExpired
+ AttemptErrorCodesDataArchived
+ AttemptErrorCodesSslCertExpired
+ AttemptErrorCodesBulkRetryCancelled
+ AttemptErrorCodesDnsLookupFailed
+ AttemptErrorCodesHostUnreachable
+ AttemptErrorCodesProtocolError
+ AttemptErrorCodesSocketClosed
+ AttemptErrorCodesUnknown
+)
+
+func (a AttemptErrorCodes) String() string {
+ switch a {
+ default:
+ return strconv.Itoa(int(a))
+ case AttemptErrorCodesTimeout:
+ return "TIMEOUT"
+ case AttemptErrorCodesNotFound:
+ return "NOT_FOUND"
+ case AttemptErrorCodesConnectionRefused:
+ return "CONNECTION_REFUSED"
+ case AttemptErrorCodesConnectionReset:
+ return "CONNECTION_RESET"
+ case AttemptErrorCodesMissingUrl:
+ return "MISSING_URL"
+ case AttemptErrorCodesCli:
+ return "CLI"
+ case AttemptErrorCodesCliUnavailable:
+ return "CLI_UNAVAILABLE"
+ case AttemptErrorCodesSelfSignedCert:
+ return "SELF_SIGNED_CERT"
+ case AttemptErrorCodesErrTlsCertAltnameInvalid:
+ return "ERR_TLS_CERT_ALTNAME_INVALID"
+ case AttemptErrorCodesSslErrorCaUnknown:
+ return "SSL_ERROR_CA_UNKNOWN"
+ case AttemptErrorCodesTtlExpired:
+ return "TTL_EXPIRED"
+ case AttemptErrorCodesDataArchived:
+ return "DATA_ARCHIVED"
+ case AttemptErrorCodesSslCertExpired:
+ return "SSL_CERT_EXPIRED"
+ case AttemptErrorCodesBulkRetryCancelled:
+ return "BULK_RETRY_CANCELLED"
+ case AttemptErrorCodesDnsLookupFailed:
+ return "DNS_LOOKUP_FAILED"
+ case AttemptErrorCodesHostUnreachable:
+ return "HOST_UNREACHABLE"
+ case AttemptErrorCodesProtocolError:
+ return "PROTOCOL_ERROR"
+ case AttemptErrorCodesSocketClosed:
+ return "SOCKET_CLOSED"
+ case AttemptErrorCodesUnknown:
+ return "UNKNOWN"
+ }
+}
+
+func (a AttemptErrorCodes) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", a.String())), nil
+}
+
+func (a *AttemptErrorCodes) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "TIMEOUT":
+ value := AttemptErrorCodesTimeout
+ *a = value
+ case "NOT_FOUND":
+ value := AttemptErrorCodesNotFound
+ *a = value
+ case "CONNECTION_REFUSED":
+ value := AttemptErrorCodesConnectionRefused
+ *a = value
+ case "CONNECTION_RESET":
+ value := AttemptErrorCodesConnectionReset
+ *a = value
+ case "MISSING_URL":
+ value := AttemptErrorCodesMissingUrl
+ *a = value
+ case "CLI":
+ value := AttemptErrorCodesCli
+ *a = value
+ case "CLI_UNAVAILABLE":
+ value := AttemptErrorCodesCliUnavailable
+ *a = value
+ case "SELF_SIGNED_CERT":
+ value := AttemptErrorCodesSelfSignedCert
+ *a = value
+ case "ERR_TLS_CERT_ALTNAME_INVALID":
+ value := AttemptErrorCodesErrTlsCertAltnameInvalid
+ *a = value
+ case "SSL_ERROR_CA_UNKNOWN":
+ value := AttemptErrorCodesSslErrorCaUnknown
+ *a = value
+ case "TTL_EXPIRED":
+ value := AttemptErrorCodesTtlExpired
+ *a = value
+ case "DATA_ARCHIVED":
+ value := AttemptErrorCodesDataArchived
+ *a = value
+ case "SSL_CERT_EXPIRED":
+ value := AttemptErrorCodesSslCertExpired
+ *a = value
+ case "BULK_RETRY_CANCELLED":
+ value := AttemptErrorCodesBulkRetryCancelled
+ *a = value
+ case "DNS_LOOKUP_FAILED":
+ value := AttemptErrorCodesDnsLookupFailed
+ *a = value
+ case "HOST_UNREACHABLE":
+ value := AttemptErrorCodesHostUnreachable
+ *a = value
+ case "PROTOCOL_ERROR":
+ value := AttemptErrorCodesProtocolError
+ *a = value
+ case "SOCKET_CLOSED":
+ value := AttemptErrorCodesSocketClosed
+ *a = value
+ case "UNKNOWN":
+ value := AttemptErrorCodesUnknown
+ *a = value
+ }
+ return nil
+}
diff --git a/attempt_state.go b/attempt_state.go
new file mode 100644
index 0000000..dc8a395
--- /dev/null
+++ b/attempt_state.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type AttemptState uint8
+
+const (
+ AttemptStateDelivering AttemptState = iota + 1
+ AttemptStateQueued
+ AttemptStatePending
+ AttemptStateCompleted
+ AttemptStateHold
+)
+
+func (a AttemptState) String() string {
+ switch a {
+ default:
+ return strconv.Itoa(int(a))
+ case AttemptStateDelivering:
+ return "DELIVERING"
+ case AttemptStateQueued:
+ return "QUEUED"
+ case AttemptStatePending:
+ return "PENDING"
+ case AttemptStateCompleted:
+ return "COMPLETED"
+ case AttemptStateHold:
+ return "HOLD"
+ }
+}
+
+func (a AttemptState) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", a.String())), nil
+}
+
+func (a *AttemptState) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "DELIVERING":
+ value := AttemptStateDelivering
+ *a = value
+ case "QUEUED":
+ value := AttemptStateQueued
+ *a = value
+ case "PENDING":
+ value := AttemptStatePending
+ *a = value
+ case "COMPLETED":
+ value := AttemptStateCompleted
+ *a = value
+ case "HOLD":
+ value := AttemptStateHold
+ *a = value
+ }
+ return nil
+}
diff --git a/attempt_status.go b/attempt_status.go
new file mode 100644
index 0000000..d9f4b92
--- /dev/null
+++ b/attempt_status.go
@@ -0,0 +1,60 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Attempt status
+type AttemptStatus uint8
+
+const (
+ AttemptStatusQueued AttemptStatus = iota + 1
+ AttemptStatusFailed
+ AttemptStatusSuccessful
+ AttemptStatusHold
+)
+
+func (a AttemptStatus) String() string {
+ switch a {
+ default:
+ return strconv.Itoa(int(a))
+ case AttemptStatusQueued:
+ return "QUEUED"
+ case AttemptStatusFailed:
+ return "FAILED"
+ case AttemptStatusSuccessful:
+ return "SUCCESSFUL"
+ case AttemptStatusHold:
+ return "HOLD"
+ }
+}
+
+func (a AttemptStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", a.String())), nil
+}
+
+func (a *AttemptStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "QUEUED":
+ value := AttemptStatusQueued
+ *a = value
+ case "FAILED":
+ value := AttemptStatusFailed
+ *a = value
+ case "SUCCESSFUL":
+ value := AttemptStatusSuccessful
+ *a = value
+ case "HOLD":
+ value := AttemptStatusHold
+ *a = value
+ }
+ return nil
+}
diff --git a/attempt_trigger.go b/attempt_trigger.go
new file mode 100644
index 0000000..d27e381
--- /dev/null
+++ b/attempt_trigger.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// How the attempt was triggered
+type AttemptTrigger uint8
+
+const (
+ AttemptTriggerInitial AttemptTrigger = iota + 1
+ AttemptTriggerManual
+ AttemptTriggerBulkRetry
+ AttemptTriggerUnpause
+ AttemptTriggerAutomatic
+)
+
+func (a AttemptTrigger) String() string {
+ switch a {
+ default:
+ return strconv.Itoa(int(a))
+ case AttemptTriggerInitial:
+ return "INITIAL"
+ case AttemptTriggerManual:
+ return "MANUAL"
+ case AttemptTriggerBulkRetry:
+ return "BULK_RETRY"
+ case AttemptTriggerUnpause:
+ return "UNPAUSE"
+ case AttemptTriggerAutomatic:
+ return "AUTOMATIC"
+ }
+}
+
+func (a AttemptTrigger) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", a.String())), nil
+}
+
+func (a *AttemptTrigger) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "INITIAL":
+ value := AttemptTriggerInitial
+ *a = value
+ case "MANUAL":
+ value := AttemptTriggerManual
+ *a = value
+ case "BULK_RETRY":
+ value := AttemptTriggerBulkRetry
+ *a = value
+ case "UNPAUSE":
+ value := AttemptTriggerUnpause
+ *a = value
+ case "AUTOMATIC":
+ value := AttemptTriggerAutomatic
+ *a = value
+ }
+ return nil
+}
diff --git a/attempts_client.go b/attempts_client.go
new file mode 100644
index 0000000..a05f300
--- /dev/null
+++ b/attempts_client.go
@@ -0,0 +1,158 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type AttemptsClient interface {
+ GetAttempts(ctx context.Context, request *GetAttemptsRequest) (*EventAttemptPaginatedResult, error)
+ GetAttempt(ctx context.Context, id string) (*EventAttempt, error)
+}
+
+func NewAttemptsClient(opts ...core.ClientOption) AttemptsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &attemptsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type attemptsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (a *attemptsClient) GetAttempts(ctx context.Context, request *GetAttemptsRequest) (*EventAttemptPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if a.baseURL != "" {
+ baseURL = a.baseURL
+ }
+ endpointURL := baseURL + "/" + "attempts"
+
+ queryParams := make(url.Values)
+ var eventIdDefaultValue *string
+ if request.EventId != eventIdDefaultValue {
+ queryParams.Add("event_id", fmt.Sprintf("%v", *request.EventId))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetAttemptsRequestDirGetAttemptsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(EventAttemptPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ a.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ a.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (a *attemptsClient) GetAttempt(ctx context.Context, id string) (*EventAttempt, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if a.baseURL != "" {
+ baseURL = a.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"attempts/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response EventAttempt
+ if err := core.DoRequest(
+ ctx,
+ a.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ a.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/bad_request_error.go b/bad_request_error.go
new file mode 100644
index 0000000..5f281c8
--- /dev/null
+++ b/bad_request_error.go
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+)
+
+type BadRequestError struct {
+ *core.APIError
+ Body *ApiErrorResponse
+}
+
+func (b *BadRequestError) UnmarshalJSON(data []byte) error {
+ body := new(ApiErrorResponse)
+ if err := json.Unmarshal(data, &body); err != nil {
+ return err
+ }
+ b.StatusCode = 400
+ b.Body = body
+ return nil
+}
+
+func (b *BadRequestError) MarshalJSON() ([]byte, error) {
+ return json.Marshal(b.Body)
+}
diff --git a/basic_auth_integration_configs.go b/basic_auth_integration_configs.go
new file mode 100644
index 0000000..6295c06
--- /dev/null
+++ b/basic_auth_integration_configs.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type BasicAuthIntegrationConfigs struct {
+ Name string `json:"name,omitempty"`
+ Password string `json:"password,omitempty"`
+}
diff --git a/batch_operation.go b/batch_operation.go
new file mode 100644
index 0000000..b32b68f
--- /dev/null
+++ b/batch_operation.go
@@ -0,0 +1,35 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type BatchOperation struct {
+ // ID of the bulk retry
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // Query object to filter records
+ Query *BatchOperationQuery `json:"query,omitempty"`
+ // Date the bulk retry was created
+ CreatedAt string `json:"created_at,omitempty"`
+ // Last time the bulk retry was updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the bulk retry was cancelled
+ CancelledAt *string `json:"cancelled_at,omitempty"`
+ // Date the bulk retry was completed
+ CompletedAt *string `json:"completed_at,omitempty"`
+ // Number of batches required to complete the bulk retry
+ EstimatedBatch *int `json:"estimated_batch,omitempty"`
+ // Number of estimated events to be retried
+ EstimatedCount *int `json:"estimated_count,omitempty"`
+ // Number of batches currently processed
+ ProcessedBatch *int `json:"processed_batch,omitempty"`
+ // Number of events that were successfully delivered
+ CompletedCount *int `json:"completed_count,omitempty"`
+ // Indicates if the bulk retry is currently in progress
+ InProgress bool `json:"in_progress,omitempty"`
+ // Progression of the batch operations, values 0 - 1
+ Progress *float64 `json:"progress,omitempty"`
+ // Number of events that failed to be delivered
+ FailedCount *int `json:"failed_count,omitempty"`
+ Number *float64 `json:"number,omitempty"`
+}
diff --git a/batch_operation_paginated_result.go b/batch_operation_paginated_result.go
new file mode 100644
index 0000000..0cdf20d
--- /dev/null
+++ b/batch_operation_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type BatchOperationPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*BatchOperation `json:"models,omitempty"`
+}
diff --git a/batch_operation_plan.go b/batch_operation_plan.go
new file mode 100644
index 0000000..8913385
--- /dev/null
+++ b/batch_operation_plan.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type BatchOperationPlan struct {
+ // Number of batches required to complete the bulk retry
+ EstimatedBatch *int `json:"estimated_batch,omitempty"`
+ // Number of estimated events to be retried
+ EstimatedCount *int `json:"estimated_count,omitempty"`
+ // Progression of the batch operations, values 0 - 1
+ Progress *float64 `json:"progress,omitempty"`
+}
diff --git a/batch_operation_query.go b/batch_operation_query.go
new file mode 100644
index 0000000..ac9f51b
--- /dev/null
+++ b/batch_operation_query.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Query object to filter records
+type BatchOperationQuery struct {
+ typeName string
+ StringUnknownMap map[string]any
+ StringOptional *string
+}
+
+func NewBatchOperationQueryFromStringUnknownMap(value map[string]any) *BatchOperationQuery {
+ return &BatchOperationQuery{typeName: "stringUnknownMap", StringUnknownMap: value}
+}
+
+func NewBatchOperationQueryFromStringOptional(value *string) *BatchOperationQuery {
+ return &BatchOperationQuery{typeName: "stringOptional", StringOptional: value}
+}
+
+func (b *BatchOperationQuery) UnmarshalJSON(data []byte) error {
+ var valueStringUnknownMap map[string]any
+ if err := json.Unmarshal(data, &valueStringUnknownMap); err == nil {
+ b.typeName = "stringUnknownMap"
+ b.StringUnknownMap = valueStringUnknownMap
+ return nil
+ }
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ b.typeName = "stringOptional"
+ b.StringOptional = valueStringOptional
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, b)
+}
+
+func (b BatchOperationQuery) MarshalJSON() ([]byte, error) {
+ switch b.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", b.typeName, b)
+ case "stringUnknownMap":
+ return json.Marshal(b.StringUnknownMap)
+ case "stringOptional":
+ return json.Marshal(b.StringOptional)
+ }
+}
+
+type BatchOperationQueryVisitor interface {
+ VisitStringUnknownMap(map[string]any) error
+ VisitStringOptional(*string) error
+}
+
+func (b *BatchOperationQuery) Accept(v BatchOperationQueryVisitor) error {
+ switch b.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", b.typeName, b)
+ case "stringUnknownMap":
+ return v.VisitStringUnknownMap(b.StringUnknownMap)
+ case "stringOptional":
+ return v.VisitStringOptional(b.StringOptional)
+ }
+}
diff --git a/bookmark.go b/bookmark.go
new file mode 100644
index 0000000..e7fdb06
--- /dev/null
+++ b/bookmark.go
@@ -0,0 +1,25 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type Bookmark struct {
+ // ID of the bookmark
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // ID of the associated connection
+ WebhookId string `json:"webhook_id,omitempty"`
+ // ID of the bookmarked event data
+ EventDataId string `json:"event_data_id,omitempty"`
+ // Descriptive name of the bookmark
+ Label string `json:"label,omitempty"`
+ // Alternate alias for the bookmark
+ Alias *string `json:"alias,omitempty"`
+ Data *ShortEventData `json:"data,omitempty"`
+ // Date the bookmark was last manually triggered
+ LastUsedAt *string `json:"last_used_at,omitempty"`
+ // Date the bookmark was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the bookmark was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/bookmark_paginated_result.go b/bookmark_paginated_result.go
new file mode 100644
index 0000000..b78b8a3
--- /dev/null
+++ b/bookmark_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type BookmarkPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Bookmark `json:"models,omitempty"`
+}
diff --git a/bookmarks_client.go b/bookmarks_client.go
new file mode 100644
index 0000000..01c5b04
--- /dev/null
+++ b/bookmarks_client.go
@@ -0,0 +1,385 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type BookmarksClient interface {
+ GetBookmarks(ctx context.Context, request *GetBookmarksRequest) (*BookmarkPaginatedResult, error)
+ CreateBookmark(ctx context.Context, request *CreateBookmarkRequest) (*Bookmark, error)
+ GetBookmark(ctx context.Context, id string) (*Bookmark, error)
+ UpdateBookmark(ctx context.Context, id string, request *UpdateBookmarkRequest) (*Bookmark, error)
+ DeleteBookmark(ctx context.Context, id string) (*DeletedBookmarkResponse, error)
+ TriggerBookmark(ctx context.Context, id string, request *TriggerBookmarkRequest) (EventArray, error)
+}
+
+func NewBookmarksClient(opts ...core.ClientOption) BookmarksClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &bookmarksClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type bookmarksClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (b *bookmarksClient) GetBookmarks(ctx context.Context, request *GetBookmarksRequest) (*BookmarkPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bookmarks"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var webhookIdDefaultValue *string
+ if request.WebhookId != webhookIdDefaultValue {
+ queryParams.Add("webhook_id", fmt.Sprintf("%v", *request.WebhookId))
+ }
+ var eventDataIdDefaultValue *string
+ if request.EventDataId != eventDataIdDefaultValue {
+ queryParams.Add("event_data_id", fmt.Sprintf("%v", *request.EventDataId))
+ }
+ var labelDefaultValue *string
+ if request.Label != labelDefaultValue {
+ queryParams.Add("label", fmt.Sprintf("%v", *request.Label))
+ }
+ var lastUsedAtDefaultValue *string
+ if request.LastUsedAt != lastUsedAtDefaultValue {
+ queryParams.Add("last_used_at", fmt.Sprintf("%v", *request.LastUsedAt))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetBookmarksRequestDirGetBookmarksRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BookmarkPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bookmarksClient) CreateBookmark(ctx context.Context, request *CreateBookmarkRequest) (*Bookmark, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bookmarks"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Bookmark)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bookmarksClient) GetBookmark(ctx context.Context, id string) (*Bookmark, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bookmarks/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Bookmark)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bookmarksClient) UpdateBookmark(ctx context.Context, id string, request *UpdateBookmarkRequest) (*Bookmark, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bookmarks/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Bookmark)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bookmarksClient) DeleteBookmark(ctx context.Context, id string) (*DeletedBookmarkResponse, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bookmarks/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(DeletedBookmarkResponse)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodDelete,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bookmarksClient) TriggerBookmark(ctx context.Context, id string, request *TriggerBookmarkRequest) (EventArray, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bookmarks/%v/trigger", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response EventArray
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/bulk_retry_events_client.go b/bulk_retry_events_client.go
new file mode 100644
index 0000000..66bb1c3
--- /dev/null
+++ b/bulk_retry_events_client.go
@@ -0,0 +1,321 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type BulkRetryEventsClient interface {
+ GetEventBulkRetries(ctx context.Context, request *GetEventBulkRetriesRequest) (*BatchOperationPaginatedResult, error)
+ CreateEventBulkRetry(ctx context.Context, request *CreateEventBulkRetryRequest) (*BatchOperation, error)
+ GenerateEventBulkRetryPlan(ctx context.Context) (*BatchOperationPlan, error)
+ GetEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error)
+ CancelEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error)
+}
+
+func NewBulkRetryEventsClient(opts ...core.ClientOption) BulkRetryEventsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &bulkRetryEventsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type bulkRetryEventsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (b *bulkRetryEventsClient) GetEventBulkRetries(ctx context.Context, request *GetEventBulkRetriesRequest) (*BatchOperationPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/events/retry"
+
+ queryParams := make(url.Values)
+ var cancelledAtDefaultValue *string
+ if request.CancelledAt != cancelledAtDefaultValue {
+ queryParams.Add("cancelled_at", fmt.Sprintf("%v", *request.CancelledAt))
+ }
+ var completedAtDefaultValue *string
+ if request.CompletedAt != completedAtDefaultValue {
+ queryParams.Add("completed_at", fmt.Sprintf("%v", *request.CompletedAt))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var queryPartialMatchDefaultValue *bool
+ if request.QueryPartialMatch != queryPartialMatchDefaultValue {
+ queryParams.Add("query_partial_match", fmt.Sprintf("%v", *request.QueryPartialMatch))
+ }
+ var inProgressDefaultValue *bool
+ if request.InProgress != inProgressDefaultValue {
+ queryParams.Add("in_progress", fmt.Sprintf("%v", *request.InProgress))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperationPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryEventsClient) CreateEventBulkRetry(ctx context.Context, request *CreateEventBulkRetryRequest) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/events/retry"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryEventsClient) GenerateEventBulkRetryPlan(ctx context.Context) (*BatchOperationPlan, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/events/retry/plan"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperationPlan)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryEventsClient) GetEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bulk/events/retry/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryEventsClient) CancelEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bulk/events/retry/%v/cancel", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/bulk_retry_ignored_events_client.go b/bulk_retry_ignored_events_client.go
new file mode 100644
index 0000000..965e3fd
--- /dev/null
+++ b/bulk_retry_ignored_events_client.go
@@ -0,0 +1,321 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type BulkRetryIgnoredEventsClient interface {
+ GetIgnoredEventBulkRetries(ctx context.Context, request *GetIgnoredEventBulkRetriesRequest) (*BatchOperationPaginatedResult, error)
+ CreateIgnoredEventBulkRetry(ctx context.Context, request *CreateIgnoredEventBulkRetryRequest) (*BatchOperation, error)
+ GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*BatchOperationPlan, error)
+ GetIgnoredEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error)
+ CancelIgnoredEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error)
+}
+
+func NewBulkRetryIgnoredEventsClient(opts ...core.ClientOption) BulkRetryIgnoredEventsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &bulkRetryIgnoredEventsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type bulkRetryIgnoredEventsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (b *bulkRetryIgnoredEventsClient) GetIgnoredEventBulkRetries(ctx context.Context, request *GetIgnoredEventBulkRetriesRequest) (*BatchOperationPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/ignored-events/retry"
+
+ queryParams := make(url.Values)
+ var cancelledAtDefaultValue *string
+ if request.CancelledAt != cancelledAtDefaultValue {
+ queryParams.Add("cancelled_at", fmt.Sprintf("%v", *request.CancelledAt))
+ }
+ var completedAtDefaultValue *string
+ if request.CompletedAt != completedAtDefaultValue {
+ queryParams.Add("completed_at", fmt.Sprintf("%v", *request.CompletedAt))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var queryPartialMatchDefaultValue *bool
+ if request.QueryPartialMatch != queryPartialMatchDefaultValue {
+ queryParams.Add("query_partial_match", fmt.Sprintf("%v", *request.QueryPartialMatch))
+ }
+ var inProgressDefaultValue *bool
+ if request.InProgress != inProgressDefaultValue {
+ queryParams.Add("in_progress", fmt.Sprintf("%v", *request.InProgress))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperationPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryIgnoredEventsClient) CreateIgnoredEventBulkRetry(ctx context.Context, request *CreateIgnoredEventBulkRetryRequest) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/ignored-events/retry"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryIgnoredEventsClient) GenerateIgnoredEventBulkRetryPlan(ctx context.Context) (*BatchOperationPlan, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/ignored-events/retry/plan"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperationPlan)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryIgnoredEventsClient) GetIgnoredEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bulk/ignored-events/retry/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryIgnoredEventsClient) CancelIgnoredEventBulkRetry(ctx context.Context, id string) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bulk/ignored-events/retry/%v/cancel", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/bulk_retry_requests_client.go b/bulk_retry_requests_client.go
new file mode 100644
index 0000000..805ff06
--- /dev/null
+++ b/bulk_retry_requests_client.go
@@ -0,0 +1,321 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type BulkRetryRequestsClient interface {
+ GetRequestBulkRetries(ctx context.Context, request *GetRequestBulkRetriesRequest) (*BatchOperationPaginatedResult, error)
+ CreateRequestBulkRetry(ctx context.Context, request *CreateRequestBulkRetryRequest) (*BatchOperation, error)
+ GenerateRequestBulkRetryPlan(ctx context.Context) (*BatchOperationPlan, error)
+ GetRequestBulkRetry(ctx context.Context, id string) (*BatchOperation, error)
+ CancelRequestBulkRetry(ctx context.Context, id string) (*BatchOperation, error)
+}
+
+func NewBulkRetryRequestsClient(opts ...core.ClientOption) BulkRetryRequestsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &bulkRetryRequestsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type bulkRetryRequestsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (b *bulkRetryRequestsClient) GetRequestBulkRetries(ctx context.Context, request *GetRequestBulkRetriesRequest) (*BatchOperationPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/requests/retry"
+
+ queryParams := make(url.Values)
+ var cancelledAtDefaultValue *string
+ if request.CancelledAt != cancelledAtDefaultValue {
+ queryParams.Add("cancelled_at", fmt.Sprintf("%v", *request.CancelledAt))
+ }
+ var completedAtDefaultValue *string
+ if request.CompletedAt != completedAtDefaultValue {
+ queryParams.Add("completed_at", fmt.Sprintf("%v", *request.CompletedAt))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var inProgressDefaultValue *bool
+ if request.InProgress != inProgressDefaultValue {
+ queryParams.Add("in_progress", fmt.Sprintf("%v", *request.InProgress))
+ }
+ var queryPartialMatchDefaultValue *bool
+ if request.QueryPartialMatch != queryPartialMatchDefaultValue {
+ queryParams.Add("query_partial_match", fmt.Sprintf("%v", *request.QueryPartialMatch))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperationPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryRequestsClient) CreateRequestBulkRetry(ctx context.Context, request *CreateRequestBulkRetryRequest) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/requests/retry"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryRequestsClient) GenerateRequestBulkRetryPlan(ctx context.Context) (*BatchOperationPlan, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := baseURL + "/" + "bulk/requests/retry/plan"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperationPlan)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryRequestsClient) GetRequestBulkRetry(ctx context.Context, id string) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bulk/requests/retry/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (b *bulkRetryRequestsClient) CancelRequestBulkRetry(ctx context.Context, id string) (*BatchOperation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if b.baseURL != "" {
+ baseURL = b.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"bulk/requests/retry/%v/cancel", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(BatchOperation)
+ if err := core.DoRequest(
+ ctx,
+ b.httpClient,
+ endpointURL,
+ http.MethodPost,
+ nil,
+ &response,
+ b.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/client.go b/client.go
new file mode 100644
index 0000000..5b2ebfb
--- /dev/null
+++ b/client.go
@@ -0,0 +1,141 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ http "net/http"
+)
+
+type Client interface {
+ IssueTriggers() IssueTriggersClient
+ Attempts() AttemptsClient
+ Bookmarks() BookmarksClient
+ Destinations() DestinationsClient
+ Events() EventsClient
+ BulkRetryEvents() BulkRetryEventsClient
+ BulkRetryIgnoredEvents() BulkRetryIgnoredEventsClient
+ Integrations() IntegrationsClient
+ Issues() IssuesClient
+ Requests() RequestsClient
+ BulkRetryRequests() BulkRetryRequestsClient
+ Rulesets() RulesetsClient
+ Sources() SourcesClient
+ Notifications() NotificationsClient
+ Transformations() TransformationsClient
+ Connections() ConnectionsClient
+}
+
+func NewClient(opts ...core.ClientOption) Client {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &client{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ issueTriggersClient: NewIssueTriggersClient(opts...),
+ attemptsClient: NewAttemptsClient(opts...),
+ bookmarksClient: NewBookmarksClient(opts...),
+ destinationsClient: NewDestinationsClient(opts...),
+ eventsClient: NewEventsClient(opts...),
+ bulkRetryEventsClient: NewBulkRetryEventsClient(opts...),
+ bulkRetryIgnoredEventsClient: NewBulkRetryIgnoredEventsClient(opts...),
+ integrationsClient: NewIntegrationsClient(opts...),
+ issuesClient: NewIssuesClient(opts...),
+ requestsClient: NewRequestsClient(opts...),
+ bulkRetryRequestsClient: NewBulkRetryRequestsClient(opts...),
+ rulesetsClient: NewRulesetsClient(opts...),
+ sourcesClient: NewSourcesClient(opts...),
+ notificationsClient: NewNotificationsClient(opts...),
+ transformationsClient: NewTransformationsClient(opts...),
+ connectionsClient: NewConnectionsClient(opts...),
+ }
+}
+
+type client struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+ issueTriggersClient IssueTriggersClient
+ attemptsClient AttemptsClient
+ bookmarksClient BookmarksClient
+ destinationsClient DestinationsClient
+ eventsClient EventsClient
+ bulkRetryEventsClient BulkRetryEventsClient
+ bulkRetryIgnoredEventsClient BulkRetryIgnoredEventsClient
+ integrationsClient IntegrationsClient
+ issuesClient IssuesClient
+ requestsClient RequestsClient
+ bulkRetryRequestsClient BulkRetryRequestsClient
+ rulesetsClient RulesetsClient
+ sourcesClient SourcesClient
+ notificationsClient NotificationsClient
+ transformationsClient TransformationsClient
+ connectionsClient ConnectionsClient
+}
+
+func (c *client) IssueTriggers() IssueTriggersClient {
+ return c.issueTriggersClient
+}
+
+func (c *client) Attempts() AttemptsClient {
+ return c.attemptsClient
+}
+
+func (c *client) Bookmarks() BookmarksClient {
+ return c.bookmarksClient
+}
+
+func (c *client) Destinations() DestinationsClient {
+ return c.destinationsClient
+}
+
+func (c *client) Events() EventsClient {
+ return c.eventsClient
+}
+
+func (c *client) BulkRetryEvents() BulkRetryEventsClient {
+ return c.bulkRetryEventsClient
+}
+
+func (c *client) BulkRetryIgnoredEvents() BulkRetryIgnoredEventsClient {
+ return c.bulkRetryIgnoredEventsClient
+}
+
+func (c *client) Integrations() IntegrationsClient {
+ return c.integrationsClient
+}
+
+func (c *client) Issues() IssuesClient {
+ return c.issuesClient
+}
+
+func (c *client) Requests() RequestsClient {
+ return c.requestsClient
+}
+
+func (c *client) BulkRetryRequests() BulkRetryRequestsClient {
+ return c.bulkRetryRequestsClient
+}
+
+func (c *client) Rulesets() RulesetsClient {
+ return c.rulesetsClient
+}
+
+func (c *client) Sources() SourcesClient {
+ return c.sourcesClient
+}
+
+func (c *client) Notifications() NotificationsClient {
+ return c.notificationsClient
+}
+
+func (c *client) Transformations() TransformationsClient {
+ return c.transformationsClient
+}
+
+func (c *client) Connections() ConnectionsClient {
+ return c.connectionsClient
+}
diff --git a/connection.go b/connection.go
new file mode 100644
index 0000000..750a65d
--- /dev/null
+++ b/connection.go
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type Connection struct {
+ // ID of the connection
+ Id string `json:"id,omitempty"`
+ // Unique name of the connection for this source
+ Name string `json:"name,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ Destination *Destination `json:"destination,omitempty"`
+ Source *Source `json:"source,omitempty"`
+ Ruleset *Ruleset `json:"ruleset,omitempty"`
+ // Array of rules applied to connection after factoring for the ruleset
+ ResolvedRules *[]*Rule `json:"resolved_rules,omitempty"`
+ // Array of rules configured on the connection
+ Rules *[]*Rule `json:"rules,omitempty"`
+ // Date the connection was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ // Date the connection was paused
+ PausedAt *string `json:"paused_at,omitempty"`
+ // Date the connection was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the connection was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/connection_filter_property.go b/connection_filter_property.go
new file mode 100644
index 0000000..573725b
--- /dev/null
+++ b/connection_filter_property.go
@@ -0,0 +1,98 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// JSON using our filter syntax to filter on request headers
+type ConnectionFilterProperty struct {
+ typeName string
+ StringOptional *string
+ Double float64
+ Boolean bool
+ ConnectionFilterPropertyConnectionFilterProperty *ConnectionFilterPropertyConnectionFilterProperty
+}
+
+func NewConnectionFilterPropertyFromStringOptional(value *string) *ConnectionFilterProperty {
+ return &ConnectionFilterProperty{typeName: "stringOptional", StringOptional: value}
+}
+
+func NewConnectionFilterPropertyFromDouble(value float64) *ConnectionFilterProperty {
+ return &ConnectionFilterProperty{typeName: "double", Double: value}
+}
+
+func NewConnectionFilterPropertyFromBoolean(value bool) *ConnectionFilterProperty {
+ return &ConnectionFilterProperty{typeName: "boolean", Boolean: value}
+}
+
+func NewConnectionFilterPropertyFromConnectionFilterPropertyConnectionFilterProperty(value *ConnectionFilterPropertyConnectionFilterProperty) *ConnectionFilterProperty {
+ return &ConnectionFilterProperty{typeName: "connectionFilterPropertyConnectionFilterProperty", ConnectionFilterPropertyConnectionFilterProperty: value}
+}
+
+func (c *ConnectionFilterProperty) UnmarshalJSON(data []byte) error {
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ c.typeName = "stringOptional"
+ c.StringOptional = valueStringOptional
+ return nil
+ }
+ var valueDouble float64
+ if err := json.Unmarshal(data, &valueDouble); err == nil {
+ c.typeName = "double"
+ c.Double = valueDouble
+ return nil
+ }
+ var valueBoolean bool
+ if err := json.Unmarshal(data, &valueBoolean); err == nil {
+ c.typeName = "boolean"
+ c.Boolean = valueBoolean
+ return nil
+ }
+ valueConnectionFilterPropertyConnectionFilterProperty := new(ConnectionFilterPropertyConnectionFilterProperty)
+ if err := json.Unmarshal(data, &valueConnectionFilterPropertyConnectionFilterProperty); err == nil {
+ c.typeName = "connectionFilterPropertyConnectionFilterProperty"
+ c.ConnectionFilterPropertyConnectionFilterProperty = valueConnectionFilterPropertyConnectionFilterProperty
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c ConnectionFilterProperty) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "stringOptional":
+ return json.Marshal(c.StringOptional)
+ case "double":
+ return json.Marshal(c.Double)
+ case "boolean":
+ return json.Marshal(c.Boolean)
+ case "connectionFilterPropertyConnectionFilterProperty":
+ return json.Marshal(c.ConnectionFilterPropertyConnectionFilterProperty)
+ }
+}
+
+type ConnectionFilterPropertyVisitor interface {
+ VisitStringOptional(*string) error
+ VisitDouble(float64) error
+ VisitBoolean(bool) error
+ VisitConnectionFilterPropertyConnectionFilterProperty(*ConnectionFilterPropertyConnectionFilterProperty) error
+}
+
+func (c *ConnectionFilterProperty) Accept(v ConnectionFilterPropertyVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "stringOptional":
+ return v.VisitStringOptional(c.StringOptional)
+ case "double":
+ return v.VisitDouble(c.Double)
+ case "boolean":
+ return v.VisitBoolean(c.Boolean)
+ case "connectionFilterPropertyConnectionFilterProperty":
+ return v.VisitConnectionFilterPropertyConnectionFilterProperty(c.ConnectionFilterPropertyConnectionFilterProperty)
+ }
+}
diff --git a/connection_filter_property_connection_filter_property.go b/connection_filter_property_connection_filter_property.go
new file mode 100644
index 0000000..300a0f4
--- /dev/null
+++ b/connection_filter_property_connection_filter_property.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ConnectionFilterPropertyConnectionFilterProperty struct {
+}
diff --git a/connection_paginated_result.go b/connection_paginated_result.go
new file mode 100644
index 0000000..5ccf72c
--- /dev/null
+++ b/connection_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ConnectionPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Connection `json:"models,omitempty"`
+}
diff --git a/connections_client.go b/connections_client.go
new file mode 100644
index 0000000..e6bc198
--- /dev/null
+++ b/connections_client.go
@@ -0,0 +1,515 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type ConnectionsClient interface {
+ GetConnections(ctx context.Context, request *GetConnectionsRequest) (*ConnectionPaginatedResult, error)
+ CreateConnection(ctx context.Context, request *CreateConnectionRequest) (*Connection, error)
+ UpsertConnection(ctx context.Context, request *UpsertConnectionRequest) (*Connection, error)
+ GetConnection(ctx context.Context, id string) (*Connection, error)
+ UpdateConnection(ctx context.Context, id string, request *UpdateConnectionRequest) (*Connection, error)
+ ArchiveConnection(ctx context.Context, id string) (*Connection, error)
+ UnarchiveConnection(ctx context.Context, id string) (*Connection, error)
+ PauseConnection(ctx context.Context, id string) (*Connection, error)
+ UnpauseConnection(ctx context.Context, id string) (*Connection, error)
+}
+
+func NewConnectionsClient(opts ...core.ClientOption) ConnectionsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &connectionsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type connectionsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (c *connectionsClient) GetConnections(ctx context.Context, request *GetConnectionsRequest) (*ConnectionPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := baseURL + "/" + "webhooks"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var destinationIdDefaultValue *string
+ if request.DestinationId != destinationIdDefaultValue {
+ queryParams.Add("destination_id", fmt.Sprintf("%v", *request.DestinationId))
+ }
+ var sourceIdDefaultValue *string
+ if request.SourceId != sourceIdDefaultValue {
+ queryParams.Add("source_id", fmt.Sprintf("%v", *request.SourceId))
+ }
+ var archivedDefaultValue *bool
+ if request.Archived != archivedDefaultValue {
+ queryParams.Add("archived", fmt.Sprintf("%v", *request.Archived))
+ }
+ var archivedAtDefaultValue *string
+ if request.ArchivedAt != archivedAtDefaultValue {
+ queryParams.Add("archived_at", fmt.Sprintf("%v", *request.ArchivedAt))
+ }
+ var fullNameDefaultValue *string
+ if request.FullName != fullNameDefaultValue {
+ queryParams.Add("full_name", fmt.Sprintf("%v", *request.FullName))
+ }
+ var pausedAtDefaultValue *string
+ if request.PausedAt != pausedAtDefaultValue {
+ queryParams.Add("paused_at", fmt.Sprintf("%v", *request.PausedAt))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetConnectionsRequestDirGetConnectionsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(ConnectionPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) CreateConnection(ctx context.Context, request *CreateConnectionRequest) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := baseURL + "/" + "webhooks"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) UpsertConnection(ctx context.Context, request *UpsertConnectionRequest) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := baseURL + "/" + "webhooks"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) GetConnection(ctx context.Context, id string) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"webhooks/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) UpdateConnection(ctx context.Context, id string, request *UpdateConnectionRequest) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"webhooks/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) ArchiveConnection(ctx context.Context, id string) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"webhooks/%v/archive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) UnarchiveConnection(ctx context.Context, id string) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"webhooks/%v/unarchive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) PauseConnection(ctx context.Context, id string) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"webhooks/%v/pause", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (c *connectionsClient) UnpauseConnection(ctx context.Context, id string) (*Connection, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if c.baseURL != "" {
+ baseURL = c.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"webhooks/%v/unpause", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Connection)
+ if err := core.DoRequest(
+ ctx,
+ c.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ c.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/console_line.go b/console_line.go
new file mode 100644
index 0000000..961b389
--- /dev/null
+++ b/console_line.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ConsoleLine struct {
+ Type ConsoleLineType `json:"type,omitempty"`
+ Message string `json:"message,omitempty"`
+}
diff --git a/console_line_type.go b/console_line_type.go
new file mode 100644
index 0000000..0c629f6
--- /dev/null
+++ b/console_line_type.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type ConsoleLineType uint8
+
+const (
+ ConsoleLineTypeError ConsoleLineType = iota + 1
+ ConsoleLineTypeLog
+ ConsoleLineTypeWarn
+ ConsoleLineTypeInfo
+ ConsoleLineTypeDebug
+)
+
+func (c ConsoleLineType) String() string {
+ switch c {
+ default:
+ return strconv.Itoa(int(c))
+ case ConsoleLineTypeError:
+ return "error"
+ case ConsoleLineTypeLog:
+ return "log"
+ case ConsoleLineTypeWarn:
+ return "warn"
+ case ConsoleLineTypeInfo:
+ return "info"
+ case ConsoleLineTypeDebug:
+ return "debug"
+ }
+}
+
+func (c ConsoleLineType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", c.String())), nil
+}
+
+func (c *ConsoleLineType) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "error":
+ value := ConsoleLineTypeError
+ *c = value
+ case "log":
+ value := ConsoleLineTypeLog
+ *c = value
+ case "warn":
+ value := ConsoleLineTypeWarn
+ *c = value
+ case "info":
+ value := ConsoleLineTypeInfo
+ *c = value
+ case "debug":
+ value := ConsoleLineTypeDebug
+ *c = value
+ }
+ return nil
+}
diff --git a/core/client_option.go b/core/client_option.go
new file mode 100644
index 0000000..134eebc
--- /dev/null
+++ b/core/client_option.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package core
+
+import (
+ http "net/http"
+)
+
+type ClientOption func(*ClientOptions)
+
+type ClientOptions struct {
+ BaseURL string
+ HTTPClient HTTPClient
+ Bearer string
+}
+
+func NewClientOptions() *ClientOptions {
+ return &ClientOptions{
+ HTTPClient: http.DefaultClient,
+ }
+}
+
+func ClientWithBaseURL(baseURL string) ClientOption {
+ return func(opts *ClientOptions) {
+ opts.BaseURL = baseURL
+ }
+}
+
+func ClientWithHTTPClient(httpClient HTTPClient) ClientOption {
+ return func(opts *ClientOptions) {
+ opts.HTTPClient = httpClient
+ }
+}
+
+func ClientWithAuthBearer(bearer string) ClientOption {
+ return func(opts *ClientOptions) {
+ opts.Bearer = bearer
+ }
+}
+
+func (c *ClientOptions) ToHeader() http.Header {
+ header := make(http.Header)
+ if c.Bearer != "" {
+ header.Set("Authorization", "Bearer "+c.Bearer)
+ }
+ return header
+}
diff --git a/core/core.go b/core/core.go
new file mode 100644
index 0000000..c19dd44
--- /dev/null
+++ b/core/core.go
@@ -0,0 +1,179 @@
+package core
+
+import (
+ "bytes"
+ "context"
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "net/http"
+)
+
+const (
+ // acceptHeader is the Accept header.
+ acceptHeader = "Accept"
+
+ // contentType specifies the JSON Content-Type header value.
+ contentType = "application/json"
+ contentTypeHeader = "Content-Type"
+
+ // fernLanguage specifies the value of the X-Fern-Language header.
+ fernLanguage = "go"
+ fernLanguageHeader = "X-Fern-Language"
+
+ // fernSDKName specifies the name of this Fern SDK.
+ fernSDKName = "fern-go-sdk"
+ fernSDKNameHeader = "X-Fern-SDK-Name"
+
+ // fernSDKVersion specifies the version of this Fern SDK.
+ fernSDKVersion = "0.0.1"
+ fernSDKVersionHeader = "X-Fern-SDK-Version"
+)
+
+// fernHeaders specifies all of the standard Fern headers in
+// a set so that they're easier to access and reference.
+var fernHeaders = map[string]string{
+ acceptHeader: contentType,
+ contentTypeHeader: contentType,
+ fernLanguageHeader: fernLanguage,
+ fernSDKNameHeader: fernSDKName,
+ fernSDKVersionHeader: fernSDKVersion,
+}
+
+// HTTPClient is an interface for a subset of the *http.Client.
+type HTTPClient interface {
+ Do(*http.Request) (*http.Response, error)
+}
+
+// APIError is a lightweight wrapper around the standard error
+// interface that preserves the status code from the RPC, if any.
+type APIError struct {
+ err error
+
+ StatusCode int `json:"-"`
+}
+
+// NewAPIError constructs a new API error.
+func NewAPIError(statusCode int, err error) *APIError {
+ return &APIError{
+ err: err,
+ StatusCode: statusCode,
+ }
+}
+
+// Unwrap returns the underlying error. This also makes the error compatible
+// with errors.As and errors.Is.
+func (a *APIError) Unwrap() error {
+ if a == nil {
+ return nil
+ }
+ return a.err
+}
+
+// Error returns the API error's message.
+func (a *APIError) Error() string {
+ if a == nil || (a.err == nil && a.StatusCode == 0) {
+ return ""
+ }
+ if a.err == nil {
+ return fmt.Sprintf("%d", a.StatusCode)
+ }
+ if a.StatusCode == 0 {
+ return a.err.Error()
+ }
+ return fmt.Sprintf("%d: %s", a.StatusCode, a.err.Error())
+}
+
+// DoRequest issues a JSON request to the given url.
+func DoRequest(
+ ctx context.Context,
+ client HTTPClient,
+ url string,
+ method string,
+ request any,
+ response any,
+ endpointHeaders http.Header,
+ errorDecoder func(int, io.Reader) error,
+) error {
+ var requestBody io.Reader
+ if request != nil {
+ requestBytes, err := json.Marshal(request)
+ if err != nil {
+ return err
+ }
+ requestBody = bytes.NewReader(requestBytes)
+ }
+ req, err := newRequest(ctx, url, method, endpointHeaders, requestBody)
+ if err != nil {
+ return err
+ }
+
+ // If the call has been cancelled, don't issue the request.
+ if err := ctx.Err(); err != nil {
+ return err
+ }
+ resp, err := client.Do(req)
+ if err != nil {
+ return err
+ }
+
+ // Close the response body after we're done.
+ defer resp.Body.Close()
+
+ // Check if the call was cancelled before we return the error
+ // associated with the call and/or unmarshal the response data.
+ if err = ctx.Err(); err != nil {
+ return err
+ }
+
+ if resp.StatusCode < 200 || resp.StatusCode >= 300 {
+ if errorDecoder != nil {
+ // This endpoint has custom errors, so we'll
+ // attempt to unmarshal the error into a structured
+ // type based on the status code.
+ return errorDecoder(resp.StatusCode, resp.Body)
+ }
+ // This endpoint doesn't have any custom error
+ // types, so we just read the body as-is, and
+ // put it into a normal error.
+ bytes, err := io.ReadAll(resp.Body)
+ if err != nil {
+ return err
+ }
+ return NewAPIError(resp.StatusCode, errors.New(string(bytes)))
+ }
+
+ // Mutate the response parameter in-place.
+ if response != nil {
+ decoder := json.NewDecoder(resp.Body)
+ if err := decoder.Decode(response); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+// newRequest returns a new *http.Request with all of the fields
+// required to issue the call.
+func newRequest(
+ ctx context.Context,
+ url string,
+ method string,
+ endpointHeaders http.Header,
+ requestBody io.Reader,
+) (*http.Request, error) {
+ req, err := http.NewRequestWithContext(ctx, method, url, requestBody)
+ if err != nil {
+ return nil, err
+ }
+ req = req.WithContext(ctx)
+ for name, value := range fernHeaders {
+ req.Header.Set(name, value)
+ }
+ for name, values := range endpointHeaders {
+ req.Header[name] = values
+ }
+ return req, nil
+}
diff --git a/core/environments.go b/core/environments.go
new file mode 100644
index 0000000..d107e3b
--- /dev/null
+++ b/core/environments.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package core
+
+var Environments = struct {
+ Default string
+}{
+ Default: "https://api.hookdeck.com/2023-01-01",
+}
diff --git a/core/pointer.go b/core/pointer.go
new file mode 100644
index 0000000..1cdd4da
--- /dev/null
+++ b/core/pointer.go
@@ -0,0 +1,103 @@
+package core
+
+import "time"
+
+// Bool returns a pointer to the given bool value.
+func Bool(b bool) *bool {
+ return &b
+}
+
+// Byte returns a pointer to the given byte value.
+func Byte(b byte) *byte {
+ return &b
+}
+
+// Complex64 returns a pointer to the given complex64 value.
+func Complex64(c complex64) *complex64 {
+ return &c
+}
+
+// Complex128 returns a pointer to the given complex128 value.
+func Complex128(c complex128) *complex128 {
+ return &c
+}
+
+// Float32 returns a pointer to the given float32 value.
+func Float32(f float32) *float32 {
+ return &f
+}
+
+// Float64 returns a pointer to the given float64 value.
+func Float64(f float64) *float64 {
+ return &f
+}
+
+// Int returns a pointer to the given int value.
+func Int(i int) *int {
+ return &i
+}
+
+// Int8 returns a pointer to the given int8 value.
+func Int8(i int8) *int8 {
+ return &i
+}
+
+// Int16 returns a pointer to the given int16 value.
+func Int16(i int16) *int16 {
+ return &i
+}
+
+// Int32 returns a pointer to the given int32 value.
+func Int32(i int32) *int32 {
+ return &i
+}
+
+// Int64 returns a pointer to the given int64 value.
+func Int64(i int64) *int64 {
+ return &i
+}
+
+// Rune returns a pointer to the given rune value.
+func Rune(r rune) *rune {
+ return &r
+}
+
+// String returns a pointer to the given string value.
+func String(s string) *string {
+ return &s
+}
+
+// Uint returns a pointer to the given uint value.
+func Uint(u uint) *uint {
+ return &u
+}
+
+// Uint8 returns a pointer to the given uint8 value.
+func Uint8(u uint8) *uint8 {
+ return &u
+}
+
+// Uint16 returns a pointer to the given uint16 value.
+func Uint16(u uint16) *uint16 {
+ return &u
+}
+
+// Uint32 returns a pointer to the given uint32 value.
+func Uint32(u uint32) *uint32 {
+ return &u
+}
+
+// Uint64 returns a pointer to the given uint64 value.
+func Uint64(u uint64) *uint64 {
+ return &u
+}
+
+// Uintptr returns a pointer to the given uintptr value.
+func Uintptr(u uintptr) *uintptr {
+ return &u
+}
+
+// Time returns a pointer to the given time.Time value.
+func Time(t time.Time) *time.Time {
+ return &t
+}
diff --git a/create_bookmark_request.go b/create_bookmark_request.go
new file mode 100644
index 0000000..c8ad239
--- /dev/null
+++ b/create_bookmark_request.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateBookmarkRequest struct {
+ // ID of the event data to bookmark `<= 255 characters`
+ EventDataId string `json:"event_data_id,omitempty"`
+ // ID of the associated connection `<= 255 characters`
+ WebhookId string `json:"webhook_id,omitempty"`
+ // Descriptive name of the bookmark `<= 255 characters`
+ Label string `json:"label,omitempty"`
+ // A unique, human-friendly name for the bookmark `<= 155 characters`
+ Name *string `json:"name,omitempty"`
+}
diff --git a/create_connection_request.go b/create_connection_request.go
new file mode 100644
index 0000000..9c3d9dd
--- /dev/null
+++ b/create_connection_request.go
@@ -0,0 +1,22 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateConnectionRequest struct {
+ // A unique name of the connection for the source `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // ID of a destination to bind to the connection
+ DestinationId *string `json:"destination_id,omitempty"`
+ // ID of a source to bind to the connection
+ SourceId *string `json:"source_id,omitempty"`
+ // Destination input object
+ Destination *CreateConnectionRequestDestination `json:"destination,omitempty"`
+ // Source input object
+ Source *CreateConnectionRequestSource `json:"source,omitempty"`
+ // Ruleset input object
+ Ruleset *CreateConnectionRequestRuleset `json:"ruleset,omitempty"`
+ // ID of a rule to bind to the connection. Default to the Workspace default ruleset
+ RulesetId *string `json:"ruleset_id,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+}
diff --git a/create_connection_request_destination.go b/create_connection_request_destination.go
new file mode 100644
index 0000000..47520c2
--- /dev/null
+++ b/create_connection_request_destination.go
@@ -0,0 +1,18 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Destination input object
+type CreateConnectionRequestDestination struct {
+ // Name for the destination `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Endpoint of the destination
+ Url *string `json:"url,omitempty"`
+ // Path for the CLI destination
+ CliPath *string `json:"cli_path,omitempty"`
+ // Period to rate limit attempts
+ RateLimitPeriod *CreateConnectionRequestDestinationRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ // Limit event attempts to receive per period
+ RateLimit *int `json:"rate_limit,omitempty"`
+ PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+}
diff --git a/create_connection_request_destination_rate_limit_period.go b/create_connection_request_destination_rate_limit_period.go
new file mode 100644
index 0000000..f0f33b5
--- /dev/null
+++ b/create_connection_request_destination_rate_limit_period.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Period to rate limit attempts
+type CreateConnectionRequestDestinationRateLimitPeriod uint8
+
+const (
+ CreateConnectionRequestDestinationRateLimitPeriodSecond CreateConnectionRequestDestinationRateLimitPeriod = iota + 1
+ CreateConnectionRequestDestinationRateLimitPeriodMinute
+ CreateConnectionRequestDestinationRateLimitPeriodHour
+)
+
+func (c CreateConnectionRequestDestinationRateLimitPeriod) String() string {
+ switch c {
+ default:
+ return strconv.Itoa(int(c))
+ case CreateConnectionRequestDestinationRateLimitPeriodSecond:
+ return "second"
+ case CreateConnectionRequestDestinationRateLimitPeriodMinute:
+ return "minute"
+ case CreateConnectionRequestDestinationRateLimitPeriodHour:
+ return "hour"
+ }
+}
+
+func (c CreateConnectionRequestDestinationRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", c.String())), nil
+}
+
+func (c *CreateConnectionRequestDestinationRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "second":
+ value := CreateConnectionRequestDestinationRateLimitPeriodSecond
+ *c = value
+ case "minute":
+ value := CreateConnectionRequestDestinationRateLimitPeriodMinute
+ *c = value
+ case "hour":
+ value := CreateConnectionRequestDestinationRateLimitPeriodHour
+ *c = value
+ }
+ return nil
+}
diff --git a/create_connection_request_ruleset.go b/create_connection_request_ruleset.go
new file mode 100644
index 0000000..60d60b0
--- /dev/null
+++ b/create_connection_request_ruleset.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Ruleset input object
+type CreateConnectionRequestRuleset struct {
+ // Name for the ruleset `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+ IsTeamDefault *bool `json:"is_team_default,omitempty"`
+}
diff --git a/create_connection_request_source.go b/create_connection_request_source.go
new file mode 100644
index 0000000..11e5e0a
--- /dev/null
+++ b/create_connection_request_source.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Source input object
+type CreateConnectionRequestSource struct {
+ // A unique name for the source `<= 155 characters`
+ Name string `json:"name,omitempty"`
+}
diff --git a/create_destination_request.go b/create_destination_request.go
new file mode 100644
index 0000000..902a631
--- /dev/null
+++ b/create_destination_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateDestinationRequest struct {
+ // Name for the destination `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Endpoint of the destination
+ Url *string `json:"url,omitempty"`
+ // Path for the CLI destination
+ CliPath *string `json:"cli_path,omitempty"`
+ // Period to rate limit attempts
+ RateLimitPeriod *CreateDestinationRequestRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ // Limit event attempts to receive per period
+ RateLimit *int `json:"rate_limit,omitempty"`
+ PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+}
diff --git a/create_destination_request_rate_limit_period.go b/create_destination_request_rate_limit_period.go
new file mode 100644
index 0000000..8162c5e
--- /dev/null
+++ b/create_destination_request_rate_limit_period.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Period to rate limit attempts
+type CreateDestinationRequestRateLimitPeriod uint8
+
+const (
+ CreateDestinationRequestRateLimitPeriodSecond CreateDestinationRequestRateLimitPeriod = iota + 1
+ CreateDestinationRequestRateLimitPeriodMinute
+ CreateDestinationRequestRateLimitPeriodHour
+)
+
+func (c CreateDestinationRequestRateLimitPeriod) String() string {
+ switch c {
+ default:
+ return strconv.Itoa(int(c))
+ case CreateDestinationRequestRateLimitPeriodSecond:
+ return "second"
+ case CreateDestinationRequestRateLimitPeriodMinute:
+ return "minute"
+ case CreateDestinationRequestRateLimitPeriodHour:
+ return "hour"
+ }
+}
+
+func (c CreateDestinationRequestRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", c.String())), nil
+}
+
+func (c *CreateDestinationRequestRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "second":
+ value := CreateDestinationRequestRateLimitPeriodSecond
+ *c = value
+ case "minute":
+ value := CreateDestinationRequestRateLimitPeriodMinute
+ *c = value
+ case "hour":
+ value := CreateDestinationRequestRateLimitPeriodHour
+ *c = value
+ }
+ return nil
+}
diff --git a/create_event_bulk_retry_request.go b/create_event_bulk_retry_request.go
new file mode 100644
index 0000000..d269797
--- /dev/null
+++ b/create_event_bulk_retry_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequest struct {
+ // Filter properties for the events to be included in the bulk retry
+ Query *CreateEventBulkRetryRequestQuery `json:"query,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query.go b/create_event_bulk_retry_request_query.go
new file mode 100644
index 0000000..a4e15c6
--- /dev/null
+++ b/create_event_bulk_retry_request_query.go
@@ -0,0 +1,42 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Filter properties for the events to be included in the bulk retry
+type CreateEventBulkRetryRequestQuery struct {
+ // Filter by event IDs
+ Id *CreateEventBulkRetryRequestQueryId `json:"id,omitempty"`
+ // Lifecyle status of the event
+ Status *CreateEventBulkRetryRequestQueryStatus `json:"status,omitempty"`
+ IssueId *CreateEventBulkRetryRequestQueryIssueId `json:"issue_id,omitempty"`
+ // Filter by webhook connection IDs
+ WebhookId *CreateEventBulkRetryRequestQueryWebhookId `json:"webhook_id,omitempty"`
+ // Filter by destination IDs
+ DestinationId *CreateEventBulkRetryRequestQueryDestinationId `json:"destination_id,omitempty"`
+ // Filter by source IDs
+ SourceId *CreateEventBulkRetryRequestQuerySourceId `json:"source_id,omitempty"`
+ // Filter by number of attempts
+ Attempts *CreateEventBulkRetryRequestQueryAttempts `json:"attempts,omitempty"`
+ // Filter by HTTP response status code
+ ResponseStatus *CreateEventBulkRetryRequestQueryResponseStatus `json:"response_status,omitempty"`
+ // Filter by `successful_at` date using a date operator
+ SuccessfulAt *CreateEventBulkRetryRequestQuerySuccessfulAt `json:"successful_at,omitempty"`
+ // Filter by `created_at` date using a date operator
+ CreatedAt *CreateEventBulkRetryRequestQueryCreatedAt `json:"created_at,omitempty"`
+ ErrorCode *CreateEventBulkRetryRequestQueryErrorCode `json:"error_code,omitempty"`
+ // Filter by CLI IDs. `?[any]=true` operator for any CLI.
+ CliId *CreateEventBulkRetryRequestQueryCliId `json:"cli_id,omitempty"`
+ CliUserId *CreateEventBulkRetryRequestQueryCliUserId `json:"cli_user_id,omitempty"`
+ // Filter by `last_attempt_at` date using a date operator
+ LastAttemptAt *CreateEventBulkRetryRequestQueryLastAttemptAt `json:"last_attempt_at,omitempty"`
+ EventDataId *CreateEventBulkRetryRequestQueryEventDataId `json:"event_data_id,omitempty"`
+ // URL Encoded string of the JSON to match to the data headers
+ Headers *CreateEventBulkRetryRequestQueryHeaders `json:"headers,omitempty"`
+ // URL Encoded string of the JSON to match to the data body
+ Body *CreateEventBulkRetryRequestQueryBody `json:"body,omitempty"`
+ // URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
+ ParsedQuery *CreateEventBulkRetryRequestQueryParsedQuery `json:"parsed_query,omitempty"`
+ BulkRetryId *CreateEventBulkRetryRequestQueryBulkRetryId `json:"bulk_retry_id,omitempty"`
+ // URL Encoded string of the string to match partially to the path
+ Path *string `json:"path,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_attempts.go b/create_event_bulk_retry_request_query_attempts.go
new file mode 100644
index 0000000..2508d07
--- /dev/null
+++ b/create_event_bulk_retry_request_query_attempts.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by number of attempts
+type CreateEventBulkRetryRequestQueryAttempts struct {
+ typeName string
+ Integer int
+ CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts *CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts
+}
+
+func NewCreateEventBulkRetryRequestQueryAttemptsFromInteger(value int) *CreateEventBulkRetryRequestQueryAttempts {
+ return &CreateEventBulkRetryRequestQueryAttempts{typeName: "integer", Integer: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryAttemptsFromCreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts(value *CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts) *CreateEventBulkRetryRequestQueryAttempts {
+ return &CreateEventBulkRetryRequestQueryAttempts{typeName: "createEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts", CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryAttempts) UnmarshalJSON(data []byte) error {
+ var valueInteger int
+ if err := json.Unmarshal(data, &valueInteger); err == nil {
+ c.typeName = "integer"
+ c.Integer = valueInteger
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts := new(CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts"
+ c.CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts = valueCreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryAttempts) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return json.Marshal(c.Integer)
+ case "createEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryAttemptsVisitor interface {
+ VisitInteger(int) error
+ VisitCreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts(*CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryAttempts) Accept(v CreateEventBulkRetryRequestQueryAttemptsVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return v.VisitInteger(c.Integer)
+ case "createEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts":
+ return v.VisitCreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts(c.CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_attempts_create_event_bulk_retry_request_query_attempts.go b/create_event_bulk_retry_request_query_attempts_create_event_bulk_retry_request_query_attempts.go
new file mode 100644
index 0000000..314d1d3
--- /dev/null
+++ b/create_event_bulk_retry_request_query_attempts_create_event_bulk_retry_request_query_attempts.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryAttemptsCreateEventBulkRetryRequestQueryAttempts struct {
+ Gt *int `json:"gt,omitempty"`
+ Gte *int `json:"gte,omitempty"`
+ Le *int `json:"le,omitempty"`
+ Lte *int `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+ Contains *int `json:"contains,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_body.go b/create_event_bulk_retry_request_query_body.go
new file mode 100644
index 0000000..a74f9af
--- /dev/null
+++ b/create_event_bulk_retry_request_query_body.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// URL Encoded string of the JSON to match to the data body
+type CreateEventBulkRetryRequestQueryBody struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody *CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody
+}
+
+func NewCreateEventBulkRetryRequestQueryBodyFromString(value string) *CreateEventBulkRetryRequestQueryBody {
+ return &CreateEventBulkRetryRequestQueryBody{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryBodyFromCreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody(value *CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody) *CreateEventBulkRetryRequestQueryBody {
+ return &CreateEventBulkRetryRequestQueryBody{typeName: "createEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody", CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryBody) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody := new(CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody"
+ c.CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody = valueCreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryBody) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryBodyVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody(*CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryBody) Accept(v CreateEventBulkRetryRequestQueryBodyVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody":
+ return v.VisitCreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody(c.CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_body_create_event_bulk_retry_request_query_body.go b/create_event_bulk_retry_request_query_body_create_event_bulk_retry_request_query_body.go
new file mode 100644
index 0000000..4fd3e35
--- /dev/null
+++ b/create_event_bulk_retry_request_query_body_create_event_bulk_retry_request_query_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryBodyCreateEventBulkRetryRequestQueryBody struct {
+}
diff --git a/create_event_bulk_retry_request_query_bulk_retry_id.go b/create_event_bulk_retry_request_query_bulk_retry_id.go
new file mode 100644
index 0000000..4fdd5d0
--- /dev/null
+++ b/create_event_bulk_retry_request_query_bulk_retry_id.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateEventBulkRetryRequestQueryBulkRetryId struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryBulkRetryIdFromString(value string) *CreateEventBulkRetryRequestQueryBulkRetryId {
+ return &CreateEventBulkRetryRequestQueryBulkRetryId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryBulkRetryIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryBulkRetryId {
+ return &CreateEventBulkRetryRequestQueryBulkRetryId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryBulkRetryId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryBulkRetryId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryBulkRetryIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryBulkRetryId) Accept(v CreateEventBulkRetryRequestQueryBulkRetryIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_cli_id.go b/create_event_bulk_retry_request_query_cli_id.go
new file mode 100644
index 0000000..10b9819
--- /dev/null
+++ b/create_event_bulk_retry_request_query_cli_id.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by CLI IDs. `?[any]=true` operator for any CLI.
+type CreateEventBulkRetryRequestQueryCliId struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId *CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryCliIdFromString(value string) *CreateEventBulkRetryRequestQueryCliId {
+ return &CreateEventBulkRetryRequestQueryCliId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryCliIdFromCreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId(value *CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId) *CreateEventBulkRetryRequestQueryCliId {
+ return &CreateEventBulkRetryRequestQueryCliId{typeName: "createEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId", CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryCliIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryCliId {
+ return &CreateEventBulkRetryRequestQueryCliId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryCliId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId := new(CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId"
+ c.CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId = valueCreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryCliId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryCliIdVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId(*CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryCliId) Accept(v CreateEventBulkRetryRequestQueryCliIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId":
+ return v.VisitCreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId(c.CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_cli_id_create_event_bulk_retry_request_query_cli_id.go b/create_event_bulk_retry_request_query_cli_id_create_event_bulk_retry_request_query_cli_id.go
new file mode 100644
index 0000000..6baa8c5
--- /dev/null
+++ b/create_event_bulk_retry_request_query_cli_id_create_event_bulk_retry_request_query_cli_id.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryCliIdCreateEventBulkRetryRequestQueryCliId struct {
+ Any *bool `json:"any,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_cli_user_id.go b/create_event_bulk_retry_request_query_cli_user_id.go
new file mode 100644
index 0000000..232a21c
--- /dev/null
+++ b/create_event_bulk_retry_request_query_cli_user_id.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateEventBulkRetryRequestQueryCliUserId struct {
+ typeName string
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryCliUserIdFromString(value string) *CreateEventBulkRetryRequestQueryCliUserId {
+ return &CreateEventBulkRetryRequestQueryCliUserId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryCliUserIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryCliUserId {
+ return &CreateEventBulkRetryRequestQueryCliUserId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryCliUserId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryCliUserId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryCliUserIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryCliUserId) Accept(v CreateEventBulkRetryRequestQueryCliUserIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_created_at.go b/create_event_bulk_retry_request_query_created_at.go
new file mode 100644
index 0000000..19ba2c6
--- /dev/null
+++ b/create_event_bulk_retry_request_query_created_at.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by `created_at` date using a date operator
+type CreateEventBulkRetryRequestQueryCreatedAt struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt *CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt
+}
+
+func NewCreateEventBulkRetryRequestQueryCreatedAtFromString(value string) *CreateEventBulkRetryRequestQueryCreatedAt {
+ return &CreateEventBulkRetryRequestQueryCreatedAt{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryCreatedAtFromCreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt(value *CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt) *CreateEventBulkRetryRequestQueryCreatedAt {
+ return &CreateEventBulkRetryRequestQueryCreatedAt{typeName: "createEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt", CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryCreatedAt) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt := new(CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt"
+ c.CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt = valueCreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryCreatedAt) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryCreatedAtVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt(*CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryCreatedAt) Accept(v CreateEventBulkRetryRequestQueryCreatedAtVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt":
+ return v.VisitCreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt(c.CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_created_at_create_event_bulk_retry_request_query_created_at.go b/create_event_bulk_retry_request_query_created_at_create_event_bulk_retry_request_query_created_at.go
new file mode 100644
index 0000000..525eed3
--- /dev/null
+++ b/create_event_bulk_retry_request_query_created_at_create_event_bulk_retry_request_query_created_at.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryCreatedAtCreateEventBulkRetryRequestQueryCreatedAt struct {
+ Gt *string `json:"gt,omitempty"`
+ Gte *string `json:"gte,omitempty"`
+ Le *string `json:"le,omitempty"`
+ Lte *string `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_destination_id.go b/create_event_bulk_retry_request_query_destination_id.go
new file mode 100644
index 0000000..b33e289
--- /dev/null
+++ b/create_event_bulk_retry_request_query_destination_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by destination IDs
+type CreateEventBulkRetryRequestQueryDestinationId struct {
+ typeName string
+ // Destination ID `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryDestinationIdFromString(value string) *CreateEventBulkRetryRequestQueryDestinationId {
+ return &CreateEventBulkRetryRequestQueryDestinationId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryDestinationIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryDestinationId {
+ return &CreateEventBulkRetryRequestQueryDestinationId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryDestinationId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryDestinationId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryDestinationIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryDestinationId) Accept(v CreateEventBulkRetryRequestQueryDestinationIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_error_code.go b/create_event_bulk_retry_request_query_error_code.go
new file mode 100644
index 0000000..f1aaad7
--- /dev/null
+++ b/create_event_bulk_retry_request_query_error_code.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateEventBulkRetryRequestQueryErrorCode struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryErrorCodeFromString(value string) *CreateEventBulkRetryRequestQueryErrorCode {
+ return &CreateEventBulkRetryRequestQueryErrorCode{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryErrorCodeFromStringList(value []string) *CreateEventBulkRetryRequestQueryErrorCode {
+ return &CreateEventBulkRetryRequestQueryErrorCode{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryErrorCode) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryErrorCode) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryErrorCodeVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryErrorCode) Accept(v CreateEventBulkRetryRequestQueryErrorCodeVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_event_data_id.go b/create_event_bulk_retry_request_query_event_data_id.go
new file mode 100644
index 0000000..0dea716
--- /dev/null
+++ b/create_event_bulk_retry_request_query_event_data_id.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateEventBulkRetryRequestQueryEventDataId struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryEventDataIdFromString(value string) *CreateEventBulkRetryRequestQueryEventDataId {
+ return &CreateEventBulkRetryRequestQueryEventDataId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryEventDataIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryEventDataId {
+ return &CreateEventBulkRetryRequestQueryEventDataId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryEventDataId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryEventDataId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryEventDataIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryEventDataId) Accept(v CreateEventBulkRetryRequestQueryEventDataIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_headers.go b/create_event_bulk_retry_request_query_headers.go
new file mode 100644
index 0000000..3cebbc3
--- /dev/null
+++ b/create_event_bulk_retry_request_query_headers.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// URL Encoded string of the JSON to match to the data headers
+type CreateEventBulkRetryRequestQueryHeaders struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders *CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders
+}
+
+func NewCreateEventBulkRetryRequestQueryHeadersFromString(value string) *CreateEventBulkRetryRequestQueryHeaders {
+ return &CreateEventBulkRetryRequestQueryHeaders{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryHeadersFromCreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders(value *CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders) *CreateEventBulkRetryRequestQueryHeaders {
+ return &CreateEventBulkRetryRequestQueryHeaders{typeName: "createEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders", CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryHeaders) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders := new(CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders"
+ c.CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders = valueCreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryHeaders) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryHeadersVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders(*CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryHeaders) Accept(v CreateEventBulkRetryRequestQueryHeadersVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders":
+ return v.VisitCreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders(c.CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_headers_create_event_bulk_retry_request_query_headers.go b/create_event_bulk_retry_request_query_headers_create_event_bulk_retry_request_query_headers.go
new file mode 100644
index 0000000..a0e715c
--- /dev/null
+++ b/create_event_bulk_retry_request_query_headers_create_event_bulk_retry_request_query_headers.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryHeadersCreateEventBulkRetryRequestQueryHeaders struct {
+}
diff --git a/create_event_bulk_retry_request_query_id.go b/create_event_bulk_retry_request_query_id.go
new file mode 100644
index 0000000..3511226
--- /dev/null
+++ b/create_event_bulk_retry_request_query_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by event IDs
+type CreateEventBulkRetryRequestQueryId struct {
+ typeName string
+ // Event ID `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryIdFromString(value string) *CreateEventBulkRetryRequestQueryId {
+ return &CreateEventBulkRetryRequestQueryId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryId {
+ return &CreateEventBulkRetryRequestQueryId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryId) Accept(v CreateEventBulkRetryRequestQueryIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_issue_id.go b/create_event_bulk_retry_request_query_issue_id.go
new file mode 100644
index 0000000..4650491
--- /dev/null
+++ b/create_event_bulk_retry_request_query_issue_id.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateEventBulkRetryRequestQueryIssueId struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryIssueIdFromString(value string) *CreateEventBulkRetryRequestQueryIssueId {
+ return &CreateEventBulkRetryRequestQueryIssueId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryIssueIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryIssueId {
+ return &CreateEventBulkRetryRequestQueryIssueId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryIssueId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryIssueId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryIssueIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryIssueId) Accept(v CreateEventBulkRetryRequestQueryIssueIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_last_attempt_at.go b/create_event_bulk_retry_request_query_last_attempt_at.go
new file mode 100644
index 0000000..d51847c
--- /dev/null
+++ b/create_event_bulk_retry_request_query_last_attempt_at.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by `last_attempt_at` date using a date operator
+type CreateEventBulkRetryRequestQueryLastAttemptAt struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt *CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt
+}
+
+func NewCreateEventBulkRetryRequestQueryLastAttemptAtFromString(value string) *CreateEventBulkRetryRequestQueryLastAttemptAt {
+ return &CreateEventBulkRetryRequestQueryLastAttemptAt{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryLastAttemptAtFromCreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt(value *CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt) *CreateEventBulkRetryRequestQueryLastAttemptAt {
+ return &CreateEventBulkRetryRequestQueryLastAttemptAt{typeName: "createEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt", CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryLastAttemptAt) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt := new(CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt"
+ c.CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt = valueCreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryLastAttemptAt) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryLastAttemptAtVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt(*CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryLastAttemptAt) Accept(v CreateEventBulkRetryRequestQueryLastAttemptAtVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt":
+ return v.VisitCreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt(c.CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_last_attempt_at_create_event_bulk_retry_request_query_last_attempt_at.go b/create_event_bulk_retry_request_query_last_attempt_at_create_event_bulk_retry_request_query_last_attempt_at.go
new file mode 100644
index 0000000..28f5ae4
--- /dev/null
+++ b/create_event_bulk_retry_request_query_last_attempt_at_create_event_bulk_retry_request_query_last_attempt_at.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryLastAttemptAtCreateEventBulkRetryRequestQueryLastAttemptAt struct {
+ Gt *string `json:"gt,omitempty"`
+ Gte *string `json:"gte,omitempty"`
+ Le *string `json:"le,omitempty"`
+ Lte *string `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_parsed_query.go b/create_event_bulk_retry_request_query_parsed_query.go
new file mode 100644
index 0000000..327918b
--- /dev/null
+++ b/create_event_bulk_retry_request_query_parsed_query.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
+type CreateEventBulkRetryRequestQueryParsedQuery struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery *CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery
+}
+
+func NewCreateEventBulkRetryRequestQueryParsedQueryFromString(value string) *CreateEventBulkRetryRequestQueryParsedQuery {
+ return &CreateEventBulkRetryRequestQueryParsedQuery{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryParsedQueryFromCreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery(value *CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery) *CreateEventBulkRetryRequestQueryParsedQuery {
+ return &CreateEventBulkRetryRequestQueryParsedQuery{typeName: "createEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery", CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryParsedQuery) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery := new(CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery"
+ c.CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery = valueCreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryParsedQuery) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryParsedQueryVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery(*CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryParsedQuery) Accept(v CreateEventBulkRetryRequestQueryParsedQueryVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery":
+ return v.VisitCreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery(c.CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_parsed_query_create_event_bulk_retry_request_query_parsed_query.go b/create_event_bulk_retry_request_query_parsed_query_create_event_bulk_retry_request_query_parsed_query.go
new file mode 100644
index 0000000..2081853
--- /dev/null
+++ b/create_event_bulk_retry_request_query_parsed_query_create_event_bulk_retry_request_query_parsed_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryParsedQueryCreateEventBulkRetryRequestQueryParsedQuery struct {
+}
diff --git a/create_event_bulk_retry_request_query_response_status.go b/create_event_bulk_retry_request_query_response_status.go
new file mode 100644
index 0000000..884ed9f
--- /dev/null
+++ b/create_event_bulk_retry_request_query_response_status.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by HTTP response status code
+type CreateEventBulkRetryRequestQueryResponseStatus struct {
+ typeName string
+ Integer int
+ CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus *CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus
+ IntegerList []int
+}
+
+func NewCreateEventBulkRetryRequestQueryResponseStatusFromInteger(value int) *CreateEventBulkRetryRequestQueryResponseStatus {
+ return &CreateEventBulkRetryRequestQueryResponseStatus{typeName: "integer", Integer: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryResponseStatusFromCreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus(value *CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus) *CreateEventBulkRetryRequestQueryResponseStatus {
+ return &CreateEventBulkRetryRequestQueryResponseStatus{typeName: "createEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus", CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryResponseStatusFromIntegerList(value []int) *CreateEventBulkRetryRequestQueryResponseStatus {
+ return &CreateEventBulkRetryRequestQueryResponseStatus{typeName: "integerList", IntegerList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryResponseStatus) UnmarshalJSON(data []byte) error {
+ var valueInteger int
+ if err := json.Unmarshal(data, &valueInteger); err == nil {
+ c.typeName = "integer"
+ c.Integer = valueInteger
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus := new(CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus); err == nil {
+ c.typeName = "createEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus"
+ c.CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus = valueCreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus
+ return nil
+ }
+ var valueIntegerList []int
+ if err := json.Unmarshal(data, &valueIntegerList); err == nil {
+ c.typeName = "integerList"
+ c.IntegerList = valueIntegerList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryResponseStatus) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return json.Marshal(c.Integer)
+ case "createEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus":
+ return json.Marshal(c.CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus)
+ case "integerList":
+ return json.Marshal(c.IntegerList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryResponseStatusVisitor interface {
+ VisitInteger(int) error
+ VisitCreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus(*CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus) error
+ VisitIntegerList([]int) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryResponseStatus) Accept(v CreateEventBulkRetryRequestQueryResponseStatusVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return v.VisitInteger(c.Integer)
+ case "createEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus":
+ return v.VisitCreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus(c.CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus)
+ case "integerList":
+ return v.VisitIntegerList(c.IntegerList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_response_status_create_event_bulk_retry_request_query_response_status.go b/create_event_bulk_retry_request_query_response_status_create_event_bulk_retry_request_query_response_status.go
new file mode 100644
index 0000000..3ba7dfe
--- /dev/null
+++ b/create_event_bulk_retry_request_query_response_status_create_event_bulk_retry_request_query_response_status.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQueryResponseStatusCreateEventBulkRetryRequestQueryResponseStatus struct {
+ Gt *int `json:"gt,omitempty"`
+ Gte *int `json:"gte,omitempty"`
+ Le *int `json:"le,omitempty"`
+ Lte *int `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+ Contains *int `json:"contains,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_source_id.go b/create_event_bulk_retry_request_query_source_id.go
new file mode 100644
index 0000000..d3df014
--- /dev/null
+++ b/create_event_bulk_retry_request_query_source_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by source IDs
+type CreateEventBulkRetryRequestQuerySourceId struct {
+ typeName string
+ // Source ID `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQuerySourceIdFromString(value string) *CreateEventBulkRetryRequestQuerySourceId {
+ return &CreateEventBulkRetryRequestQuerySourceId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQuerySourceIdFromStringList(value []string) *CreateEventBulkRetryRequestQuerySourceId {
+ return &CreateEventBulkRetryRequestQuerySourceId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQuerySourceId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQuerySourceId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQuerySourceIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQuerySourceId) Accept(v CreateEventBulkRetryRequestQuerySourceIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_status.go b/create_event_bulk_retry_request_query_status.go
new file mode 100644
index 0000000..420bc27
--- /dev/null
+++ b/create_event_bulk_retry_request_query_status.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Lifecyle status of the event
+type CreateEventBulkRetryRequestQueryStatus struct {
+ typeName string
+ EventStatus EventStatus
+ EventStatusList []EventStatus
+}
+
+func NewCreateEventBulkRetryRequestQueryStatusFromEventStatus(value EventStatus) *CreateEventBulkRetryRequestQueryStatus {
+ return &CreateEventBulkRetryRequestQueryStatus{typeName: "eventStatus", EventStatus: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryStatusFromEventStatusList(value []EventStatus) *CreateEventBulkRetryRequestQueryStatus {
+ return &CreateEventBulkRetryRequestQueryStatus{typeName: "eventStatusList", EventStatusList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryStatus) UnmarshalJSON(data []byte) error {
+ var valueEventStatus EventStatus
+ if err := json.Unmarshal(data, &valueEventStatus); err == nil {
+ c.typeName = "eventStatus"
+ c.EventStatus = valueEventStatus
+ return nil
+ }
+ var valueEventStatusList []EventStatus
+ if err := json.Unmarshal(data, &valueEventStatusList); err == nil {
+ c.typeName = "eventStatusList"
+ c.EventStatusList = valueEventStatusList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryStatus) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "eventStatus":
+ return json.Marshal(c.EventStatus)
+ case "eventStatusList":
+ return json.Marshal(c.EventStatusList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryStatusVisitor interface {
+ VisitEventStatus(EventStatus) error
+ VisitEventStatusList([]EventStatus) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryStatus) Accept(v CreateEventBulkRetryRequestQueryStatusVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "eventStatus":
+ return v.VisitEventStatus(c.EventStatus)
+ case "eventStatusList":
+ return v.VisitEventStatusList(c.EventStatusList)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_successful_at.go b/create_event_bulk_retry_request_query_successful_at.go
new file mode 100644
index 0000000..469bbe1
--- /dev/null
+++ b/create_event_bulk_retry_request_query_successful_at.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by `successful_at` date using a date operator
+type CreateEventBulkRetryRequestQuerySuccessfulAt struct {
+ typeName string
+ String string
+ CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt *CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt
+}
+
+func NewCreateEventBulkRetryRequestQuerySuccessfulAtFromString(value string) *CreateEventBulkRetryRequestQuerySuccessfulAt {
+ return &CreateEventBulkRetryRequestQuerySuccessfulAt{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQuerySuccessfulAtFromCreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt(value *CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt) *CreateEventBulkRetryRequestQuerySuccessfulAt {
+ return &CreateEventBulkRetryRequestQuerySuccessfulAt{typeName: "createEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt", CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt: value}
+}
+
+func (c *CreateEventBulkRetryRequestQuerySuccessfulAt) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt := new(CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt)
+ if err := json.Unmarshal(data, &valueCreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt); err == nil {
+ c.typeName = "createEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt"
+ c.CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt = valueCreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQuerySuccessfulAt) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt":
+ return json.Marshal(c.CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt)
+ }
+}
+
+type CreateEventBulkRetryRequestQuerySuccessfulAtVisitor interface {
+ VisitString(string) error
+ VisitCreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt(*CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt) error
+}
+
+func (c *CreateEventBulkRetryRequestQuerySuccessfulAt) Accept(v CreateEventBulkRetryRequestQuerySuccessfulAtVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt":
+ return v.VisitCreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt(c.CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt)
+ }
+}
diff --git a/create_event_bulk_retry_request_query_successful_at_create_event_bulk_retry_request_query_successful_at.go b/create_event_bulk_retry_request_query_successful_at_create_event_bulk_retry_request_query_successful_at.go
new file mode 100644
index 0000000..024dff9
--- /dev/null
+++ b/create_event_bulk_retry_request_query_successful_at_create_event_bulk_retry_request_query_successful_at.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateEventBulkRetryRequestQuerySuccessfulAtCreateEventBulkRetryRequestQuerySuccessfulAt struct {
+ Gt *string `json:"gt,omitempty"`
+ Gte *string `json:"gte,omitempty"`
+ Le *string `json:"le,omitempty"`
+ Lte *string `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+}
diff --git a/create_event_bulk_retry_request_query_webhook_id.go b/create_event_bulk_retry_request_query_webhook_id.go
new file mode 100644
index 0000000..eafc6be
--- /dev/null
+++ b/create_event_bulk_retry_request_query_webhook_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by webhook connection IDs
+type CreateEventBulkRetryRequestQueryWebhookId struct {
+ typeName string
+ // Webhook ID `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateEventBulkRetryRequestQueryWebhookIdFromString(value string) *CreateEventBulkRetryRequestQueryWebhookId {
+ return &CreateEventBulkRetryRequestQueryWebhookId{typeName: "string", String: value}
+}
+
+func NewCreateEventBulkRetryRequestQueryWebhookIdFromStringList(value []string) *CreateEventBulkRetryRequestQueryWebhookId {
+ return &CreateEventBulkRetryRequestQueryWebhookId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateEventBulkRetryRequestQueryWebhookId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateEventBulkRetryRequestQueryWebhookId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateEventBulkRetryRequestQueryWebhookIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateEventBulkRetryRequestQueryWebhookId) Accept(v CreateEventBulkRetryRequestQueryWebhookIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_ignored_event_bulk_retry_request.go b/create_ignored_event_bulk_retry_request.go
new file mode 100644
index 0000000..3015a65
--- /dev/null
+++ b/create_ignored_event_bulk_retry_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateIgnoredEventBulkRetryRequest struct {
+ // Filter by the bulk retry ignored event query object
+ Query *CreateIgnoredEventBulkRetryRequestQuery `json:"query,omitempty"`
+}
diff --git a/create_ignored_event_bulk_retry_request_query.go b/create_ignored_event_bulk_retry_request_query.go
new file mode 100644
index 0000000..61da152
--- /dev/null
+++ b/create_ignored_event_bulk_retry_request_query.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Filter by the bulk retry ignored event query object
+type CreateIgnoredEventBulkRetryRequestQuery struct {
+ // The cause of the ignored event
+ Cause *CreateIgnoredEventBulkRetryRequestQueryCause `json:"cause,omitempty"`
+ // Connection ID of the ignored event
+ WebhookId *CreateIgnoredEventBulkRetryRequestQueryWebhookId `json:"webhook_id,omitempty"`
+ // The associated transformation ID (only applicable to the cause `TRANSFORMATION_FAILED`) `<= 255 characters`
+ TransformationId *string `json:"transformation_id,omitempty"`
+}
diff --git a/create_ignored_event_bulk_retry_request_query_cause.go b/create_ignored_event_bulk_retry_request_query_cause.go
new file mode 100644
index 0000000..a12eb33
--- /dev/null
+++ b/create_ignored_event_bulk_retry_request_query_cause.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// The cause of the ignored event
+type CreateIgnoredEventBulkRetryRequestQueryCause struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateIgnoredEventBulkRetryRequestQueryCauseFromString(value string) *CreateIgnoredEventBulkRetryRequestQueryCause {
+ return &CreateIgnoredEventBulkRetryRequestQueryCause{typeName: "string", String: value}
+}
+
+func NewCreateIgnoredEventBulkRetryRequestQueryCauseFromStringList(value []string) *CreateIgnoredEventBulkRetryRequestQueryCause {
+ return &CreateIgnoredEventBulkRetryRequestQueryCause{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateIgnoredEventBulkRetryRequestQueryCause) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateIgnoredEventBulkRetryRequestQueryCause) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateIgnoredEventBulkRetryRequestQueryCauseVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateIgnoredEventBulkRetryRequestQueryCause) Accept(v CreateIgnoredEventBulkRetryRequestQueryCauseVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_ignored_event_bulk_retry_request_query_webhook_id.go b/create_ignored_event_bulk_retry_request_query_webhook_id.go
new file mode 100644
index 0000000..ecf27bd
--- /dev/null
+++ b/create_ignored_event_bulk_retry_request_query_webhook_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Connection ID of the ignored event
+type CreateIgnoredEventBulkRetryRequestQueryWebhookId struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateIgnoredEventBulkRetryRequestQueryWebhookIdFromString(value string) *CreateIgnoredEventBulkRetryRequestQueryWebhookId {
+ return &CreateIgnoredEventBulkRetryRequestQueryWebhookId{typeName: "string", String: value}
+}
+
+func NewCreateIgnoredEventBulkRetryRequestQueryWebhookIdFromStringList(value []string) *CreateIgnoredEventBulkRetryRequestQueryWebhookId {
+ return &CreateIgnoredEventBulkRetryRequestQueryWebhookId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateIgnoredEventBulkRetryRequestQueryWebhookId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateIgnoredEventBulkRetryRequestQueryWebhookId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateIgnoredEventBulkRetryRequestQueryWebhookIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateIgnoredEventBulkRetryRequestQueryWebhookId) Accept(v CreateIgnoredEventBulkRetryRequestQueryWebhookIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_integration_request.go b/create_integration_request.go
new file mode 100644
index 0000000..5583843
--- /dev/null
+++ b/create_integration_request.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateIntegrationRequest struct {
+ // Label of the integration
+ Label string `json:"label,omitempty"`
+ // Decrypted Key/Value object of the associated configuration for that provider
+ Configs *CreateIntegrationRequestConfigs `json:"configs,omitempty"`
+ Provider IntegrationProvider `json:"provider,omitempty"`
+ // List of features to enable (see features list above)
+ Features []IntegrationFeature `json:"features,omitempty"`
+}
diff --git a/create_integration_request_configs.go b/create_integration_request_configs.go
new file mode 100644
index 0000000..e7cd9e4
--- /dev/null
+++ b/create_integration_request_configs.go
@@ -0,0 +1,114 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Decrypted Key/Value object of the associated configuration for that provider
+type CreateIntegrationRequestConfigs struct {
+ typeName string
+ HmacIntegrationConfigs *HmacIntegrationConfigs
+ ApiKeyIntegrationConfigs *ApiKeyIntegrationConfigs
+ HandledHmacConfigs *HandledHmacConfigs
+ BasicAuthIntegrationConfigs *BasicAuthIntegrationConfigs
+ ShopifyIntegrationConfigs *ShopifyIntegrationConfigs
+}
+
+func NewCreateIntegrationRequestConfigsFromHmacIntegrationConfigs(value *HmacIntegrationConfigs) *CreateIntegrationRequestConfigs {
+ return &CreateIntegrationRequestConfigs{typeName: "hmacIntegrationConfigs", HmacIntegrationConfigs: value}
+}
+
+func NewCreateIntegrationRequestConfigsFromApiKeyIntegrationConfigs(value *ApiKeyIntegrationConfigs) *CreateIntegrationRequestConfigs {
+ return &CreateIntegrationRequestConfigs{typeName: "apiKeyIntegrationConfigs", ApiKeyIntegrationConfigs: value}
+}
+
+func NewCreateIntegrationRequestConfigsFromHandledHmacConfigs(value *HandledHmacConfigs) *CreateIntegrationRequestConfigs {
+ return &CreateIntegrationRequestConfigs{typeName: "handledHmacConfigs", HandledHmacConfigs: value}
+}
+
+func NewCreateIntegrationRequestConfigsFromBasicAuthIntegrationConfigs(value *BasicAuthIntegrationConfigs) *CreateIntegrationRequestConfigs {
+ return &CreateIntegrationRequestConfigs{typeName: "basicAuthIntegrationConfigs", BasicAuthIntegrationConfigs: value}
+}
+
+func NewCreateIntegrationRequestConfigsFromShopifyIntegrationConfigs(value *ShopifyIntegrationConfigs) *CreateIntegrationRequestConfigs {
+ return &CreateIntegrationRequestConfigs{typeName: "shopifyIntegrationConfigs", ShopifyIntegrationConfigs: value}
+}
+
+func (c *CreateIntegrationRequestConfigs) UnmarshalJSON(data []byte) error {
+ valueHmacIntegrationConfigs := new(HmacIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueHmacIntegrationConfigs); err == nil {
+ c.typeName = "hmacIntegrationConfigs"
+ c.HmacIntegrationConfigs = valueHmacIntegrationConfigs
+ return nil
+ }
+ valueApiKeyIntegrationConfigs := new(ApiKeyIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueApiKeyIntegrationConfigs); err == nil {
+ c.typeName = "apiKeyIntegrationConfigs"
+ c.ApiKeyIntegrationConfigs = valueApiKeyIntegrationConfigs
+ return nil
+ }
+ valueHandledHmacConfigs := new(HandledHmacConfigs)
+ if err := json.Unmarshal(data, &valueHandledHmacConfigs); err == nil {
+ c.typeName = "handledHmacConfigs"
+ c.HandledHmacConfigs = valueHandledHmacConfigs
+ return nil
+ }
+ valueBasicAuthIntegrationConfigs := new(BasicAuthIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueBasicAuthIntegrationConfigs); err == nil {
+ c.typeName = "basicAuthIntegrationConfigs"
+ c.BasicAuthIntegrationConfigs = valueBasicAuthIntegrationConfigs
+ return nil
+ }
+ valueShopifyIntegrationConfigs := new(ShopifyIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueShopifyIntegrationConfigs); err == nil {
+ c.typeName = "shopifyIntegrationConfigs"
+ c.ShopifyIntegrationConfigs = valueShopifyIntegrationConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateIntegrationRequestConfigs) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "hmacIntegrationConfigs":
+ return json.Marshal(c.HmacIntegrationConfigs)
+ case "apiKeyIntegrationConfigs":
+ return json.Marshal(c.ApiKeyIntegrationConfigs)
+ case "handledHmacConfigs":
+ return json.Marshal(c.HandledHmacConfigs)
+ case "basicAuthIntegrationConfigs":
+ return json.Marshal(c.BasicAuthIntegrationConfigs)
+ case "shopifyIntegrationConfigs":
+ return json.Marshal(c.ShopifyIntegrationConfigs)
+ }
+}
+
+type CreateIntegrationRequestConfigsVisitor interface {
+ VisitHmacIntegrationConfigs(*HmacIntegrationConfigs) error
+ VisitApiKeyIntegrationConfigs(*ApiKeyIntegrationConfigs) error
+ VisitHandledHmacConfigs(*HandledHmacConfigs) error
+ VisitBasicAuthIntegrationConfigs(*BasicAuthIntegrationConfigs) error
+ VisitShopifyIntegrationConfigs(*ShopifyIntegrationConfigs) error
+}
+
+func (c *CreateIntegrationRequestConfigs) Accept(v CreateIntegrationRequestConfigsVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "hmacIntegrationConfigs":
+ return v.VisitHmacIntegrationConfigs(c.HmacIntegrationConfigs)
+ case "apiKeyIntegrationConfigs":
+ return v.VisitApiKeyIntegrationConfigs(c.ApiKeyIntegrationConfigs)
+ case "handledHmacConfigs":
+ return v.VisitHandledHmacConfigs(c.HandledHmacConfigs)
+ case "basicAuthIntegrationConfigs":
+ return v.VisitBasicAuthIntegrationConfigs(c.BasicAuthIntegrationConfigs)
+ case "shopifyIntegrationConfigs":
+ return v.VisitShopifyIntegrationConfigs(c.ShopifyIntegrationConfigs)
+ }
+}
diff --git a/create_issue_trigger_request.go b/create_issue_trigger_request.go
new file mode 100644
index 0000000..9baab20
--- /dev/null
+++ b/create_issue_trigger_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateIssueTriggerRequest struct {
+ Type IssueType `json:"type,omitempty"`
+ // Configuration object for the specific issue type selected
+ Configs *CreateIssueTriggerRequestConfigs `json:"configs,omitempty"`
+ Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ // Optional unique name to use as reference when using the API `<= 255 characters`
+ Name *string `json:"name,omitempty"`
+}
diff --git a/create_issue_trigger_request_configs.go b/create_issue_trigger_request_configs.go
new file mode 100644
index 0000000..2c0f6d9
--- /dev/null
+++ b/create_issue_trigger_request_configs.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Configuration object for the specific issue type selected
+type CreateIssueTriggerRequestConfigs struct {
+ typeName string
+ IssueTriggerDeliveryConfigs *IssueTriggerDeliveryConfigs
+ IssueTriggerTransformationConfigs *IssueTriggerTransformationConfigs
+ IssueTriggerBackpressureConfigs *IssueTriggerBackpressureConfigs
+}
+
+func NewCreateIssueTriggerRequestConfigsFromIssueTriggerDeliveryConfigs(value *IssueTriggerDeliveryConfigs) *CreateIssueTriggerRequestConfigs {
+ return &CreateIssueTriggerRequestConfigs{typeName: "issueTriggerDeliveryConfigs", IssueTriggerDeliveryConfigs: value}
+}
+
+func NewCreateIssueTriggerRequestConfigsFromIssueTriggerTransformationConfigs(value *IssueTriggerTransformationConfigs) *CreateIssueTriggerRequestConfigs {
+ return &CreateIssueTriggerRequestConfigs{typeName: "issueTriggerTransformationConfigs", IssueTriggerTransformationConfigs: value}
+}
+
+func NewCreateIssueTriggerRequestConfigsFromIssueTriggerBackpressureConfigs(value *IssueTriggerBackpressureConfigs) *CreateIssueTriggerRequestConfigs {
+ return &CreateIssueTriggerRequestConfigs{typeName: "issueTriggerBackpressureConfigs", IssueTriggerBackpressureConfigs: value}
+}
+
+func (c *CreateIssueTriggerRequestConfigs) UnmarshalJSON(data []byte) error {
+ valueIssueTriggerDeliveryConfigs := new(IssueTriggerDeliveryConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerDeliveryConfigs); err == nil {
+ c.typeName = "issueTriggerDeliveryConfigs"
+ c.IssueTriggerDeliveryConfigs = valueIssueTriggerDeliveryConfigs
+ return nil
+ }
+ valueIssueTriggerTransformationConfigs := new(IssueTriggerTransformationConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerTransformationConfigs); err == nil {
+ c.typeName = "issueTriggerTransformationConfigs"
+ c.IssueTriggerTransformationConfigs = valueIssueTriggerTransformationConfigs
+ return nil
+ }
+ valueIssueTriggerBackpressureConfigs := new(IssueTriggerBackpressureConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerBackpressureConfigs); err == nil {
+ c.typeName = "issueTriggerBackpressureConfigs"
+ c.IssueTriggerBackpressureConfigs = valueIssueTriggerBackpressureConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateIssueTriggerRequestConfigs) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "issueTriggerDeliveryConfigs":
+ return json.Marshal(c.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return json.Marshal(c.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return json.Marshal(c.IssueTriggerBackpressureConfigs)
+ }
+}
+
+type CreateIssueTriggerRequestConfigsVisitor interface {
+ VisitIssueTriggerDeliveryConfigs(*IssueTriggerDeliveryConfigs) error
+ VisitIssueTriggerTransformationConfigs(*IssueTriggerTransformationConfigs) error
+ VisitIssueTriggerBackpressureConfigs(*IssueTriggerBackpressureConfigs) error
+}
+
+func (c *CreateIssueTriggerRequestConfigs) Accept(v CreateIssueTriggerRequestConfigsVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "issueTriggerDeliveryConfigs":
+ return v.VisitIssueTriggerDeliveryConfigs(c.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return v.VisitIssueTriggerTransformationConfigs(c.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return v.VisitIssueTriggerBackpressureConfigs(c.IssueTriggerBackpressureConfigs)
+ }
+}
diff --git a/create_request_bulk_retry_request.go b/create_request_bulk_retry_request.go
new file mode 100644
index 0000000..866ef6f
--- /dev/null
+++ b/create_request_bulk_retry_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequest struct {
+ // Filter properties for the events to be included in the bulk retry, use query parameters of [Requests](#requests)
+ Query *CreateRequestBulkRetryRequestQuery `json:"query,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query.go b/create_request_bulk_retry_request_query.go
new file mode 100644
index 0000000..831cf41
--- /dev/null
+++ b/create_request_bulk_retry_request_query.go
@@ -0,0 +1,29 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Filter properties for the events to be included in the bulk retry, use query parameters of [Requests](#requests)
+type CreateRequestBulkRetryRequestQuery struct {
+ // Filter by requests IDs
+ Id *CreateRequestBulkRetryRequestQueryId `json:"id,omitempty"`
+ Status *CreateRequestBulkRetryRequestQueryStatus `json:"status,omitempty"`
+ // Filter by rejection cause
+ RejectionCause *CreateRequestBulkRetryRequestQueryRejectionCause `json:"rejection_cause,omitempty"`
+ IgnoredCount *CreateRequestBulkRetryRequestQueryIgnoredCount `json:"ignored_count,omitempty"`
+ EventsCount *CreateRequestBulkRetryRequestQueryEventsCount `json:"events_count,omitempty"`
+ // Filter by source IDs
+ SourceId *CreateRequestBulkRetryRequestQuerySourceId `json:"source_id,omitempty"`
+ // Filter by verification status
+ Verified *bool `json:"verified,omitempty"`
+ // URL Encoded string of the JSON to match to the data headers
+ Headers *CreateRequestBulkRetryRequestQueryHeaders `json:"headers,omitempty"`
+ // URL Encoded string of the JSON to match to the data body
+ Body *CreateRequestBulkRetryRequestQueryBody `json:"body,omitempty"`
+ // URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
+ ParsedQuery *CreateRequestBulkRetryRequestQueryParsedQuery `json:"parsed_query,omitempty"`
+ // URL Encoded string of the string to match partially to the path
+ Path *string `json:"path,omitempty"`
+ CreatedAt *CreateRequestBulkRetryRequestQueryCreatedAt `json:"created_at,omitempty"`
+ IngestedAt *CreateRequestBulkRetryRequestQueryIngestedAt `json:"ingested_at,omitempty"`
+ BulkRetryId *CreateRequestBulkRetryRequestQueryBulkRetryId `json:"bulk_retry_id,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query_body.go b/create_request_bulk_retry_request_query_body.go
new file mode 100644
index 0000000..993e295
--- /dev/null
+++ b/create_request_bulk_retry_request_query_body.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// URL Encoded string of the JSON to match to the data body
+type CreateRequestBulkRetryRequestQueryBody struct {
+ typeName string
+ String string
+ CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody *CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody
+}
+
+func NewCreateRequestBulkRetryRequestQueryBodyFromString(value string) *CreateRequestBulkRetryRequestQueryBody {
+ return &CreateRequestBulkRetryRequestQueryBody{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryBodyFromCreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody(value *CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody) *CreateRequestBulkRetryRequestQueryBody {
+ return &CreateRequestBulkRetryRequestQueryBody{typeName: "createRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody", CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryBody) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody := new(CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody"
+ c.CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody = valueCreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryBody) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryBodyVisitor interface {
+ VisitString(string) error
+ VisitCreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody(*CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryBody) Accept(v CreateRequestBulkRetryRequestQueryBodyVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody":
+ return v.VisitCreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody(c.CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_body_create_request_bulk_retry_request_query_body.go b/create_request_bulk_retry_request_query_body_create_request_bulk_retry_request_query_body.go
new file mode 100644
index 0000000..823aa71
--- /dev/null
+++ b/create_request_bulk_retry_request_query_body_create_request_bulk_retry_request_query_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryBodyCreateRequestBulkRetryRequestQueryBody struct {
+}
diff --git a/create_request_bulk_retry_request_query_bulk_retry_id.go b/create_request_bulk_retry_request_query_bulk_retry_id.go
new file mode 100644
index 0000000..704c224
--- /dev/null
+++ b/create_request_bulk_retry_request_query_bulk_retry_id.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateRequestBulkRetryRequestQueryBulkRetryId struct {
+ typeName string
+ // `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateRequestBulkRetryRequestQueryBulkRetryIdFromString(value string) *CreateRequestBulkRetryRequestQueryBulkRetryId {
+ return &CreateRequestBulkRetryRequestQueryBulkRetryId{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryBulkRetryIdFromStringList(value []string) *CreateRequestBulkRetryRequestQueryBulkRetryId {
+ return &CreateRequestBulkRetryRequestQueryBulkRetryId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryBulkRetryId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryBulkRetryId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryBulkRetryIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryBulkRetryId) Accept(v CreateRequestBulkRetryRequestQueryBulkRetryIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_created_at.go b/create_request_bulk_retry_request_query_created_at.go
new file mode 100644
index 0000000..11ad24f
--- /dev/null
+++ b/create_request_bulk_retry_request_query_created_at.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateRequestBulkRetryRequestQueryCreatedAt struct {
+ typeName string
+ String string
+ CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt *CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt
+}
+
+func NewCreateRequestBulkRetryRequestQueryCreatedAtFromString(value string) *CreateRequestBulkRetryRequestQueryCreatedAt {
+ return &CreateRequestBulkRetryRequestQueryCreatedAt{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryCreatedAtFromCreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt(value *CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt) *CreateRequestBulkRetryRequestQueryCreatedAt {
+ return &CreateRequestBulkRetryRequestQueryCreatedAt{typeName: "createRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt", CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryCreatedAt) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt := new(CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt"
+ c.CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt = valueCreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryCreatedAt) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryCreatedAtVisitor interface {
+ VisitString(string) error
+ VisitCreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt(*CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryCreatedAt) Accept(v CreateRequestBulkRetryRequestQueryCreatedAtVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt":
+ return v.VisitCreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt(c.CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_created_at_create_request_bulk_retry_request_query_created_at.go b/create_request_bulk_retry_request_query_created_at_create_request_bulk_retry_request_query_created_at.go
new file mode 100644
index 0000000..fe19fd2
--- /dev/null
+++ b/create_request_bulk_retry_request_query_created_at_create_request_bulk_retry_request_query_created_at.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryCreatedAtCreateRequestBulkRetryRequestQueryCreatedAt struct {
+ Gt *string `json:"gt,omitempty"`
+ Gte *string `json:"gte,omitempty"`
+ Le *string `json:"le,omitempty"`
+ Lte *string `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query_events_count.go b/create_request_bulk_retry_request_query_events_count.go
new file mode 100644
index 0000000..0eae382
--- /dev/null
+++ b/create_request_bulk_retry_request_query_events_count.go
@@ -0,0 +1,81 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateRequestBulkRetryRequestQueryEventsCount struct {
+ typeName string
+ Integer int
+ CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount *CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount
+ IntegerList []int
+}
+
+func NewCreateRequestBulkRetryRequestQueryEventsCountFromInteger(value int) *CreateRequestBulkRetryRequestQueryEventsCount {
+ return &CreateRequestBulkRetryRequestQueryEventsCount{typeName: "integer", Integer: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryEventsCountFromCreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount(value *CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount) *CreateRequestBulkRetryRequestQueryEventsCount {
+ return &CreateRequestBulkRetryRequestQueryEventsCount{typeName: "createRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount", CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryEventsCountFromIntegerList(value []int) *CreateRequestBulkRetryRequestQueryEventsCount {
+ return &CreateRequestBulkRetryRequestQueryEventsCount{typeName: "integerList", IntegerList: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryEventsCount) UnmarshalJSON(data []byte) error {
+ var valueInteger int
+ if err := json.Unmarshal(data, &valueInteger); err == nil {
+ c.typeName = "integer"
+ c.Integer = valueInteger
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount := new(CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount"
+ c.CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount = valueCreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount
+ return nil
+ }
+ var valueIntegerList []int
+ if err := json.Unmarshal(data, &valueIntegerList); err == nil {
+ c.typeName = "integerList"
+ c.IntegerList = valueIntegerList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryEventsCount) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return json.Marshal(c.Integer)
+ case "createRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount)
+ case "integerList":
+ return json.Marshal(c.IntegerList)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryEventsCountVisitor interface {
+ VisitInteger(int) error
+ VisitCreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount(*CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount) error
+ VisitIntegerList([]int) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryEventsCount) Accept(v CreateRequestBulkRetryRequestQueryEventsCountVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return v.VisitInteger(c.Integer)
+ case "createRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount":
+ return v.VisitCreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount(c.CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount)
+ case "integerList":
+ return v.VisitIntegerList(c.IntegerList)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_events_count_create_request_bulk_retry_request_query_events_count.go b/create_request_bulk_retry_request_query_events_count_create_request_bulk_retry_request_query_events_count.go
new file mode 100644
index 0000000..f75259a
--- /dev/null
+++ b/create_request_bulk_retry_request_query_events_count_create_request_bulk_retry_request_query_events_count.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryEventsCountCreateRequestBulkRetryRequestQueryEventsCount struct {
+ Gt *int `json:"gt,omitempty"`
+ Gte *int `json:"gte,omitempty"`
+ Le *int `json:"le,omitempty"`
+ Lte *int `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+ Contains *int `json:"contains,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query_headers.go b/create_request_bulk_retry_request_query_headers.go
new file mode 100644
index 0000000..7aa5be7
--- /dev/null
+++ b/create_request_bulk_retry_request_query_headers.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// URL Encoded string of the JSON to match to the data headers
+type CreateRequestBulkRetryRequestQueryHeaders struct {
+ typeName string
+ String string
+ CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders *CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders
+}
+
+func NewCreateRequestBulkRetryRequestQueryHeadersFromString(value string) *CreateRequestBulkRetryRequestQueryHeaders {
+ return &CreateRequestBulkRetryRequestQueryHeaders{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryHeadersFromCreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders(value *CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders) *CreateRequestBulkRetryRequestQueryHeaders {
+ return &CreateRequestBulkRetryRequestQueryHeaders{typeName: "createRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders", CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryHeaders) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders := new(CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders"
+ c.CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders = valueCreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryHeaders) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryHeadersVisitor interface {
+ VisitString(string) error
+ VisitCreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders(*CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryHeaders) Accept(v CreateRequestBulkRetryRequestQueryHeadersVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders":
+ return v.VisitCreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders(c.CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_headers_create_request_bulk_retry_request_query_headers.go b/create_request_bulk_retry_request_query_headers_create_request_bulk_retry_request_query_headers.go
new file mode 100644
index 0000000..bd73ab2
--- /dev/null
+++ b/create_request_bulk_retry_request_query_headers_create_request_bulk_retry_request_query_headers.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryHeadersCreateRequestBulkRetryRequestQueryHeaders struct {
+}
diff --git a/create_request_bulk_retry_request_query_id.go b/create_request_bulk_retry_request_query_id.go
new file mode 100644
index 0000000..cffc41b
--- /dev/null
+++ b/create_request_bulk_retry_request_query_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by requests IDs
+type CreateRequestBulkRetryRequestQueryId struct {
+ typeName string
+ // Request ID `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateRequestBulkRetryRequestQueryIdFromString(value string) *CreateRequestBulkRetryRequestQueryId {
+ return &CreateRequestBulkRetryRequestQueryId{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryIdFromStringList(value []string) *CreateRequestBulkRetryRequestQueryId {
+ return &CreateRequestBulkRetryRequestQueryId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryId) Accept(v CreateRequestBulkRetryRequestQueryIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_ignored_count.go b/create_request_bulk_retry_request_query_ignored_count.go
new file mode 100644
index 0000000..8b06c05
--- /dev/null
+++ b/create_request_bulk_retry_request_query_ignored_count.go
@@ -0,0 +1,81 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateRequestBulkRetryRequestQueryIgnoredCount struct {
+ typeName string
+ Integer int
+ CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount *CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount
+ IntegerList []int
+}
+
+func NewCreateRequestBulkRetryRequestQueryIgnoredCountFromInteger(value int) *CreateRequestBulkRetryRequestQueryIgnoredCount {
+ return &CreateRequestBulkRetryRequestQueryIgnoredCount{typeName: "integer", Integer: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryIgnoredCountFromCreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount(value *CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount) *CreateRequestBulkRetryRequestQueryIgnoredCount {
+ return &CreateRequestBulkRetryRequestQueryIgnoredCount{typeName: "createRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount", CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryIgnoredCountFromIntegerList(value []int) *CreateRequestBulkRetryRequestQueryIgnoredCount {
+ return &CreateRequestBulkRetryRequestQueryIgnoredCount{typeName: "integerList", IntegerList: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryIgnoredCount) UnmarshalJSON(data []byte) error {
+ var valueInteger int
+ if err := json.Unmarshal(data, &valueInteger); err == nil {
+ c.typeName = "integer"
+ c.Integer = valueInteger
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount := new(CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount"
+ c.CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount = valueCreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount
+ return nil
+ }
+ var valueIntegerList []int
+ if err := json.Unmarshal(data, &valueIntegerList); err == nil {
+ c.typeName = "integerList"
+ c.IntegerList = valueIntegerList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryIgnoredCount) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return json.Marshal(c.Integer)
+ case "createRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount)
+ case "integerList":
+ return json.Marshal(c.IntegerList)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryIgnoredCountVisitor interface {
+ VisitInteger(int) error
+ VisitCreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount(*CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount) error
+ VisitIntegerList([]int) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryIgnoredCount) Accept(v CreateRequestBulkRetryRequestQueryIgnoredCountVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "integer":
+ return v.VisitInteger(c.Integer)
+ case "createRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount":
+ return v.VisitCreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount(c.CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount)
+ case "integerList":
+ return v.VisitIntegerList(c.IntegerList)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_ignored_count_create_request_bulk_retry_request_query_ignored_count.go b/create_request_bulk_retry_request_query_ignored_count_create_request_bulk_retry_request_query_ignored_count.go
new file mode 100644
index 0000000..adfccec
--- /dev/null
+++ b/create_request_bulk_retry_request_query_ignored_count_create_request_bulk_retry_request_query_ignored_count.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryIgnoredCountCreateRequestBulkRetryRequestQueryIgnoredCount struct {
+ Gt *int `json:"gt,omitempty"`
+ Gte *int `json:"gte,omitempty"`
+ Le *int `json:"le,omitempty"`
+ Lte *int `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+ Contains *int `json:"contains,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query_ingested_at.go b/create_request_bulk_retry_request_query_ingested_at.go
new file mode 100644
index 0000000..d7c4de8
--- /dev/null
+++ b/create_request_bulk_retry_request_query_ingested_at.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateRequestBulkRetryRequestQueryIngestedAt struct {
+ typeName string
+ String string
+ CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt *CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt
+}
+
+func NewCreateRequestBulkRetryRequestQueryIngestedAtFromString(value string) *CreateRequestBulkRetryRequestQueryIngestedAt {
+ return &CreateRequestBulkRetryRequestQueryIngestedAt{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryIngestedAtFromCreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt(value *CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt) *CreateRequestBulkRetryRequestQueryIngestedAt {
+ return &CreateRequestBulkRetryRequestQueryIngestedAt{typeName: "createRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt", CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryIngestedAt) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt := new(CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt"
+ c.CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt = valueCreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryIngestedAt) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryIngestedAtVisitor interface {
+ VisitString(string) error
+ VisitCreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt(*CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryIngestedAt) Accept(v CreateRequestBulkRetryRequestQueryIngestedAtVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt":
+ return v.VisitCreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt(c.CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_ingested_at_create_request_bulk_retry_request_query_ingested_at.go b/create_request_bulk_retry_request_query_ingested_at_create_request_bulk_retry_request_query_ingested_at.go
new file mode 100644
index 0000000..d3b46c2
--- /dev/null
+++ b/create_request_bulk_retry_request_query_ingested_at_create_request_bulk_retry_request_query_ingested_at.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryIngestedAtCreateRequestBulkRetryRequestQueryIngestedAt struct {
+ Gt *string `json:"gt,omitempty"`
+ Gte *string `json:"gte,omitempty"`
+ Le *string `json:"le,omitempty"`
+ Lte *string `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query_parsed_query.go b/create_request_bulk_retry_request_query_parsed_query.go
new file mode 100644
index 0000000..8ce72ce
--- /dev/null
+++ b/create_request_bulk_retry_request_query_parsed_query.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
+type CreateRequestBulkRetryRequestQueryParsedQuery struct {
+ typeName string
+ String string
+ CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery *CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery
+}
+
+func NewCreateRequestBulkRetryRequestQueryParsedQueryFromString(value string) *CreateRequestBulkRetryRequestQueryParsedQuery {
+ return &CreateRequestBulkRetryRequestQueryParsedQuery{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryParsedQueryFromCreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery(value *CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery) *CreateRequestBulkRetryRequestQueryParsedQuery {
+ return &CreateRequestBulkRetryRequestQueryParsedQuery{typeName: "createRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery", CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryParsedQuery) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery := new(CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery"
+ c.CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery = valueCreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryParsedQuery) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "createRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryParsedQueryVisitor interface {
+ VisitString(string) error
+ VisitCreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery(*CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryParsedQuery) Accept(v CreateRequestBulkRetryRequestQueryParsedQueryVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "createRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery":
+ return v.VisitCreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery(c.CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_parsed_query_create_request_bulk_retry_request_query_parsed_query.go b/create_request_bulk_retry_request_query_parsed_query_create_request_bulk_retry_request_query_parsed_query.go
new file mode 100644
index 0000000..ba66771
--- /dev/null
+++ b/create_request_bulk_retry_request_query_parsed_query_create_request_bulk_retry_request_query_parsed_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryParsedQueryCreateRequestBulkRetryRequestQueryParsedQuery struct {
+}
diff --git a/create_request_bulk_retry_request_query_rejection_cause.go b/create_request_bulk_retry_request_query_rejection_cause.go
new file mode 100644
index 0000000..5c9b782
--- /dev/null
+++ b/create_request_bulk_retry_request_query_rejection_cause.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by rejection cause
+type CreateRequestBulkRetryRequestQueryRejectionCause struct {
+ typeName string
+ RequestRejectionCause RequestRejectionCause
+ CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause *CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause
+ RequestRejectionCauseList []RequestRejectionCause
+}
+
+func NewCreateRequestBulkRetryRequestQueryRejectionCauseFromRequestRejectionCause(value RequestRejectionCause) *CreateRequestBulkRetryRequestQueryRejectionCause {
+ return &CreateRequestBulkRetryRequestQueryRejectionCause{typeName: "requestRejectionCause", RequestRejectionCause: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryRejectionCauseFromCreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause(value *CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause) *CreateRequestBulkRetryRequestQueryRejectionCause {
+ return &CreateRequestBulkRetryRequestQueryRejectionCause{typeName: "createRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause", CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause: value}
+}
+
+func NewCreateRequestBulkRetryRequestQueryRejectionCauseFromRequestRejectionCauseList(value []RequestRejectionCause) *CreateRequestBulkRetryRequestQueryRejectionCause {
+ return &CreateRequestBulkRetryRequestQueryRejectionCause{typeName: "requestRejectionCauseList", RequestRejectionCauseList: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQueryRejectionCause) UnmarshalJSON(data []byte) error {
+ var valueRequestRejectionCause RequestRejectionCause
+ if err := json.Unmarshal(data, &valueRequestRejectionCause); err == nil {
+ c.typeName = "requestRejectionCause"
+ c.RequestRejectionCause = valueRequestRejectionCause
+ return nil
+ }
+ valueCreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause := new(CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause)
+ if err := json.Unmarshal(data, &valueCreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause); err == nil {
+ c.typeName = "createRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause"
+ c.CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause = valueCreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause
+ return nil
+ }
+ var valueRequestRejectionCauseList []RequestRejectionCause
+ if err := json.Unmarshal(data, &valueRequestRejectionCauseList); err == nil {
+ c.typeName = "requestRejectionCauseList"
+ c.RequestRejectionCauseList = valueRequestRejectionCauseList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQueryRejectionCause) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "requestRejectionCause":
+ return json.Marshal(c.RequestRejectionCause)
+ case "createRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause":
+ return json.Marshal(c.CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause)
+ case "requestRejectionCauseList":
+ return json.Marshal(c.RequestRejectionCauseList)
+ }
+}
+
+type CreateRequestBulkRetryRequestQueryRejectionCauseVisitor interface {
+ VisitRequestRejectionCause(RequestRejectionCause) error
+ VisitCreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause(*CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause) error
+ VisitRequestRejectionCauseList([]RequestRejectionCause) error
+}
+
+func (c *CreateRequestBulkRetryRequestQueryRejectionCause) Accept(v CreateRequestBulkRetryRequestQueryRejectionCauseVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "requestRejectionCause":
+ return v.VisitRequestRejectionCause(c.RequestRejectionCause)
+ case "createRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause":
+ return v.VisitCreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause(c.CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause)
+ case "requestRejectionCauseList":
+ return v.VisitRequestRejectionCauseList(c.RequestRejectionCauseList)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_rejection_cause_create_request_bulk_retry_request_query_rejection_cause.go b/create_request_bulk_retry_request_query_rejection_cause_create_request_bulk_retry_request_query_rejection_cause.go
new file mode 100644
index 0000000..ca0c44a
--- /dev/null
+++ b/create_request_bulk_retry_request_query_rejection_cause_create_request_bulk_retry_request_query_rejection_cause.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRequestBulkRetryRequestQueryRejectionCauseCreateRequestBulkRetryRequestQueryRejectionCause struct {
+ Gt *RequestRejectionCause `json:"gt,omitempty"`
+ Gte *RequestRejectionCause `json:"gte,omitempty"`
+ Le *RequestRejectionCause `json:"le,omitempty"`
+ Lte *RequestRejectionCause `json:"lte,omitempty"`
+ Any *bool `json:"any,omitempty"`
+ Contains *RequestRejectionCause `json:"contains,omitempty"`
+}
diff --git a/create_request_bulk_retry_request_query_source_id.go b/create_request_bulk_retry_request_query_source_id.go
new file mode 100644
index 0000000..3c39da2
--- /dev/null
+++ b/create_request_bulk_retry_request_query_source_id.go
@@ -0,0 +1,67 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Filter by source IDs
+type CreateRequestBulkRetryRequestQuerySourceId struct {
+ typeName string
+ // Source ID `<= 255 characters`
+ String string
+ StringList []string
+}
+
+func NewCreateRequestBulkRetryRequestQuerySourceIdFromString(value string) *CreateRequestBulkRetryRequestQuerySourceId {
+ return &CreateRequestBulkRetryRequestQuerySourceId{typeName: "string", String: value}
+}
+
+func NewCreateRequestBulkRetryRequestQuerySourceIdFromStringList(value []string) *CreateRequestBulkRetryRequestQuerySourceId {
+ return &CreateRequestBulkRetryRequestQuerySourceId{typeName: "stringList", StringList: value}
+}
+
+func (c *CreateRequestBulkRetryRequestQuerySourceId) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ c.typeName = "stringList"
+ c.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateRequestBulkRetryRequestQuerySourceId) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "stringList":
+ return json.Marshal(c.StringList)
+ }
+}
+
+type CreateRequestBulkRetryRequestQuerySourceIdVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (c *CreateRequestBulkRetryRequestQuerySourceId) Accept(v CreateRequestBulkRetryRequestQuerySourceIdVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "stringList":
+ return v.VisitStringList(c.StringList)
+ }
+}
diff --git a/create_request_bulk_retry_request_query_status.go b/create_request_bulk_retry_request_query_status.go
new file mode 100644
index 0000000..4e722ee
--- /dev/null
+++ b/create_request_bulk_retry_request_query_status.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type CreateRequestBulkRetryRequestQueryStatus uint8
+
+const (
+ CreateRequestBulkRetryRequestQueryStatusAccepted CreateRequestBulkRetryRequestQueryStatus = iota + 1
+ CreateRequestBulkRetryRequestQueryStatusRejected
+)
+
+func (c CreateRequestBulkRetryRequestQueryStatus) String() string {
+ switch c {
+ default:
+ return strconv.Itoa(int(c))
+ case CreateRequestBulkRetryRequestQueryStatusAccepted:
+ return "accepted"
+ case CreateRequestBulkRetryRequestQueryStatusRejected:
+ return "rejected"
+ }
+}
+
+func (c CreateRequestBulkRetryRequestQueryStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", c.String())), nil
+}
+
+func (c *CreateRequestBulkRetryRequestQueryStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "accepted":
+ value := CreateRequestBulkRetryRequestQueryStatusAccepted
+ *c = value
+ case "rejected":
+ value := CreateRequestBulkRetryRequestQueryStatusRejected
+ *c = value
+ }
+ return nil
+}
diff --git a/create_ruleset_request.go b/create_ruleset_request.go
new file mode 100644
index 0000000..d269702
--- /dev/null
+++ b/create_ruleset_request.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateRulesetRequest struct {
+ // Name for the ruleset `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+ IsTeamDefault *bool `json:"is_team_default,omitempty"`
+}
diff --git a/create_source_request.go b/create_source_request.go
new file mode 100644
index 0000000..032603a
--- /dev/null
+++ b/create_source_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateSourceRequest struct {
+ // A unique name for the source `<= 155 characters`
+ Name string `json:"name,omitempty"`
+}
diff --git a/create_transformation_request.go b/create_transformation_request.go
new file mode 100644
index 0000000..9d7b435
--- /dev/null
+++ b/create_transformation_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type CreateTransformationRequest struct {
+ // A unique, human-friendly name for the transformation `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // JavaScript code to be executed
+ Code string `json:"code,omitempty"`
+ // Key-value environment variables to be passed to the transformation
+ Env *map[string]*CreateTransformationRequestEnvValue `json:"env,omitempty"`
+}
diff --git a/create_transformation_request_env_value.go b/create_transformation_request_env_value.go
new file mode 100644
index 0000000..71aa8ec
--- /dev/null
+++ b/create_transformation_request_env_value.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type CreateTransformationRequestEnvValue struct {
+ typeName string
+ String string
+ Double float64
+}
+
+func NewCreateTransformationRequestEnvValueFromString(value string) *CreateTransformationRequestEnvValue {
+ return &CreateTransformationRequestEnvValue{typeName: "string", String: value}
+}
+
+func NewCreateTransformationRequestEnvValueFromDouble(value float64) *CreateTransformationRequestEnvValue {
+ return &CreateTransformationRequestEnvValue{typeName: "double", Double: value}
+}
+
+func (c *CreateTransformationRequestEnvValue) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ c.typeName = "string"
+ c.String = valueString
+ return nil
+ }
+ var valueDouble float64
+ if err := json.Unmarshal(data, &valueDouble); err == nil {
+ c.typeName = "double"
+ c.Double = valueDouble
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, c)
+}
+
+func (c CreateTransformationRequestEnvValue) MarshalJSON() ([]byte, error) {
+ switch c.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return json.Marshal(c.String)
+ case "double":
+ return json.Marshal(c.Double)
+ }
+}
+
+type CreateTransformationRequestEnvValueVisitor interface {
+ VisitString(string) error
+ VisitDouble(float64) error
+}
+
+func (c *CreateTransformationRequestEnvValue) Accept(v CreateTransformationRequestEnvValueVisitor) error {
+ switch c.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", c.typeName, c)
+ case "string":
+ return v.VisitString(c.String)
+ case "double":
+ return v.VisitDouble(c.Double)
+ }
+}
diff --git a/delay_rule.go b/delay_rule.go
new file mode 100644
index 0000000..7a5ce00
--- /dev/null
+++ b/delay_rule.go
@@ -0,0 +1,40 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+type DelayRule struct {
+ // Delay to introduce in MS
+ Delay int `json:"delay,omitempty"`
+ type_ string
+}
+
+func (d *DelayRule) Type() string {
+ return d.type_
+}
+
+func (d *DelayRule) UnmarshalJSON(data []byte) error {
+ type unmarshaler DelayRule
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *d = DelayRule(value)
+ d.type_ = "delay"
+ return nil
+}
+
+func (d *DelayRule) MarshalJSON() ([]byte, error) {
+ type embed DelayRule
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*d),
+ Type: "delay",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/deleted_bookmark_response.go b/deleted_bookmark_response.go
new file mode 100644
index 0000000..7ea2e79
--- /dev/null
+++ b/deleted_bookmark_response.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type DeletedBookmarkResponse struct {
+ // Bookmark ID
+ Id string `json:"id,omitempty"`
+}
diff --git a/deleted_integration.go b/deleted_integration.go
new file mode 100644
index 0000000..2a4c70e
--- /dev/null
+++ b/deleted_integration.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type DeletedIntegration struct {
+ Id string `json:"id,omitempty"`
+}
diff --git a/deleted_issue_trigger_response.go b/deleted_issue_trigger_response.go
new file mode 100644
index 0000000..9562ea4
--- /dev/null
+++ b/deleted_issue_trigger_response.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type DeletedIssueTriggerResponse struct {
+ Id string `json:"id,omitempty"`
+}
diff --git a/delivery_issue.go b/delivery_issue.go
new file mode 100644
index 0000000..06653fd
--- /dev/null
+++ b/delivery_issue.go
@@ -0,0 +1,62 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+// Delivery issue
+type DeliveryIssue struct {
+ // Issue ID
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ Status IssueStatus `json:"status,omitempty"`
+ // ISO timestamp for when the issue was last opened
+ OpenedAt string `json:"opened_at,omitempty"`
+ // ISO timestamp for when the issue was first opened
+ FirstSeenAt string `json:"first_seen_at,omitempty"`
+ // ISO timestamp for when the issue last occured
+ LastSeenAt string `json:"last_seen_at,omitempty"`
+ // ID of the team member who last updated the issue status
+ LastUpdatedBy *string `json:"last_updated_by,omitempty"`
+ // ISO timestamp for when the issue was dismissed
+ DismissedAt *string `json:"dismissed_at,omitempty"`
+ AutoResolvedAt *string `json:"auto_resolved_at,omitempty"`
+ MergedWith *string `json:"merged_with,omitempty"`
+ // ISO timestamp for when the issue was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // ISO timestamp for when the issue was created
+ CreatedAt string `json:"created_at,omitempty"`
+ AggregationKeys *DeliveryIssueAggregationKeys `json:"aggregation_keys,omitempty"`
+ Reference *DeliveryIssueReference `json:"reference,omitempty"`
+ type_ string
+}
+
+func (d *DeliveryIssue) Type() string {
+ return d.type_
+}
+
+func (d *DeliveryIssue) UnmarshalJSON(data []byte) error {
+ type unmarshaler DeliveryIssue
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *d = DeliveryIssue(value)
+ d.type_ = "delivery"
+ return nil
+}
+
+func (d *DeliveryIssue) MarshalJSON() ([]byte, error) {
+ type embed DeliveryIssue
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*d),
+ Type: "delivery",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/delivery_issue_aggregation_keys.go b/delivery_issue_aggregation_keys.go
new file mode 100644
index 0000000..c8b5331
--- /dev/null
+++ b/delivery_issue_aggregation_keys.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Keys used as the aggregation keys a 'delivery' type issue
+type DeliveryIssueAggregationKeys struct {
+ WebhookId []string `json:"webhook_id,omitempty"`
+ ResponseStatus []float64 `json:"response_status,omitempty"`
+ ErrorCode []AttemptErrorCodes `json:"error_code,omitempty"`
+}
diff --git a/delivery_issue_data.go b/delivery_issue_data.go
new file mode 100644
index 0000000..fed238b
--- /dev/null
+++ b/delivery_issue_data.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Delivery issue data
+type DeliveryIssueData struct {
+ TriggerEvent *Event `json:"trigger_event,omitempty"`
+ TriggerAttempt *EventAttempt `json:"trigger_attempt,omitempty"`
+}
diff --git a/delivery_issue_reference.go b/delivery_issue_reference.go
new file mode 100644
index 0000000..8d64399
--- /dev/null
+++ b/delivery_issue_reference.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Reference to the event and attempt an issue is being created for.
+type DeliveryIssueReference struct {
+ EventId string `json:"event_id,omitempty"`
+ AttemptId string `json:"attempt_id,omitempty"`
+}
diff --git a/delivery_issue_with_data.go b/delivery_issue_with_data.go
new file mode 100644
index 0000000..315e2b5
--- /dev/null
+++ b/delivery_issue_with_data.go
@@ -0,0 +1,63 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+// Delivery issue
+type DeliveryIssueWithData struct {
+ // Issue ID
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ Status IssueStatus `json:"status,omitempty"`
+ // ISO timestamp for when the issue was last opened
+ OpenedAt string `json:"opened_at,omitempty"`
+ // ISO timestamp for when the issue was first opened
+ FirstSeenAt string `json:"first_seen_at,omitempty"`
+ // ISO timestamp for when the issue last occured
+ LastSeenAt string `json:"last_seen_at,omitempty"`
+ // ID of the team member who last updated the issue status
+ LastUpdatedBy *string `json:"last_updated_by,omitempty"`
+ // ISO timestamp for when the issue was dismissed
+ DismissedAt *string `json:"dismissed_at,omitempty"`
+ AutoResolvedAt *string `json:"auto_resolved_at,omitempty"`
+ MergedWith *string `json:"merged_with,omitempty"`
+ // ISO timestamp for when the issue was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // ISO timestamp for when the issue was created
+ CreatedAt string `json:"created_at,omitempty"`
+ AggregationKeys *DeliveryIssueAggregationKeys `json:"aggregation_keys,omitempty"`
+ Reference *DeliveryIssueReference `json:"reference,omitempty"`
+ Data *DeliveryIssueData `json:"data,omitempty"`
+ type_ string
+}
+
+func (d *DeliveryIssueWithData) Type() string {
+ return d.type_
+}
+
+func (d *DeliveryIssueWithData) UnmarshalJSON(data []byte) error {
+ type unmarshaler DeliveryIssueWithData
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *d = DeliveryIssueWithData(value)
+ d.type_ = "delivery"
+ return nil
+}
+
+func (d *DeliveryIssueWithData) MarshalJSON() ([]byte, error) {
+ type embed DeliveryIssueWithData
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*d),
+ Type: "delivery",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/destination.go b/destination.go
new file mode 100644
index 0000000..7a08625
--- /dev/null
+++ b/destination.go
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Associated [Destination](#destination-object) object
+type Destination struct {
+ // ID of the destination
+ Id string `json:"id,omitempty"`
+ // A unique, human-friendly name for the destination
+ Name string `json:"name,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+ // HTTP endpoint of the destination
+ Url *string `json:"url,omitempty"`
+ // Path for the CLI destination
+ CliPath *string `json:"cli_path,omitempty"`
+ // Limit event attempts to receive per period. Max value is workspace plan's max attempts thoughput.
+ RateLimit *int `json:"rate_limit,omitempty"`
+ RateLimitPeriod *DestinationRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ // Date the destination was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ // Date the destination was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the destination was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/destination_paginated_result.go b/destination_paginated_result.go
new file mode 100644
index 0000000..de7828b
--- /dev/null
+++ b/destination_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type DestinationPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Destination `json:"models,omitempty"`
+}
diff --git a/destination_rate_limit_period.go b/destination_rate_limit_period.go
new file mode 100644
index 0000000..91ab267
--- /dev/null
+++ b/destination_rate_limit_period.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Period to rate limit attempts
+type DestinationRateLimitPeriod uint8
+
+const (
+ DestinationRateLimitPeriodSecond DestinationRateLimitPeriod = iota + 1
+ DestinationRateLimitPeriodMinute
+ DestinationRateLimitPeriodHour
+)
+
+func (d DestinationRateLimitPeriod) String() string {
+ switch d {
+ default:
+ return strconv.Itoa(int(d))
+ case DestinationRateLimitPeriodSecond:
+ return "second"
+ case DestinationRateLimitPeriodMinute:
+ return "minute"
+ case DestinationRateLimitPeriodHour:
+ return "hour"
+ }
+}
+
+func (d DestinationRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", d.String())), nil
+}
+
+func (d *DestinationRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "second":
+ value := DestinationRateLimitPeriodSecond
+ *d = value
+ case "minute":
+ value := DestinationRateLimitPeriodMinute
+ *d = value
+ case "hour":
+ value := DestinationRateLimitPeriodHour
+ *d = value
+ }
+ return nil
+}
diff --git a/destinations_client.go b/destinations_client.go
new file mode 100644
index 0000000..9ad2713
--- /dev/null
+++ b/destinations_client.go
@@ -0,0 +1,421 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type DestinationsClient interface {
+ GetDestinations(ctx context.Context, request *GetDestinationsRequest) (*DestinationPaginatedResult, error)
+ CreateDestination(ctx context.Context, request *CreateDestinationRequest) (*Destination, error)
+ UpsertDestination(ctx context.Context, request *UpsertDestinationRequest) (*Destination, error)
+ GetDestination(ctx context.Context, id string) (*Destination, error)
+ UpdateDestination(ctx context.Context, id string, request *UpdateDestinationRequest) (*Destination, error)
+ ArchiveDestination(ctx context.Context, id string) (*Destination, error)
+ UnarchiveDestination(ctx context.Context, id string) (*Destination, error)
+}
+
+func NewDestinationsClient(opts ...core.ClientOption) DestinationsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &destinationsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type destinationsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (d *destinationsClient) GetDestinations(ctx context.Context, request *GetDestinationsRequest) (*DestinationPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := baseURL + "/" + "destinations"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var archivedDefaultValue *bool
+ if request.Archived != archivedDefaultValue {
+ queryParams.Add("archived", fmt.Sprintf("%v", *request.Archived))
+ }
+ var archivedAtDefaultValue *string
+ if request.ArchivedAt != archivedAtDefaultValue {
+ queryParams.Add("archived_at", fmt.Sprintf("%v", *request.ArchivedAt))
+ }
+ var urlDefaultValue *string
+ if request.Url != urlDefaultValue {
+ queryParams.Add("url", fmt.Sprintf("%v", *request.Url))
+ }
+ var cliPathDefaultValue *string
+ if request.CliPath != cliPathDefaultValue {
+ queryParams.Add("cli_path", fmt.Sprintf("%v", *request.CliPath))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetDestinationsRequestDirGetDestinationsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(DestinationPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (d *destinationsClient) CreateDestination(ctx context.Context, request *CreateDestinationRequest) (*Destination, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := baseURL + "/" + "destinations"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Destination)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (d *destinationsClient) UpsertDestination(ctx context.Context, request *UpsertDestinationRequest) (*Destination, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := baseURL + "/" + "destinations"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Destination)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (d *destinationsClient) GetDestination(ctx context.Context, id string) (*Destination, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"destinations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Destination)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (d *destinationsClient) UpdateDestination(ctx context.Context, id string, request *UpdateDestinationRequest) (*Destination, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"destinations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Destination)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (d *destinationsClient) ArchiveDestination(ctx context.Context, id string) (*Destination, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"destinations/%v/archive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Destination)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (d *destinationsClient) UnarchiveDestination(ctx context.Context, id string) (*Destination, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if d.baseURL != "" {
+ baseURL = d.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"destinations/%v/unarchive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Destination)
+ if err := core.DoRequest(
+ ctx,
+ d.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ d.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/detached_integration_from_source.go b/detached_integration_from_source.go
new file mode 100644
index 0000000..5a94ffd
--- /dev/null
+++ b/detached_integration_from_source.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type DetachedIntegrationFromSource struct {
+}
diff --git a/event.go b/event.go
new file mode 100644
index 0000000..05a4871
--- /dev/null
+++ b/event.go
@@ -0,0 +1,40 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type Event struct {
+ // ID of the event
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // ID of the associated connection
+ WebhookId string `json:"webhook_id,omitempty"`
+ // ID of the associated source
+ SourceId string `json:"source_id,omitempty"`
+ // ID of the associated destination
+ DestinationId string `json:"destination_id,omitempty"`
+ // ID of the request data
+ EventDataId string `json:"event_data_id,omitempty"`
+ // ID of the request that created the event
+ RequestId string `json:"request_id,omitempty"`
+ // Number of delivery attempts made
+ Attempts int `json:"attempts,omitempty"`
+ Data *EventData `json:"data,omitempty"`
+ // Date of the most recently attempted retry
+ LastAttemptAt *string `json:"last_attempt_at,omitempty"`
+ // Date of the next scheduled retry
+ NextAttemptAt *string `json:"next_attempt_at,omitempty"`
+ // Event status
+ ResponseStatus *int `json:"response_status,omitempty"`
+ Status EventStatus `json:"status,omitempty"`
+ // Date of the latest successful attempt
+ SuccessfulAt *string `json:"successful_at,omitempty"`
+ // ID of the CLI the event is sent to
+ CliId *string `json:"cli_id,omitempty"`
+ // Date the event was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the event was created
+ CreatedAt string `json:"created_at,omitempty"`
+ CreatedAtId *string `json:"created_at_id,omitempty"`
+ LastAttemptAtId *string `json:"last_attempt_at_id,omitempty"`
+}
diff --git a/event_array.go b/event_array.go
new file mode 100644
index 0000000..d0412e3
--- /dev/null
+++ b/event_array.go
@@ -0,0 +1,5 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventArray = []*Event
diff --git a/event_attempt.go b/event_attempt.go
new file mode 100644
index 0000000..9a5ce8b
--- /dev/null
+++ b/event_attempt.go
@@ -0,0 +1,43 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventAttempt struct {
+ // Attempt ID
+ Id string `json:"id,omitempty"`
+ // Team ID
+ TeamId string `json:"team_id,omitempty"`
+ // Event ID
+ EventId string `json:"event_id,omitempty"`
+ // Attempt's HTTP response code
+ ResponseStatus *int `json:"response_status,omitempty"`
+ // Sequential number of attempts (up to and including this one) made for the associated event
+ AttemptNumber *int `json:"attempt_number,omitempty"`
+ Trigger *AttemptTrigger `json:"trigger,omitempty"`
+ ErrorCode *AttemptErrorCodes `json:"error_code,omitempty"`
+ // Response body from the destination
+ Body *EventAttemptBody `json:"body,omitempty"`
+ // URL of the destination where delivery was attempted
+ RequestedUrl *string `json:"requested_url,omitempty"`
+ // ID of associated bulk retry
+ BulkRetryId *string `json:"bulk_retry_id,omitempty"`
+ Status AttemptStatus `json:"status,omitempty"`
+ // Date the attempt was successful
+ SuccessfulAt *string `json:"successful_at,omitempty"`
+ // Date the attempt was delivered
+ DeliveredAt *string `json:"delivered_at,omitempty"`
+ // Date the destination responded to this attempt
+ RespondedAt *string `json:"responded_at,omitempty"`
+ // Time elapsed between attempt initiation and final delivery (in ms)
+ DeliveryLatency *int `json:"delivery_latency,omitempty"`
+ // Time elapsed between attempt initiation and a response from the destination (in ms)
+ ResponseLatency *int `json:"response_latency,omitempty"`
+ // Date the attempt was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the attempt was created
+ CreatedAt string `json:"created_at,omitempty"`
+ State *AttemptState `json:"state,omitempty"`
+ // Date the attempt was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ DestinationId *string `json:"destination_id,omitempty"`
+}
diff --git a/event_attempt_body.go b/event_attempt_body.go
new file mode 100644
index 0000000..bf40f8b
--- /dev/null
+++ b/event_attempt_body.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Response body from the destination
+type EventAttemptBody struct {
+}
diff --git a/event_attempt_paginated_result.go b/event_attempt_paginated_result.go
new file mode 100644
index 0000000..797f21d
--- /dev/null
+++ b/event_attempt_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventAttemptPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*EventAttempt `json:"models,omitempty"`
+}
diff --git a/event_data.go b/event_data.go
new file mode 100644
index 0000000..742581a
--- /dev/null
+++ b/event_data.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventData struct {
+ Path string `json:"path,omitempty"`
+ Query *string `json:"query,omitempty"`
+ ParsedQuery *EventDataParsedQuery `json:"parsed_query,omitempty"`
+ Headers *EventDataHeaders `json:"headers,omitempty"`
+ Body *EventDataBody `json:"body,omitempty"`
+ IsLargePayload *bool `json:"is_large_payload,omitempty"`
+}
diff --git a/event_data_body.go b/event_data_body.go
new file mode 100644
index 0000000..007928c
--- /dev/null
+++ b/event_data_body.go
@@ -0,0 +1,81 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type EventDataBody struct {
+ typeName string
+ String string
+ EventDataBodyEventDataBody *EventDataBodyEventDataBody
+ UnknownList []any
+}
+
+func NewEventDataBodyFromString(value string) *EventDataBody {
+ return &EventDataBody{typeName: "string", String: value}
+}
+
+func NewEventDataBodyFromEventDataBodyEventDataBody(value *EventDataBodyEventDataBody) *EventDataBody {
+ return &EventDataBody{typeName: "eventDataBodyEventDataBody", EventDataBodyEventDataBody: value}
+}
+
+func NewEventDataBodyFromUnknownList(value []any) *EventDataBody {
+ return &EventDataBody{typeName: "unknownList", UnknownList: value}
+}
+
+func (e *EventDataBody) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ e.typeName = "string"
+ e.String = valueString
+ return nil
+ }
+ valueEventDataBodyEventDataBody := new(EventDataBodyEventDataBody)
+ if err := json.Unmarshal(data, &valueEventDataBodyEventDataBody); err == nil {
+ e.typeName = "eventDataBodyEventDataBody"
+ e.EventDataBodyEventDataBody = valueEventDataBodyEventDataBody
+ return nil
+ }
+ var valueUnknownList []any
+ if err := json.Unmarshal(data, &valueUnknownList); err == nil {
+ e.typeName = "unknownList"
+ e.UnknownList = valueUnknownList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, e)
+}
+
+func (e EventDataBody) MarshalJSON() ([]byte, error) {
+ switch e.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", e.typeName, e)
+ case "string":
+ return json.Marshal(e.String)
+ case "eventDataBodyEventDataBody":
+ return json.Marshal(e.EventDataBodyEventDataBody)
+ case "unknownList":
+ return json.Marshal(e.UnknownList)
+ }
+}
+
+type EventDataBodyVisitor interface {
+ VisitString(string) error
+ VisitEventDataBodyEventDataBody(*EventDataBodyEventDataBody) error
+ VisitUnknownList([]any) error
+}
+
+func (e *EventDataBody) Accept(v EventDataBodyVisitor) error {
+ switch e.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", e.typeName, e)
+ case "string":
+ return v.VisitString(e.String)
+ case "eventDataBodyEventDataBody":
+ return v.VisitEventDataBodyEventDataBody(e.EventDataBodyEventDataBody)
+ case "unknownList":
+ return v.VisitUnknownList(e.UnknownList)
+ }
+}
diff --git a/event_data_body_event_data_body.go b/event_data_body_event_data_body.go
new file mode 100644
index 0000000..f88b897
--- /dev/null
+++ b/event_data_body_event_data_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventDataBodyEventDataBody struct {
+}
diff --git a/event_data_headers.go b/event_data_headers.go
new file mode 100644
index 0000000..c8cc4b0
--- /dev/null
+++ b/event_data_headers.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type EventDataHeaders struct {
+ typeName string
+ String string
+ StringStringOptionalMap map[string]*string
+}
+
+func NewEventDataHeadersFromString(value string) *EventDataHeaders {
+ return &EventDataHeaders{typeName: "string", String: value}
+}
+
+func NewEventDataHeadersFromStringStringOptionalMap(value map[string]*string) *EventDataHeaders {
+ return &EventDataHeaders{typeName: "stringStringOptionalMap", StringStringOptionalMap: value}
+}
+
+func (e *EventDataHeaders) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ e.typeName = "string"
+ e.String = valueString
+ return nil
+ }
+ var valueStringStringOptionalMap map[string]*string
+ if err := json.Unmarshal(data, &valueStringStringOptionalMap); err == nil {
+ e.typeName = "stringStringOptionalMap"
+ e.StringStringOptionalMap = valueStringStringOptionalMap
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, e)
+}
+
+func (e EventDataHeaders) MarshalJSON() ([]byte, error) {
+ switch e.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", e.typeName, e)
+ case "string":
+ return json.Marshal(e.String)
+ case "stringStringOptionalMap":
+ return json.Marshal(e.StringStringOptionalMap)
+ }
+}
+
+type EventDataHeadersVisitor interface {
+ VisitString(string) error
+ VisitStringStringOptionalMap(map[string]*string) error
+}
+
+func (e *EventDataHeaders) Accept(v EventDataHeadersVisitor) error {
+ switch e.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", e.typeName, e)
+ case "string":
+ return v.VisitString(e.String)
+ case "stringStringOptionalMap":
+ return v.VisitStringStringOptionalMap(e.StringStringOptionalMap)
+ }
+}
diff --git a/event_data_parsed_query.go b/event_data_parsed_query.go
new file mode 100644
index 0000000..50a3082
--- /dev/null
+++ b/event_data_parsed_query.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type EventDataParsedQuery struct {
+ typeName string
+ StringOptional *string
+ EventDataParsedQueryEventDataParsedQuery *EventDataParsedQueryEventDataParsedQuery
+}
+
+func NewEventDataParsedQueryFromStringOptional(value *string) *EventDataParsedQuery {
+ return &EventDataParsedQuery{typeName: "stringOptional", StringOptional: value}
+}
+
+func NewEventDataParsedQueryFromEventDataParsedQueryEventDataParsedQuery(value *EventDataParsedQueryEventDataParsedQuery) *EventDataParsedQuery {
+ return &EventDataParsedQuery{typeName: "eventDataParsedQueryEventDataParsedQuery", EventDataParsedQueryEventDataParsedQuery: value}
+}
+
+func (e *EventDataParsedQuery) UnmarshalJSON(data []byte) error {
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ e.typeName = "stringOptional"
+ e.StringOptional = valueStringOptional
+ return nil
+ }
+ valueEventDataParsedQueryEventDataParsedQuery := new(EventDataParsedQueryEventDataParsedQuery)
+ if err := json.Unmarshal(data, &valueEventDataParsedQueryEventDataParsedQuery); err == nil {
+ e.typeName = "eventDataParsedQueryEventDataParsedQuery"
+ e.EventDataParsedQueryEventDataParsedQuery = valueEventDataParsedQueryEventDataParsedQuery
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, e)
+}
+
+func (e EventDataParsedQuery) MarshalJSON() ([]byte, error) {
+ switch e.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", e.typeName, e)
+ case "stringOptional":
+ return json.Marshal(e.StringOptional)
+ case "eventDataParsedQueryEventDataParsedQuery":
+ return json.Marshal(e.EventDataParsedQueryEventDataParsedQuery)
+ }
+}
+
+type EventDataParsedQueryVisitor interface {
+ VisitStringOptional(*string) error
+ VisitEventDataParsedQueryEventDataParsedQuery(*EventDataParsedQueryEventDataParsedQuery) error
+}
+
+func (e *EventDataParsedQuery) Accept(v EventDataParsedQueryVisitor) error {
+ switch e.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", e.typeName, e)
+ case "stringOptional":
+ return v.VisitStringOptional(e.StringOptional)
+ case "eventDataParsedQueryEventDataParsedQuery":
+ return v.VisitEventDataParsedQueryEventDataParsedQuery(e.EventDataParsedQueryEventDataParsedQuery)
+ }
+}
diff --git a/event_data_parsed_query_event_data_parsed_query.go b/event_data_parsed_query_event_data_parsed_query.go
new file mode 100644
index 0000000..8d09167
--- /dev/null
+++ b/event_data_parsed_query_event_data_parsed_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventDataParsedQueryEventDataParsedQuery struct {
+}
diff --git a/event_paginated_result.go b/event_paginated_result.go
new file mode 100644
index 0000000..f616dd9
--- /dev/null
+++ b/event_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type EventPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Event `json:"models,omitempty"`
+}
diff --git a/event_status.go b/event_status.go
new file mode 100644
index 0000000..cfe1f08
--- /dev/null
+++ b/event_status.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type EventStatus uint8
+
+const (
+ EventStatusScheduled EventStatus = iota + 1
+ EventStatusQueued
+ EventStatusHold
+ EventStatusSuccessful
+ EventStatusFailed
+)
+
+func (e EventStatus) String() string {
+ switch e {
+ default:
+ return strconv.Itoa(int(e))
+ case EventStatusScheduled:
+ return "SCHEDULED"
+ case EventStatusQueued:
+ return "QUEUED"
+ case EventStatusHold:
+ return "HOLD"
+ case EventStatusSuccessful:
+ return "SUCCESSFUL"
+ case EventStatusFailed:
+ return "FAILED"
+ }
+}
+
+func (e EventStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", e.String())), nil
+}
+
+func (e *EventStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "SCHEDULED":
+ value := EventStatusScheduled
+ *e = value
+ case "QUEUED":
+ value := EventStatusQueued
+ *e = value
+ case "HOLD":
+ value := EventStatusHold
+ *e = value
+ case "SUCCESSFUL":
+ value := EventStatusSuccessful
+ *e = value
+ case "FAILED":
+ value := EventStatusFailed
+ *e = value
+ }
+ return nil
+}
diff --git a/events_client.go b/events_client.go
new file mode 100644
index 0000000..90f5f2c
--- /dev/null
+++ b/events_client.go
@@ -0,0 +1,367 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type EventsClient interface {
+ GetEvents(ctx context.Context, request *GetEventsRequest) (*EventPaginatedResult, error)
+ GetEvent(ctx context.Context, id string) (*Event, error)
+ GetRequestRawBody(ctx context.Context, id string) (*RawBody, error)
+ RetryEvent(ctx context.Context, id string) (*RetriedEvent, error)
+ MuteEvent(ctx context.Context, id string) (*Event, error)
+}
+
+func NewEventsClient(opts ...core.ClientOption) EventsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &eventsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type eventsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (e *eventsClient) GetEvents(ctx context.Context, request *GetEventsRequest) (*EventPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if e.baseURL != "" {
+ baseURL = e.baseURL
+ }
+ endpointURL := baseURL + "/" + "events"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var statusDefaultValue *EventStatus
+ if request.Status != statusDefaultValue {
+ queryParams.Add("status", fmt.Sprintf("%v", *request.Status))
+ }
+ var issueIdDefaultValue *string
+ if request.IssueId != issueIdDefaultValue {
+ queryParams.Add("issue_id", fmt.Sprintf("%v", *request.IssueId))
+ }
+ var webhookIdDefaultValue *string
+ if request.WebhookId != webhookIdDefaultValue {
+ queryParams.Add("webhook_id", fmt.Sprintf("%v", *request.WebhookId))
+ }
+ var destinationIdDefaultValue *string
+ if request.DestinationId != destinationIdDefaultValue {
+ queryParams.Add("destination_id", fmt.Sprintf("%v", *request.DestinationId))
+ }
+ var sourceIdDefaultValue *string
+ if request.SourceId != sourceIdDefaultValue {
+ queryParams.Add("source_id", fmt.Sprintf("%v", *request.SourceId))
+ }
+ var attemptsDefaultValue *int
+ if request.Attempts != attemptsDefaultValue {
+ queryParams.Add("attempts", fmt.Sprintf("%v", *request.Attempts))
+ }
+ var responseStatusDefaultValue *int
+ if request.ResponseStatus != responseStatusDefaultValue {
+ queryParams.Add("response_status", fmt.Sprintf("%v", *request.ResponseStatus))
+ }
+ var successfulAtDefaultValue *string
+ if request.SuccessfulAt != successfulAtDefaultValue {
+ queryParams.Add("successful_at", fmt.Sprintf("%v", *request.SuccessfulAt))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var errorCodeDefaultValue *string
+ if request.ErrorCode != errorCodeDefaultValue {
+ queryParams.Add("error_code", fmt.Sprintf("%v", *request.ErrorCode))
+ }
+ var cliIdDefaultValue *string
+ if request.CliId != cliIdDefaultValue {
+ queryParams.Add("cli_id", fmt.Sprintf("%v", *request.CliId))
+ }
+ var cliUserIdDefaultValue *string
+ if request.CliUserId != cliUserIdDefaultValue {
+ queryParams.Add("cli_user_id", fmt.Sprintf("%v", *request.CliUserId))
+ }
+ var lastAttemptAtDefaultValue *string
+ if request.LastAttemptAt != lastAttemptAtDefaultValue {
+ queryParams.Add("last_attempt_at", fmt.Sprintf("%v", *request.LastAttemptAt))
+ }
+ var eventDataIdDefaultValue *string
+ if request.EventDataId != eventDataIdDefaultValue {
+ queryParams.Add("event_data_id", fmt.Sprintf("%v", *request.EventDataId))
+ }
+ var headersDefaultValue *string
+ if request.Headers != headersDefaultValue {
+ queryParams.Add("headers", fmt.Sprintf("%v", *request.Headers))
+ }
+ var bodyDefaultValue *string
+ if request.Body != bodyDefaultValue {
+ queryParams.Add("body", fmt.Sprintf("%v", *request.Body))
+ }
+ var parsedQueryDefaultValue *string
+ if request.ParsedQuery != parsedQueryDefaultValue {
+ queryParams.Add("parsed_query", fmt.Sprintf("%v", *request.ParsedQuery))
+ }
+ var bulkRetryIdDefaultValue *string
+ if request.BulkRetryId != bulkRetryIdDefaultValue {
+ queryParams.Add("bulk_retry_id", fmt.Sprintf("%v", *request.BulkRetryId))
+ }
+ var pathDefaultValue *string
+ if request.Path != pathDefaultValue {
+ queryParams.Add("path", fmt.Sprintf("%v", *request.Path))
+ }
+ var includeDefaultValue *string
+ if request.Include != includeDefaultValue {
+ queryParams.Add("include", fmt.Sprintf("%v", *request.Include))
+ }
+ var orderByDefaultValue *GetEventsRequestOrderByGetEventsRequestOrderBy
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetEventsRequestDirGetEventsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(EventPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ e.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ e.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (e *eventsClient) GetEvent(ctx context.Context, id string) (*Event, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if e.baseURL != "" {
+ baseURL = e.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"events/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Event)
+ if err := core.DoRequest(
+ ctx,
+ e.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ e.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (e *eventsClient) GetRequestRawBody(ctx context.Context, id string) (*RawBody, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if e.baseURL != "" {
+ baseURL = e.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"events/%v/raw_body", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(RawBody)
+ if err := core.DoRequest(
+ ctx,
+ e.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ e.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (e *eventsClient) RetryEvent(ctx context.Context, id string) (*RetriedEvent, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if e.baseURL != "" {
+ baseURL = e.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"events/%v/retry", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(RetriedEvent)
+ if err := core.DoRequest(
+ ctx,
+ e.httpClient,
+ endpointURL,
+ http.MethodPost,
+ nil,
+ &response,
+ e.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (e *eventsClient) MuteEvent(ctx context.Context, id string) (*Event, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if e.baseURL != "" {
+ baseURL = e.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"events/%v/mute", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Event)
+ if err := core.DoRequest(
+ ctx,
+ e.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ e.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/filter_rule.go b/filter_rule.go
new file mode 100644
index 0000000..76f9c75
--- /dev/null
+++ b/filter_rule.go
@@ -0,0 +1,42 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+type FilterRule struct {
+ Headers *ConnectionFilterProperty `json:"headers,omitempty"`
+ Body *ConnectionFilterProperty `json:"body,omitempty"`
+ Query *ConnectionFilterProperty `json:"query,omitempty"`
+ Path *ConnectionFilterProperty `json:"path,omitempty"`
+ type_ string
+}
+
+func (f *FilterRule) Type() string {
+ return f.type_
+}
+
+func (f *FilterRule) UnmarshalJSON(data []byte) error {
+ type unmarshaler FilterRule
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *f = FilterRule(value)
+ f.type_ = "filter"
+ return nil
+}
+
+func (f *FilterRule) MarshalJSON() ([]byte, error) {
+ type embed FilterRule
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*f),
+ Type: "filter",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/filtered_meta.go b/filtered_meta.go
new file mode 100644
index 0000000..7a822df
--- /dev/null
+++ b/filtered_meta.go
@@ -0,0 +1,59 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type FilteredMeta uint8
+
+const (
+ FilteredMetaBody FilteredMeta = iota + 1
+ FilteredMetaHeaders
+ FilteredMetaPath
+ FilteredMetaQuery
+)
+
+func (f FilteredMeta) String() string {
+ switch f {
+ default:
+ return strconv.Itoa(int(f))
+ case FilteredMetaBody:
+ return "body"
+ case FilteredMetaHeaders:
+ return "headers"
+ case FilteredMetaPath:
+ return "path"
+ case FilteredMetaQuery:
+ return "query"
+ }
+}
+
+func (f FilteredMeta) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", f.String())), nil
+}
+
+func (f *FilteredMeta) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "body":
+ value := FilteredMetaBody
+ *f = value
+ case "headers":
+ value := FilteredMetaHeaders
+ *f = value
+ case "path":
+ value := FilteredMetaPath
+ *f = value
+ case "query":
+ value := FilteredMetaQuery
+ *f = value
+ }
+ return nil
+}
diff --git a/get_attempts_request.go b/get_attempts_request.go
new file mode 100644
index 0000000..932591d
--- /dev/null
+++ b/get_attempts_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetAttemptsRequest struct {
+ EventId *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetAttemptsRequestDirGetAttemptsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_attempts_request_dir_get_attempts_request_dir.go b/get_attempts_request_dir_get_attempts_request_dir.go
new file mode 100644
index 0000000..90aeb83
--- /dev/null
+++ b/get_attempts_request_dir_get_attempts_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetAttemptsRequestDirGetAttemptsRequestDir uint8
+
+const (
+ GetAttemptsRequestDirGetAttemptsRequestDirAsc GetAttemptsRequestDirGetAttemptsRequestDir = iota + 1
+ GetAttemptsRequestDirGetAttemptsRequestDirDesc
+)
+
+func (g GetAttemptsRequestDirGetAttemptsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetAttemptsRequestDirGetAttemptsRequestDirAsc:
+ return "asc"
+ case GetAttemptsRequestDirGetAttemptsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetAttemptsRequestDirGetAttemptsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetAttemptsRequestDirGetAttemptsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetAttemptsRequestDirGetAttemptsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetAttemptsRequestDirGetAttemptsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_bookmarks_request.go b/get_bookmarks_request.go
new file mode 100644
index 0000000..ba0040e
--- /dev/null
+++ b/get_bookmarks_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetBookmarksRequest struct {
+ Id *string `json:"-"`
+ Name *string `json:"-"`
+ WebhookId *string `json:"-"`
+ EventDataId *string `json:"-"`
+ Label *string `json:"-"`
+ LastUsedAt *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetBookmarksRequestDirGetBookmarksRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_bookmarks_request_dir_get_bookmarks_request_dir.go b/get_bookmarks_request_dir_get_bookmarks_request_dir.go
new file mode 100644
index 0000000..04e2d4c
--- /dev/null
+++ b/get_bookmarks_request_dir_get_bookmarks_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetBookmarksRequestDirGetBookmarksRequestDir uint8
+
+const (
+ GetBookmarksRequestDirGetBookmarksRequestDirAsc GetBookmarksRequestDirGetBookmarksRequestDir = iota + 1
+ GetBookmarksRequestDirGetBookmarksRequestDirDesc
+)
+
+func (g GetBookmarksRequestDirGetBookmarksRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetBookmarksRequestDirGetBookmarksRequestDirAsc:
+ return "asc"
+ case GetBookmarksRequestDirGetBookmarksRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetBookmarksRequestDirGetBookmarksRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetBookmarksRequestDirGetBookmarksRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetBookmarksRequestDirGetBookmarksRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetBookmarksRequestDirGetBookmarksRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_connections_request.go b/get_connections_request.go
new file mode 100644
index 0000000..3ba4ea1
--- /dev/null
+++ b/get_connections_request.go
@@ -0,0 +1,19 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetConnectionsRequest struct {
+ Id *string `json:"-"`
+ Name *string `json:"-"`
+ DestinationId *string `json:"-"`
+ SourceId *string `json:"-"`
+ Archived *bool `json:"-"`
+ ArchivedAt *string `json:"-"`
+ FullName *string `json:"-"`
+ PausedAt *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetConnectionsRequestDirGetConnectionsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_connections_request_dir_get_connections_request_dir.go b/get_connections_request_dir_get_connections_request_dir.go
new file mode 100644
index 0000000..ab03244
--- /dev/null
+++ b/get_connections_request_dir_get_connections_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetConnectionsRequestDirGetConnectionsRequestDir uint8
+
+const (
+ GetConnectionsRequestDirGetConnectionsRequestDirAsc GetConnectionsRequestDirGetConnectionsRequestDir = iota + 1
+ GetConnectionsRequestDirGetConnectionsRequestDirDesc
+)
+
+func (g GetConnectionsRequestDirGetConnectionsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetConnectionsRequestDirGetConnectionsRequestDirAsc:
+ return "asc"
+ case GetConnectionsRequestDirGetConnectionsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetConnectionsRequestDirGetConnectionsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetConnectionsRequestDirGetConnectionsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetConnectionsRequestDirGetConnectionsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetConnectionsRequestDirGetConnectionsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_destinations_request.go b/get_destinations_request.go
new file mode 100644
index 0000000..ca5b36b
--- /dev/null
+++ b/get_destinations_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetDestinationsRequest struct {
+ Id *string `json:"-"`
+ Name *string `json:"-"`
+ Archived *bool `json:"-"`
+ ArchivedAt *string `json:"-"`
+ Url *string `json:"-"`
+ CliPath *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetDestinationsRequestDirGetDestinationsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_destinations_request_dir_get_destinations_request_dir.go b/get_destinations_request_dir_get_destinations_request_dir.go
new file mode 100644
index 0000000..67d5625
--- /dev/null
+++ b/get_destinations_request_dir_get_destinations_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetDestinationsRequestDirGetDestinationsRequestDir uint8
+
+const (
+ GetDestinationsRequestDirGetDestinationsRequestDirAsc GetDestinationsRequestDirGetDestinationsRequestDir = iota + 1
+ GetDestinationsRequestDirGetDestinationsRequestDirDesc
+)
+
+func (g GetDestinationsRequestDirGetDestinationsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetDestinationsRequestDirGetDestinationsRequestDirAsc:
+ return "asc"
+ case GetDestinationsRequestDirGetDestinationsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetDestinationsRequestDirGetDestinationsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetDestinationsRequestDirGetDestinationsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetDestinationsRequestDirGetDestinationsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetDestinationsRequestDirGetDestinationsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_event_bulk_retries_request.go b/get_event_bulk_retries_request.go
new file mode 100644
index 0000000..30571c7
--- /dev/null
+++ b/get_event_bulk_retries_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetEventBulkRetriesRequest struct {
+ CancelledAt *string `json:"-"`
+ CompletedAt *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ Id *string `json:"-"`
+ QueryPartialMatch *bool `json:"-"`
+ InProgress *bool `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_event_bulk_retries_request_dir_get_event_bulk_retries_request_dir.go b/get_event_bulk_retries_request_dir_get_event_bulk_retries_request_dir.go
new file mode 100644
index 0000000..8b59fff
--- /dev/null
+++ b/get_event_bulk_retries_request_dir_get_event_bulk_retries_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir uint8
+
+const (
+ GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDirAsc GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir = iota + 1
+ GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDirDesc
+)
+
+func (g GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDirAsc:
+ return "asc"
+ case GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetEventBulkRetriesRequestDirGetEventBulkRetriesRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_events_request.go b/get_events_request.go
new file mode 100644
index 0000000..06cb243
--- /dev/null
+++ b/get_events_request.go
@@ -0,0 +1,32 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetEventsRequest struct {
+ Id *string `json:"-"`
+ Status *EventStatus `json:"-"`
+ IssueId *string `json:"-"`
+ WebhookId *string `json:"-"`
+ DestinationId *string `json:"-"`
+ SourceId *string `json:"-"`
+ Attempts *int `json:"-"`
+ ResponseStatus *int `json:"-"`
+ SuccessfulAt *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ ErrorCode *string `json:"-"`
+ CliId *string `json:"-"`
+ CliUserId *string `json:"-"`
+ LastAttemptAt *string `json:"-"`
+ EventDataId *string `json:"-"`
+ Headers *string `json:"-"`
+ Body *string `json:"-"`
+ ParsedQuery *string `json:"-"`
+ BulkRetryId *string `json:"-"`
+ Path *string `json:"-"`
+ Include *string `json:"-"`
+ OrderBy *GetEventsRequestOrderByGetEventsRequestOrderBy `json:"-"`
+ Dir *GetEventsRequestDirGetEventsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_events_request_dir_get_events_request_dir.go b/get_events_request_dir_get_events_request_dir.go
new file mode 100644
index 0000000..c58c475
--- /dev/null
+++ b/get_events_request_dir_get_events_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetEventsRequestDirGetEventsRequestDir uint8
+
+const (
+ GetEventsRequestDirGetEventsRequestDirAsc GetEventsRequestDirGetEventsRequestDir = iota + 1
+ GetEventsRequestDirGetEventsRequestDirDesc
+)
+
+func (g GetEventsRequestDirGetEventsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetEventsRequestDirGetEventsRequestDirAsc:
+ return "asc"
+ case GetEventsRequestDirGetEventsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetEventsRequestDirGetEventsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetEventsRequestDirGetEventsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetEventsRequestDirGetEventsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetEventsRequestDirGetEventsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_events_request_order_by_get_events_request_order_by.go b/get_events_request_order_by_get_events_request_order_by.go
new file mode 100644
index 0000000..6a25e9a
--- /dev/null
+++ b/get_events_request_order_by_get_events_request_order_by.go
@@ -0,0 +1,53 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetEventsRequestOrderByGetEventsRequestOrderBy uint8
+
+const (
+ GetEventsRequestOrderByGetEventsRequestOrderByLastAttemptAt GetEventsRequestOrderByGetEventsRequestOrderBy = iota + 1
+ GetEventsRequestOrderByGetEventsRequestOrderByNextAttemptAt
+ GetEventsRequestOrderByGetEventsRequestOrderByCreatedAt
+)
+
+func (g GetEventsRequestOrderByGetEventsRequestOrderBy) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetEventsRequestOrderByGetEventsRequestOrderByLastAttemptAt:
+ return "last_attempt_at"
+ case GetEventsRequestOrderByGetEventsRequestOrderByNextAttemptAt:
+ return "next_attempt_at"
+ case GetEventsRequestOrderByGetEventsRequestOrderByCreatedAt:
+ return "created_at"
+ }
+}
+
+func (g GetEventsRequestOrderByGetEventsRequestOrderBy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetEventsRequestOrderByGetEventsRequestOrderBy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "last_attempt_at":
+ value := GetEventsRequestOrderByGetEventsRequestOrderByLastAttemptAt
+ *g = value
+ case "next_attempt_at":
+ value := GetEventsRequestOrderByGetEventsRequestOrderByNextAttemptAt
+ *g = value
+ case "created_at":
+ value := GetEventsRequestOrderByGetEventsRequestOrderByCreatedAt
+ *g = value
+ }
+ return nil
+}
diff --git a/get_ignored_event_bulk_retries_request.go b/get_ignored_event_bulk_retries_request.go
new file mode 100644
index 0000000..f61d28e
--- /dev/null
+++ b/get_ignored_event_bulk_retries_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetIgnoredEventBulkRetriesRequest struct {
+ CancelledAt *string `json:"-"`
+ CompletedAt *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ Id *string `json:"-"`
+ QueryPartialMatch *bool `json:"-"`
+ InProgress *bool `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_ignored_event_bulk_retries_request_dir_get_ignored_event_bulk_retries_request_dir.go b/get_ignored_event_bulk_retries_request_dir_get_ignored_event_bulk_retries_request_dir.go
new file mode 100644
index 0000000..deb5ec8
--- /dev/null
+++ b/get_ignored_event_bulk_retries_request_dir_get_ignored_event_bulk_retries_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir uint8
+
+const (
+ GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDirAsc GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir = iota + 1
+ GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDirDesc
+)
+
+func (g GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDirAsc:
+ return "asc"
+ case GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetIgnoredEventBulkRetriesRequestDirGetIgnoredEventBulkRetriesRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_integrations_request.go b/get_integrations_request.go
new file mode 100644
index 0000000..4327c9e
--- /dev/null
+++ b/get_integrations_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetIntegrationsRequest struct {
+ Label *string `json:"-"`
+ Provider *IntegrationProvider `json:"-"`
+}
diff --git a/get_issue_count_request.go b/get_issue_count_request.go
new file mode 100644
index 0000000..df7aad8
--- /dev/null
+++ b/get_issue_count_request.go
@@ -0,0 +1,20 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetIssueCountRequest struct {
+ Id *string `json:"-"`
+ IssueTriggerId *string `json:"-"`
+ Type *GetIssueCountRequestTypeGetIssueCountRequestType `json:"-"`
+ Status *GetIssueCountRequestStatusGetIssueCountRequestStatus `json:"-"`
+ MergedWith *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ FirstSeenAt *string `json:"-"`
+ LastSeenAt *string `json:"-"`
+ DismissedAt *string `json:"-"`
+ OrderBy *GetIssueCountRequestOrderByGetIssueCountRequestOrderBy `json:"-"`
+ Dir *GetIssueCountRequestDirGetIssueCountRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_issue_count_request_dir_get_issue_count_request_dir.go b/get_issue_count_request_dir_get_issue_count_request_dir.go
new file mode 100644
index 0000000..b00ee40
--- /dev/null
+++ b/get_issue_count_request_dir_get_issue_count_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIssueCountRequestDirGetIssueCountRequestDir uint8
+
+const (
+ GetIssueCountRequestDirGetIssueCountRequestDirAsc GetIssueCountRequestDirGetIssueCountRequestDir = iota + 1
+ GetIssueCountRequestDirGetIssueCountRequestDirDesc
+)
+
+func (g GetIssueCountRequestDirGetIssueCountRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssueCountRequestDirGetIssueCountRequestDirAsc:
+ return "asc"
+ case GetIssueCountRequestDirGetIssueCountRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetIssueCountRequestDirGetIssueCountRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssueCountRequestDirGetIssueCountRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetIssueCountRequestDirGetIssueCountRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetIssueCountRequestDirGetIssueCountRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issue_count_request_order_by_get_issue_count_request_order_by.go b/get_issue_count_request_order_by_get_issue_count_request_order_by.go
new file mode 100644
index 0000000..d47bfbc
--- /dev/null
+++ b/get_issue_count_request_order_by_get_issue_count_request_order_by.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIssueCountRequestOrderByGetIssueCountRequestOrderBy uint8
+
+const (
+ GetIssueCountRequestOrderByGetIssueCountRequestOrderByCreatedAt GetIssueCountRequestOrderByGetIssueCountRequestOrderBy = iota + 1
+ GetIssueCountRequestOrderByGetIssueCountRequestOrderByFirstSeenAt
+ GetIssueCountRequestOrderByGetIssueCountRequestOrderByLastSeenAt
+ GetIssueCountRequestOrderByGetIssueCountRequestOrderByOpenedAt
+ GetIssueCountRequestOrderByGetIssueCountRequestOrderByStatus
+)
+
+func (g GetIssueCountRequestOrderByGetIssueCountRequestOrderBy) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssueCountRequestOrderByGetIssueCountRequestOrderByCreatedAt:
+ return "created_at"
+ case GetIssueCountRequestOrderByGetIssueCountRequestOrderByFirstSeenAt:
+ return "first_seen_at"
+ case GetIssueCountRequestOrderByGetIssueCountRequestOrderByLastSeenAt:
+ return "last_seen_at"
+ case GetIssueCountRequestOrderByGetIssueCountRequestOrderByOpenedAt:
+ return "opened_at"
+ case GetIssueCountRequestOrderByGetIssueCountRequestOrderByStatus:
+ return "status"
+ }
+}
+
+func (g GetIssueCountRequestOrderByGetIssueCountRequestOrderBy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssueCountRequestOrderByGetIssueCountRequestOrderBy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "created_at":
+ value := GetIssueCountRequestOrderByGetIssueCountRequestOrderByCreatedAt
+ *g = value
+ case "first_seen_at":
+ value := GetIssueCountRequestOrderByGetIssueCountRequestOrderByFirstSeenAt
+ *g = value
+ case "last_seen_at":
+ value := GetIssueCountRequestOrderByGetIssueCountRequestOrderByLastSeenAt
+ *g = value
+ case "opened_at":
+ value := GetIssueCountRequestOrderByGetIssueCountRequestOrderByOpenedAt
+ *g = value
+ case "status":
+ value := GetIssueCountRequestOrderByGetIssueCountRequestOrderByStatus
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issue_count_request_status_get_issue_count_request_status.go b/get_issue_count_request_status_get_issue_count_request_status.go
new file mode 100644
index 0000000..a5ba22e
--- /dev/null
+++ b/get_issue_count_request_status_get_issue_count_request_status.go
@@ -0,0 +1,60 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Issue status
+type GetIssueCountRequestStatusGetIssueCountRequestStatus uint8
+
+const (
+ GetIssueCountRequestStatusGetIssueCountRequestStatusOpened GetIssueCountRequestStatusGetIssueCountRequestStatus = iota + 1
+ GetIssueCountRequestStatusGetIssueCountRequestStatusIgnored
+ GetIssueCountRequestStatusGetIssueCountRequestStatusAcknowledged
+ GetIssueCountRequestStatusGetIssueCountRequestStatusResolved
+)
+
+func (g GetIssueCountRequestStatusGetIssueCountRequestStatus) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssueCountRequestStatusGetIssueCountRequestStatusOpened:
+ return "OPENED"
+ case GetIssueCountRequestStatusGetIssueCountRequestStatusIgnored:
+ return "IGNORED"
+ case GetIssueCountRequestStatusGetIssueCountRequestStatusAcknowledged:
+ return "ACKNOWLEDGED"
+ case GetIssueCountRequestStatusGetIssueCountRequestStatusResolved:
+ return "RESOLVED"
+ }
+}
+
+func (g GetIssueCountRequestStatusGetIssueCountRequestStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssueCountRequestStatusGetIssueCountRequestStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "OPENED":
+ value := GetIssueCountRequestStatusGetIssueCountRequestStatusOpened
+ *g = value
+ case "IGNORED":
+ value := GetIssueCountRequestStatusGetIssueCountRequestStatusIgnored
+ *g = value
+ case "ACKNOWLEDGED":
+ value := GetIssueCountRequestStatusGetIssueCountRequestStatusAcknowledged
+ *g = value
+ case "RESOLVED":
+ value := GetIssueCountRequestStatusGetIssueCountRequestStatusResolved
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issue_count_request_type_get_issue_count_request_type.go b/get_issue_count_request_type_get_issue_count_request_type.go
new file mode 100644
index 0000000..bbda63f
--- /dev/null
+++ b/get_issue_count_request_type_get_issue_count_request_type.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Issue type
+type GetIssueCountRequestTypeGetIssueCountRequestType uint8
+
+const (
+ GetIssueCountRequestTypeGetIssueCountRequestTypeDelivery GetIssueCountRequestTypeGetIssueCountRequestType = iota + 1
+ GetIssueCountRequestTypeGetIssueCountRequestTypeTransformation
+ GetIssueCountRequestTypeGetIssueCountRequestTypeBackpressure
+)
+
+func (g GetIssueCountRequestTypeGetIssueCountRequestType) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssueCountRequestTypeGetIssueCountRequestTypeDelivery:
+ return "delivery"
+ case GetIssueCountRequestTypeGetIssueCountRequestTypeTransformation:
+ return "transformation"
+ case GetIssueCountRequestTypeGetIssueCountRequestTypeBackpressure:
+ return "backpressure"
+ }
+}
+
+func (g GetIssueCountRequestTypeGetIssueCountRequestType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssueCountRequestTypeGetIssueCountRequestType) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "delivery":
+ value := GetIssueCountRequestTypeGetIssueCountRequestTypeDelivery
+ *g = value
+ case "transformation":
+ value := GetIssueCountRequestTypeGetIssueCountRequestTypeTransformation
+ *g = value
+ case "backpressure":
+ value := GetIssueCountRequestTypeGetIssueCountRequestTypeBackpressure
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issue_triggers_request.go b/get_issue_triggers_request.go
new file mode 100644
index 0000000..ec94e72
--- /dev/null
+++ b/get_issue_triggers_request.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetIssueTriggersRequest struct {
+ Name *string `json:"-"`
+ Type *IssueType `json:"-"`
+ DisabledAt *string `json:"-"`
+ OrderBy *GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy `json:"-"`
+ Dir *GetIssueTriggersRequestDirGetIssueTriggersRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_issue_triggers_request_dir_get_issue_triggers_request_dir.go b/get_issue_triggers_request_dir_get_issue_triggers_request_dir.go
new file mode 100644
index 0000000..97c7c4f
--- /dev/null
+++ b/get_issue_triggers_request_dir_get_issue_triggers_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIssueTriggersRequestDirGetIssueTriggersRequestDir uint8
+
+const (
+ GetIssueTriggersRequestDirGetIssueTriggersRequestDirAsc GetIssueTriggersRequestDirGetIssueTriggersRequestDir = iota + 1
+ GetIssueTriggersRequestDirGetIssueTriggersRequestDirDesc
+)
+
+func (g GetIssueTriggersRequestDirGetIssueTriggersRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssueTriggersRequestDirGetIssueTriggersRequestDirAsc:
+ return "asc"
+ case GetIssueTriggersRequestDirGetIssueTriggersRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetIssueTriggersRequestDirGetIssueTriggersRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssueTriggersRequestDirGetIssueTriggersRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetIssueTriggersRequestDirGetIssueTriggersRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetIssueTriggersRequestDirGetIssueTriggersRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issue_triggers_request_order_by_get_issue_triggers_request_order_by.go b/get_issue_triggers_request_order_by_get_issue_triggers_request_order_by.go
new file mode 100644
index 0000000..a0e8009
--- /dev/null
+++ b/get_issue_triggers_request_order_by_get_issue_triggers_request_order_by.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy uint8
+
+const (
+ GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderByCreatedAt GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy = iota + 1
+ GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderByType
+)
+
+func (g GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderByCreatedAt:
+ return "created_at"
+ case GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderByType:
+ return "type"
+ }
+}
+
+func (g GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "created_at":
+ value := GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderByCreatedAt
+ *g = value
+ case "type":
+ value := GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderByType
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issues_request.go b/get_issues_request.go
new file mode 100644
index 0000000..21b5dbc
--- /dev/null
+++ b/get_issues_request.go
@@ -0,0 +1,20 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetIssuesRequest struct {
+ Id *string `json:"-"`
+ IssueTriggerId *string `json:"-"`
+ Type *GetIssuesRequestTypeGetIssuesRequestType `json:"-"`
+ Status *GetIssuesRequestStatusGetIssuesRequestStatus `json:"-"`
+ MergedWith *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ FirstSeenAt *string `json:"-"`
+ LastSeenAt *string `json:"-"`
+ DismissedAt *string `json:"-"`
+ OrderBy *GetIssuesRequestOrderByGetIssuesRequestOrderBy `json:"-"`
+ Dir *GetIssuesRequestDirGetIssuesRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_issues_request_dir_get_issues_request_dir.go b/get_issues_request_dir_get_issues_request_dir.go
new file mode 100644
index 0000000..f342049
--- /dev/null
+++ b/get_issues_request_dir_get_issues_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIssuesRequestDirGetIssuesRequestDir uint8
+
+const (
+ GetIssuesRequestDirGetIssuesRequestDirAsc GetIssuesRequestDirGetIssuesRequestDir = iota + 1
+ GetIssuesRequestDirGetIssuesRequestDirDesc
+)
+
+func (g GetIssuesRequestDirGetIssuesRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssuesRequestDirGetIssuesRequestDirAsc:
+ return "asc"
+ case GetIssuesRequestDirGetIssuesRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetIssuesRequestDirGetIssuesRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssuesRequestDirGetIssuesRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetIssuesRequestDirGetIssuesRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetIssuesRequestDirGetIssuesRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issues_request_order_by_get_issues_request_order_by.go b/get_issues_request_order_by_get_issues_request_order_by.go
new file mode 100644
index 0000000..05d9b2d
--- /dev/null
+++ b/get_issues_request_order_by_get_issues_request_order_by.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetIssuesRequestOrderByGetIssuesRequestOrderBy uint8
+
+const (
+ GetIssuesRequestOrderByGetIssuesRequestOrderByCreatedAt GetIssuesRequestOrderByGetIssuesRequestOrderBy = iota + 1
+ GetIssuesRequestOrderByGetIssuesRequestOrderByFirstSeenAt
+ GetIssuesRequestOrderByGetIssuesRequestOrderByLastSeenAt
+ GetIssuesRequestOrderByGetIssuesRequestOrderByOpenedAt
+ GetIssuesRequestOrderByGetIssuesRequestOrderByStatus
+)
+
+func (g GetIssuesRequestOrderByGetIssuesRequestOrderBy) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssuesRequestOrderByGetIssuesRequestOrderByCreatedAt:
+ return "created_at"
+ case GetIssuesRequestOrderByGetIssuesRequestOrderByFirstSeenAt:
+ return "first_seen_at"
+ case GetIssuesRequestOrderByGetIssuesRequestOrderByLastSeenAt:
+ return "last_seen_at"
+ case GetIssuesRequestOrderByGetIssuesRequestOrderByOpenedAt:
+ return "opened_at"
+ case GetIssuesRequestOrderByGetIssuesRequestOrderByStatus:
+ return "status"
+ }
+}
+
+func (g GetIssuesRequestOrderByGetIssuesRequestOrderBy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssuesRequestOrderByGetIssuesRequestOrderBy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "created_at":
+ value := GetIssuesRequestOrderByGetIssuesRequestOrderByCreatedAt
+ *g = value
+ case "first_seen_at":
+ value := GetIssuesRequestOrderByGetIssuesRequestOrderByFirstSeenAt
+ *g = value
+ case "last_seen_at":
+ value := GetIssuesRequestOrderByGetIssuesRequestOrderByLastSeenAt
+ *g = value
+ case "opened_at":
+ value := GetIssuesRequestOrderByGetIssuesRequestOrderByOpenedAt
+ *g = value
+ case "status":
+ value := GetIssuesRequestOrderByGetIssuesRequestOrderByStatus
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issues_request_status_get_issues_request_status.go b/get_issues_request_status_get_issues_request_status.go
new file mode 100644
index 0000000..a18c58c
--- /dev/null
+++ b/get_issues_request_status_get_issues_request_status.go
@@ -0,0 +1,60 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Issue status
+type GetIssuesRequestStatusGetIssuesRequestStatus uint8
+
+const (
+ GetIssuesRequestStatusGetIssuesRequestStatusOpened GetIssuesRequestStatusGetIssuesRequestStatus = iota + 1
+ GetIssuesRequestStatusGetIssuesRequestStatusIgnored
+ GetIssuesRequestStatusGetIssuesRequestStatusAcknowledged
+ GetIssuesRequestStatusGetIssuesRequestStatusResolved
+)
+
+func (g GetIssuesRequestStatusGetIssuesRequestStatus) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssuesRequestStatusGetIssuesRequestStatusOpened:
+ return "OPENED"
+ case GetIssuesRequestStatusGetIssuesRequestStatusIgnored:
+ return "IGNORED"
+ case GetIssuesRequestStatusGetIssuesRequestStatusAcknowledged:
+ return "ACKNOWLEDGED"
+ case GetIssuesRequestStatusGetIssuesRequestStatusResolved:
+ return "RESOLVED"
+ }
+}
+
+func (g GetIssuesRequestStatusGetIssuesRequestStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssuesRequestStatusGetIssuesRequestStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "OPENED":
+ value := GetIssuesRequestStatusGetIssuesRequestStatusOpened
+ *g = value
+ case "IGNORED":
+ value := GetIssuesRequestStatusGetIssuesRequestStatusIgnored
+ *g = value
+ case "ACKNOWLEDGED":
+ value := GetIssuesRequestStatusGetIssuesRequestStatusAcknowledged
+ *g = value
+ case "RESOLVED":
+ value := GetIssuesRequestStatusGetIssuesRequestStatusResolved
+ *g = value
+ }
+ return nil
+}
diff --git a/get_issues_request_type_get_issues_request_type.go b/get_issues_request_type_get_issues_request_type.go
new file mode 100644
index 0000000..94eebb0
--- /dev/null
+++ b/get_issues_request_type_get_issues_request_type.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Issue type
+type GetIssuesRequestTypeGetIssuesRequestType uint8
+
+const (
+ GetIssuesRequestTypeGetIssuesRequestTypeDelivery GetIssuesRequestTypeGetIssuesRequestType = iota + 1
+ GetIssuesRequestTypeGetIssuesRequestTypeTransformation
+ GetIssuesRequestTypeGetIssuesRequestTypeBackpressure
+)
+
+func (g GetIssuesRequestTypeGetIssuesRequestType) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetIssuesRequestTypeGetIssuesRequestTypeDelivery:
+ return "delivery"
+ case GetIssuesRequestTypeGetIssuesRequestTypeTransformation:
+ return "transformation"
+ case GetIssuesRequestTypeGetIssuesRequestTypeBackpressure:
+ return "backpressure"
+ }
+}
+
+func (g GetIssuesRequestTypeGetIssuesRequestType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetIssuesRequestTypeGetIssuesRequestType) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "delivery":
+ value := GetIssuesRequestTypeGetIssuesRequestTypeDelivery
+ *g = value
+ case "transformation":
+ value := GetIssuesRequestTypeGetIssuesRequestTypeTransformation
+ *g = value
+ case "backpressure":
+ value := GetIssuesRequestTypeGetIssuesRequestTypeBackpressure
+ *g = value
+ }
+ return nil
+}
diff --git a/get_request_bulk_retries_request.go b/get_request_bulk_retries_request.go
new file mode 100644
index 0000000..12ea1a7
--- /dev/null
+++ b/get_request_bulk_retries_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetRequestBulkRetriesRequest struct {
+ CancelledAt *string `json:"-"`
+ CompletedAt *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ Id *string `json:"-"`
+ InProgress *bool `json:"-"`
+ QueryPartialMatch *bool `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_request_bulk_retries_request_dir_get_request_bulk_retries_request_dir.go b/get_request_bulk_retries_request_dir_get_request_bulk_retries_request_dir.go
new file mode 100644
index 0000000..feeae6d
--- /dev/null
+++ b/get_request_bulk_retries_request_dir_get_request_bulk_retries_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir uint8
+
+const (
+ GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDirAsc GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir = iota + 1
+ GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDirDesc
+)
+
+func (g GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDirAsc:
+ return "asc"
+ case GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetRequestBulkRetriesRequestDirGetRequestBulkRetriesRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_request_events_request.go b/get_request_events_request.go
new file mode 100644
index 0000000..ecfc49b
--- /dev/null
+++ b/get_request_events_request.go
@@ -0,0 +1,32 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetRequestEventsRequest struct {
+ Id *string `json:"-"`
+ Status *EventStatus `json:"-"`
+ IssueId *string `json:"-"`
+ WebhookId *string `json:"-"`
+ DestinationId *string `json:"-"`
+ SourceId *string `json:"-"`
+ Attempts *int `json:"-"`
+ ResponseStatus *int `json:"-"`
+ SuccessfulAt *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ ErrorCode *string `json:"-"`
+ CliId *string `json:"-"`
+ CliUserId *string `json:"-"`
+ LastAttemptAt *string `json:"-"`
+ EventDataId *string `json:"-"`
+ Headers *string `json:"-"`
+ Body *string `json:"-"`
+ ParsedQuery *string `json:"-"`
+ BulkRetryId *string `json:"-"`
+ Path *string `json:"-"`
+ Include *string `json:"-"`
+ OrderBy *GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy `json:"-"`
+ Dir *GetRequestEventsRequestDirGetRequestEventsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_request_events_request_dir_get_request_events_request_dir.go b/get_request_events_request_dir_get_request_events_request_dir.go
new file mode 100644
index 0000000..69169c2
--- /dev/null
+++ b/get_request_events_request_dir_get_request_events_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestEventsRequestDirGetRequestEventsRequestDir uint8
+
+const (
+ GetRequestEventsRequestDirGetRequestEventsRequestDirAsc GetRequestEventsRequestDirGetRequestEventsRequestDir = iota + 1
+ GetRequestEventsRequestDirGetRequestEventsRequestDirDesc
+)
+
+func (g GetRequestEventsRequestDirGetRequestEventsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestEventsRequestDirGetRequestEventsRequestDirAsc:
+ return "asc"
+ case GetRequestEventsRequestDirGetRequestEventsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetRequestEventsRequestDirGetRequestEventsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestEventsRequestDirGetRequestEventsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetRequestEventsRequestDirGetRequestEventsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetRequestEventsRequestDirGetRequestEventsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_request_events_request_order_by_get_request_events_request_order_by.go b/get_request_events_request_order_by_get_request_events_request_order_by.go
new file mode 100644
index 0000000..3c354c3
--- /dev/null
+++ b/get_request_events_request_order_by_get_request_events_request_order_by.go
@@ -0,0 +1,53 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy uint8
+
+const (
+ GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByLastAttemptAt GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy = iota + 1
+ GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByNextAttemptAt
+ GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByCreatedAt
+)
+
+func (g GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByLastAttemptAt:
+ return "last_attempt_at"
+ case GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByNextAttemptAt:
+ return "next_attempt_at"
+ case GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByCreatedAt:
+ return "created_at"
+ }
+}
+
+func (g GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "last_attempt_at":
+ value := GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByLastAttemptAt
+ *g = value
+ case "next_attempt_at":
+ value := GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByNextAttemptAt
+ *g = value
+ case "created_at":
+ value := GetRequestEventsRequestOrderByGetRequestEventsRequestOrderByCreatedAt
+ *g = value
+ }
+ return nil
+}
diff --git a/get_request_ignored_events_request.go b/get_request_ignored_events_request.go
new file mode 100644
index 0000000..034d449
--- /dev/null
+++ b/get_request_ignored_events_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetRequestIgnoredEventsRequest struct {
+ Id *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_request_ignored_events_request_dir_get_request_ignored_events_request_dir.go b/get_request_ignored_events_request_dir_get_request_ignored_events_request_dir.go
new file mode 100644
index 0000000..2e69381
--- /dev/null
+++ b/get_request_ignored_events_request_dir_get_request_ignored_events_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir uint8
+
+const (
+ GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDirAsc GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir = iota + 1
+ GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDirDesc
+)
+
+func (g GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDirAsc:
+ return "asc"
+ case GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_requests_request.go b/get_requests_request.go
new file mode 100644
index 0000000..33c463d
--- /dev/null
+++ b/get_requests_request.go
@@ -0,0 +1,26 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetRequestsRequest struct {
+ Id *string `json:"-"`
+ Status *GetRequestsRequestStatus `json:"-"`
+ RejectionCause *RequestRejectionCause `json:"-"`
+ IgnoredCount *int `json:"-"`
+ EventsCount *int `json:"-"`
+ SourceId *string `json:"-"`
+ Verified *bool `json:"-"`
+ Headers *string `json:"-"`
+ Body *string `json:"-"`
+ ParsedQuery *string `json:"-"`
+ Path *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ IngestedAt *string `json:"-"`
+ BulkRetryId *string `json:"-"`
+ Include *string `json:"-"`
+ OrderBy *GetRequestsRequestOrderByGetRequestsRequestOrderBy `json:"-"`
+ Dir *GetRequestsRequestDirGetRequestsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_requests_request_dir_get_requests_request_dir.go b/get_requests_request_dir_get_requests_request_dir.go
new file mode 100644
index 0000000..a1dfc15
--- /dev/null
+++ b/get_requests_request_dir_get_requests_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestsRequestDirGetRequestsRequestDir uint8
+
+const (
+ GetRequestsRequestDirGetRequestsRequestDirAsc GetRequestsRequestDirGetRequestsRequestDir = iota + 1
+ GetRequestsRequestDirGetRequestsRequestDirDesc
+)
+
+func (g GetRequestsRequestDirGetRequestsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestsRequestDirGetRequestsRequestDirAsc:
+ return "asc"
+ case GetRequestsRequestDirGetRequestsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetRequestsRequestDirGetRequestsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestsRequestDirGetRequestsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetRequestsRequestDirGetRequestsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetRequestsRequestDirGetRequestsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_requests_request_order_by_get_requests_request_order_by.go b/get_requests_request_order_by_get_requests_request_order_by.go
new file mode 100644
index 0000000..b6a9d73
--- /dev/null
+++ b/get_requests_request_order_by_get_requests_request_order_by.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestsRequestOrderByGetRequestsRequestOrderBy uint8
+
+const (
+ GetRequestsRequestOrderByGetRequestsRequestOrderByIngestedAt GetRequestsRequestOrderByGetRequestsRequestOrderBy = iota + 1
+ GetRequestsRequestOrderByGetRequestsRequestOrderByCreatedAt
+)
+
+func (g GetRequestsRequestOrderByGetRequestsRequestOrderBy) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestsRequestOrderByGetRequestsRequestOrderByIngestedAt:
+ return "ingested_at"
+ case GetRequestsRequestOrderByGetRequestsRequestOrderByCreatedAt:
+ return "created_at"
+ }
+}
+
+func (g GetRequestsRequestOrderByGetRequestsRequestOrderBy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestsRequestOrderByGetRequestsRequestOrderBy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "ingested_at":
+ value := GetRequestsRequestOrderByGetRequestsRequestOrderByIngestedAt
+ *g = value
+ case "created_at":
+ value := GetRequestsRequestOrderByGetRequestsRequestOrderByCreatedAt
+ *g = value
+ }
+ return nil
+}
diff --git a/get_requests_request_status.go b/get_requests_request_status.go
new file mode 100644
index 0000000..23e5808
--- /dev/null
+++ b/get_requests_request_status.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRequestsRequestStatus uint8
+
+const (
+ GetRequestsRequestStatusAccepted GetRequestsRequestStatus = iota + 1
+ GetRequestsRequestStatusRejected
+)
+
+func (g GetRequestsRequestStatus) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRequestsRequestStatusAccepted:
+ return "accepted"
+ case GetRequestsRequestStatusRejected:
+ return "rejected"
+ }
+}
+
+func (g GetRequestsRequestStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRequestsRequestStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "accepted":
+ value := GetRequestsRequestStatusAccepted
+ *g = value
+ case "rejected":
+ value := GetRequestsRequestStatusRejected
+ *g = value
+ }
+ return nil
+}
diff --git a/get_rulesets_request.go b/get_rulesets_request.go
new file mode 100644
index 0000000..20e7045
--- /dev/null
+++ b/get_rulesets_request.go
@@ -0,0 +1,15 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetRulesetsRequest struct {
+ Id *string `json:"-"`
+ Name *string `json:"-"`
+ Archived *bool `json:"-"`
+ ArchivedAt *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetRulesetsRequestDirGetRulesetsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_rulesets_request_dir_get_rulesets_request_dir.go b/get_rulesets_request_dir_get_rulesets_request_dir.go
new file mode 100644
index 0000000..06af78e
--- /dev/null
+++ b/get_rulesets_request_dir_get_rulesets_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetRulesetsRequestDirGetRulesetsRequestDir uint8
+
+const (
+ GetRulesetsRequestDirGetRulesetsRequestDirAsc GetRulesetsRequestDirGetRulesetsRequestDir = iota + 1
+ GetRulesetsRequestDirGetRulesetsRequestDirDesc
+)
+
+func (g GetRulesetsRequestDirGetRulesetsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetRulesetsRequestDirGetRulesetsRequestDirAsc:
+ return "asc"
+ case GetRulesetsRequestDirGetRulesetsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetRulesetsRequestDirGetRulesetsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetRulesetsRequestDirGetRulesetsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetRulesetsRequestDirGetRulesetsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetRulesetsRequestDirGetRulesetsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_sources_request.go b/get_sources_request.go
new file mode 100644
index 0000000..f04dc15
--- /dev/null
+++ b/get_sources_request.go
@@ -0,0 +1,16 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetSourcesRequest struct {
+ Id *string `json:"-"`
+ Name *string `json:"-"`
+ Archived *bool `json:"-"`
+ ArchivedAt *string `json:"-"`
+ IntegrationId *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetSourcesRequestDirGetSourcesRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_sources_request_dir_get_sources_request_dir.go b/get_sources_request_dir_get_sources_request_dir.go
new file mode 100644
index 0000000..1249b08
--- /dev/null
+++ b/get_sources_request_dir_get_sources_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetSourcesRequestDirGetSourcesRequestDir uint8
+
+const (
+ GetSourcesRequestDirGetSourcesRequestDirAsc GetSourcesRequestDirGetSourcesRequestDir = iota + 1
+ GetSourcesRequestDirGetSourcesRequestDirDesc
+)
+
+func (g GetSourcesRequestDirGetSourcesRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetSourcesRequestDirGetSourcesRequestDirAsc:
+ return "asc"
+ case GetSourcesRequestDirGetSourcesRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetSourcesRequestDirGetSourcesRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetSourcesRequestDirGetSourcesRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetSourcesRequestDirGetSourcesRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetSourcesRequestDirGetSourcesRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_transformation_executions_request.go b/get_transformation_executions_request.go
new file mode 100644
index 0000000..3e35a2b
--- /dev/null
+++ b/get_transformation_executions_request.go
@@ -0,0 +1,15 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetTransformationExecutionsRequest struct {
+ LogLevel *GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel `json:"-"`
+ WebhookId *string `json:"-"`
+ IssueId *string `json:"-"`
+ CreatedAt *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_transformation_executions_request_dir_get_transformation_executions_request_dir.go b/get_transformation_executions_request_dir_get_transformation_executions_request_dir.go
new file mode 100644
index 0000000..f827218
--- /dev/null
+++ b/get_transformation_executions_request_dir_get_transformation_executions_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir uint8
+
+const (
+ GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDirAsc GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir = iota + 1
+ GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDirDesc
+)
+
+func (g GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDirAsc:
+ return "asc"
+ case GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/get_transformation_executions_request_log_level_get_transformation_executions_request_log_level.go b/get_transformation_executions_request_log_level_get_transformation_executions_request_log_level.go
new file mode 100644
index 0000000..1b0ee8b
--- /dev/null
+++ b/get_transformation_executions_request_log_level_get_transformation_executions_request_log_level.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel uint8
+
+const (
+ GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelDebug GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel = iota + 1
+ GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelInfo
+ GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelWarn
+ GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelError
+ GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelFatal
+)
+
+func (g GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelDebug:
+ return "debug"
+ case GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelInfo:
+ return "info"
+ case GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelWarn:
+ return "warn"
+ case GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelError:
+ return "error"
+ case GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelFatal:
+ return "fatal"
+ }
+}
+
+func (g GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "debug":
+ value := GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelDebug
+ *g = value
+ case "info":
+ value := GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelInfo
+ *g = value
+ case "warn":
+ value := GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelWarn
+ *g = value
+ case "error":
+ value := GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelError
+ *g = value
+ case "fatal":
+ value := GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevelFatal
+ *g = value
+ }
+ return nil
+}
diff --git a/get_transformations_request.go b/get_transformations_request.go
new file mode 100644
index 0000000..c46e334
--- /dev/null
+++ b/get_transformations_request.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type GetTransformationsRequest struct {
+ Id *string `json:"-"`
+ Name *string `json:"-"`
+ OrderBy *string `json:"-"`
+ Dir *GetTransformationsRequestDirGetTransformationsRequestDir `json:"-"`
+ Limit *int `json:"-"`
+ Next *string `json:"-"`
+ Prev *string `json:"-"`
+}
diff --git a/get_transformations_request_dir_get_transformations_request_dir.go b/get_transformations_request_dir_get_transformations_request_dir.go
new file mode 100644
index 0000000..e4156b1
--- /dev/null
+++ b/get_transformations_request_dir_get_transformations_request_dir.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type GetTransformationsRequestDirGetTransformationsRequestDir uint8
+
+const (
+ GetTransformationsRequestDirGetTransformationsRequestDirAsc GetTransformationsRequestDirGetTransformationsRequestDir = iota + 1
+ GetTransformationsRequestDirGetTransformationsRequestDirDesc
+)
+
+func (g GetTransformationsRequestDirGetTransformationsRequestDir) String() string {
+ switch g {
+ default:
+ return strconv.Itoa(int(g))
+ case GetTransformationsRequestDirGetTransformationsRequestDirAsc:
+ return "asc"
+ case GetTransformationsRequestDirGetTransformationsRequestDirDesc:
+ return "desc"
+ }
+}
+
+func (g GetTransformationsRequestDirGetTransformationsRequestDir) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", g.String())), nil
+}
+
+func (g *GetTransformationsRequestDirGetTransformationsRequestDir) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := GetTransformationsRequestDirGetTransformationsRequestDirAsc
+ *g = value
+ case "desc":
+ value := GetTransformationsRequestDirGetTransformationsRequestDirDesc
+ *g = value
+ }
+ return nil
+}
diff --git a/go.mod b/go.mod
new file mode 100644
index 0000000..ea77ffb
--- /dev/null
+++ b/go.mod
@@ -0,0 +1,3 @@
+module github.com/fern-hookdeck/hookdeck-go
+
+go 1.19
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..e69de29
diff --git a/handled_hmac_configs.go b/handled_hmac_configs.go
new file mode 100644
index 0000000..c74ac83
--- /dev/null
+++ b/handled_hmac_configs.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type HandledHmacConfigs struct {
+ WebhookSecretKey string `json:"webhook_secret_key,omitempty"`
+}
diff --git a/hmac_algorithms.go b/hmac_algorithms.go
new file mode 100644
index 0000000..c7c186f
--- /dev/null
+++ b/hmac_algorithms.go
@@ -0,0 +1,59 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type HmacAlgorithms uint8
+
+const (
+ HmacAlgorithmsMd5 HmacAlgorithms = iota + 1
+ HmacAlgorithmsSha1
+ HmacAlgorithmsSha256
+ HmacAlgorithmsSha512
+)
+
+func (h HmacAlgorithms) String() string {
+ switch h {
+ default:
+ return strconv.Itoa(int(h))
+ case HmacAlgorithmsMd5:
+ return "md5"
+ case HmacAlgorithmsSha1:
+ return "sha1"
+ case HmacAlgorithmsSha256:
+ return "sha256"
+ case HmacAlgorithmsSha512:
+ return "sha512"
+ }
+}
+
+func (h HmacAlgorithms) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", h.String())), nil
+}
+
+func (h *HmacAlgorithms) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "md5":
+ value := HmacAlgorithmsMd5
+ *h = value
+ case "sha1":
+ value := HmacAlgorithmsSha1
+ *h = value
+ case "sha256":
+ value := HmacAlgorithmsSha256
+ *h = value
+ case "sha512":
+ value := HmacAlgorithmsSha512
+ *h = value
+ }
+ return nil
+}
diff --git a/hmac_integration_configs.go b/hmac_integration_configs.go
new file mode 100644
index 0000000..fc4a567
--- /dev/null
+++ b/hmac_integration_configs.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type HmacIntegrationConfigs struct {
+ WebhookSecretKey string `json:"webhook_secret_key,omitempty"`
+ Algorithm HmacAlgorithms `json:"algorithm,omitempty"`
+ HeaderKey string `json:"header_key,omitempty"`
+ Encoding HmacIntegrationConfigsEncoding `json:"encoding,omitempty"`
+}
diff --git a/hmac_integration_configs_encoding.go b/hmac_integration_configs_encoding.go
new file mode 100644
index 0000000..9043d90
--- /dev/null
+++ b/hmac_integration_configs_encoding.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type HmacIntegrationConfigsEncoding uint8
+
+const (
+ HmacIntegrationConfigsEncodingBase64 HmacIntegrationConfigsEncoding = iota + 1
+ HmacIntegrationConfigsEncodingHex
+)
+
+func (h HmacIntegrationConfigsEncoding) String() string {
+ switch h {
+ default:
+ return strconv.Itoa(int(h))
+ case HmacIntegrationConfigsEncodingBase64:
+ return "base64"
+ case HmacIntegrationConfigsEncodingHex:
+ return "hex"
+ }
+}
+
+func (h HmacIntegrationConfigsEncoding) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", h.String())), nil
+}
+
+func (h *HmacIntegrationConfigsEncoding) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "base64":
+ value := HmacIntegrationConfigsEncodingBase64
+ *h = value
+ case "hex":
+ value := HmacIntegrationConfigsEncodingHex
+ *h = value
+ }
+ return nil
+}
diff --git a/ignored_event.go b/ignored_event.go
new file mode 100644
index 0000000..ce6e12b
--- /dev/null
+++ b/ignored_event.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IgnoredEvent struct {
+ Id string `json:"id,omitempty"`
+ TeamId string `json:"team_id,omitempty"`
+ WebhookId string `json:"webhook_id,omitempty"`
+ Cause IgnoredEventCause `json:"cause,omitempty"`
+ RequestId string `json:"request_id,omitempty"`
+ Meta *IgnoredEventMeta `json:"meta,omitempty"`
+ UpdatedAt string `json:"updated_at,omitempty"`
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/ignored_event_cause.go b/ignored_event_cause.go
new file mode 100644
index 0000000..6917d0c
--- /dev/null
+++ b/ignored_event_cause.go
@@ -0,0 +1,59 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type IgnoredEventCause uint8
+
+const (
+ IgnoredEventCauseArchived IgnoredEventCause = iota + 1
+ IgnoredEventCauseFiltered
+ IgnoredEventCauseTransformationFailed
+ IgnoredEventCauseCliDisconnected
+)
+
+func (i IgnoredEventCause) String() string {
+ switch i {
+ default:
+ return strconv.Itoa(int(i))
+ case IgnoredEventCauseArchived:
+ return "ARCHIVED"
+ case IgnoredEventCauseFiltered:
+ return "FILTERED"
+ case IgnoredEventCauseTransformationFailed:
+ return "TRANSFORMATION_FAILED"
+ case IgnoredEventCauseCliDisconnected:
+ return "CLI_DISCONNECTED"
+ }
+}
+
+func (i IgnoredEventCause) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", i.String())), nil
+}
+
+func (i *IgnoredEventCause) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "ARCHIVED":
+ value := IgnoredEventCauseArchived
+ *i = value
+ case "FILTERED":
+ value := IgnoredEventCauseFiltered
+ *i = value
+ case "TRANSFORMATION_FAILED":
+ value := IgnoredEventCauseTransformationFailed
+ *i = value
+ case "CLI_DISCONNECTED":
+ value := IgnoredEventCauseCliDisconnected
+ *i = value
+ }
+ return nil
+}
diff --git a/ignored_event_meta.go b/ignored_event_meta.go
new file mode 100644
index 0000000..262f394
--- /dev/null
+++ b/ignored_event_meta.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type IgnoredEventMeta struct {
+ typeName string
+ FilteredMeta FilteredMeta
+ TransformationFailedMeta *TransformationFailedMeta
+}
+
+func NewIgnoredEventMetaFromFilteredMeta(value FilteredMeta) *IgnoredEventMeta {
+ return &IgnoredEventMeta{typeName: "filteredMeta", FilteredMeta: value}
+}
+
+func NewIgnoredEventMetaFromTransformationFailedMeta(value *TransformationFailedMeta) *IgnoredEventMeta {
+ return &IgnoredEventMeta{typeName: "transformationFailedMeta", TransformationFailedMeta: value}
+}
+
+func (i *IgnoredEventMeta) UnmarshalJSON(data []byte) error {
+ var valueFilteredMeta FilteredMeta
+ if err := json.Unmarshal(data, &valueFilteredMeta); err == nil {
+ i.typeName = "filteredMeta"
+ i.FilteredMeta = valueFilteredMeta
+ return nil
+ }
+ valueTransformationFailedMeta := new(TransformationFailedMeta)
+ if err := json.Unmarshal(data, &valueTransformationFailedMeta); err == nil {
+ i.typeName = "transformationFailedMeta"
+ i.TransformationFailedMeta = valueTransformationFailedMeta
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IgnoredEventMeta) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "filteredMeta":
+ return json.Marshal(i.FilteredMeta)
+ case "transformationFailedMeta":
+ return json.Marshal(i.TransformationFailedMeta)
+ }
+}
+
+type IgnoredEventMetaVisitor interface {
+ VisitFilteredMeta(FilteredMeta) error
+ VisitTransformationFailedMeta(*TransformationFailedMeta) error
+}
+
+func (i *IgnoredEventMeta) Accept(v IgnoredEventMetaVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "filteredMeta":
+ return v.VisitFilteredMeta(i.FilteredMeta)
+ case "transformationFailedMeta":
+ return v.VisitTransformationFailedMeta(i.TransformationFailedMeta)
+ }
+}
diff --git a/ignored_event_paginated_result.go b/ignored_event_paginated_result.go
new file mode 100644
index 0000000..5f0046a
--- /dev/null
+++ b/ignored_event_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IgnoredEventPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*IgnoredEvent `json:"models,omitempty"`
+}
diff --git a/integration.go b/integration.go
new file mode 100644
index 0000000..358a432
--- /dev/null
+++ b/integration.go
@@ -0,0 +1,23 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type Integration struct {
+ // ID of the integration
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // Label of the integration
+ Label string `json:"label,omitempty"`
+ Provider IntegrationProvider `json:"provider,omitempty"`
+ // List of features to enable (see features list below)
+ Features []IntegrationFeature `json:"features,omitempty"`
+ // Decrypted Key/Value object of the associated configuration for that provider
+ Configs *IntegrationConfigs `json:"configs,omitempty"`
+ // List of source IDs the integration is attached to
+ Sources []string `json:"sources,omitempty"`
+ // Date the integration was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the integration was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/integration_configs.go b/integration_configs.go
new file mode 100644
index 0000000..cb5ca79
--- /dev/null
+++ b/integration_configs.go
@@ -0,0 +1,114 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Decrypted Key/Value object of the associated configuration for that provider
+type IntegrationConfigs struct {
+ typeName string
+ HmacIntegrationConfigs *HmacIntegrationConfigs
+ ApiKeyIntegrationConfigs *ApiKeyIntegrationConfigs
+ HandledHmacConfigs *HandledHmacConfigs
+ BasicAuthIntegrationConfigs *BasicAuthIntegrationConfigs
+ ShopifyIntegrationConfigs *ShopifyIntegrationConfigs
+}
+
+func NewIntegrationConfigsFromHmacIntegrationConfigs(value *HmacIntegrationConfigs) *IntegrationConfigs {
+ return &IntegrationConfigs{typeName: "hmacIntegrationConfigs", HmacIntegrationConfigs: value}
+}
+
+func NewIntegrationConfigsFromApiKeyIntegrationConfigs(value *ApiKeyIntegrationConfigs) *IntegrationConfigs {
+ return &IntegrationConfigs{typeName: "apiKeyIntegrationConfigs", ApiKeyIntegrationConfigs: value}
+}
+
+func NewIntegrationConfigsFromHandledHmacConfigs(value *HandledHmacConfigs) *IntegrationConfigs {
+ return &IntegrationConfigs{typeName: "handledHmacConfigs", HandledHmacConfigs: value}
+}
+
+func NewIntegrationConfigsFromBasicAuthIntegrationConfigs(value *BasicAuthIntegrationConfigs) *IntegrationConfigs {
+ return &IntegrationConfigs{typeName: "basicAuthIntegrationConfigs", BasicAuthIntegrationConfigs: value}
+}
+
+func NewIntegrationConfigsFromShopifyIntegrationConfigs(value *ShopifyIntegrationConfigs) *IntegrationConfigs {
+ return &IntegrationConfigs{typeName: "shopifyIntegrationConfigs", ShopifyIntegrationConfigs: value}
+}
+
+func (i *IntegrationConfigs) UnmarshalJSON(data []byte) error {
+ valueHmacIntegrationConfigs := new(HmacIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueHmacIntegrationConfigs); err == nil {
+ i.typeName = "hmacIntegrationConfigs"
+ i.HmacIntegrationConfigs = valueHmacIntegrationConfigs
+ return nil
+ }
+ valueApiKeyIntegrationConfigs := new(ApiKeyIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueApiKeyIntegrationConfigs); err == nil {
+ i.typeName = "apiKeyIntegrationConfigs"
+ i.ApiKeyIntegrationConfigs = valueApiKeyIntegrationConfigs
+ return nil
+ }
+ valueHandledHmacConfigs := new(HandledHmacConfigs)
+ if err := json.Unmarshal(data, &valueHandledHmacConfigs); err == nil {
+ i.typeName = "handledHmacConfigs"
+ i.HandledHmacConfigs = valueHandledHmacConfigs
+ return nil
+ }
+ valueBasicAuthIntegrationConfigs := new(BasicAuthIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueBasicAuthIntegrationConfigs); err == nil {
+ i.typeName = "basicAuthIntegrationConfigs"
+ i.BasicAuthIntegrationConfigs = valueBasicAuthIntegrationConfigs
+ return nil
+ }
+ valueShopifyIntegrationConfigs := new(ShopifyIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueShopifyIntegrationConfigs); err == nil {
+ i.typeName = "shopifyIntegrationConfigs"
+ i.ShopifyIntegrationConfigs = valueShopifyIntegrationConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IntegrationConfigs) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "hmacIntegrationConfigs":
+ return json.Marshal(i.HmacIntegrationConfigs)
+ case "apiKeyIntegrationConfigs":
+ return json.Marshal(i.ApiKeyIntegrationConfigs)
+ case "handledHmacConfigs":
+ return json.Marshal(i.HandledHmacConfigs)
+ case "basicAuthIntegrationConfigs":
+ return json.Marshal(i.BasicAuthIntegrationConfigs)
+ case "shopifyIntegrationConfigs":
+ return json.Marshal(i.ShopifyIntegrationConfigs)
+ }
+}
+
+type IntegrationConfigsVisitor interface {
+ VisitHmacIntegrationConfigs(*HmacIntegrationConfigs) error
+ VisitApiKeyIntegrationConfigs(*ApiKeyIntegrationConfigs) error
+ VisitHandledHmacConfigs(*HandledHmacConfigs) error
+ VisitBasicAuthIntegrationConfigs(*BasicAuthIntegrationConfigs) error
+ VisitShopifyIntegrationConfigs(*ShopifyIntegrationConfigs) error
+}
+
+func (i *IntegrationConfigs) Accept(v IntegrationConfigsVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "hmacIntegrationConfigs":
+ return v.VisitHmacIntegrationConfigs(i.HmacIntegrationConfigs)
+ case "apiKeyIntegrationConfigs":
+ return v.VisitApiKeyIntegrationConfigs(i.ApiKeyIntegrationConfigs)
+ case "handledHmacConfigs":
+ return v.VisitHandledHmacConfigs(i.HandledHmacConfigs)
+ case "basicAuthIntegrationConfigs":
+ return v.VisitBasicAuthIntegrationConfigs(i.BasicAuthIntegrationConfigs)
+ case "shopifyIntegrationConfigs":
+ return v.VisitShopifyIntegrationConfigs(i.ShopifyIntegrationConfigs)
+ }
+}
diff --git a/integration_feature.go b/integration_feature.go
new file mode 100644
index 0000000..281d08f
--- /dev/null
+++ b/integration_feature.go
@@ -0,0 +1,53 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type IntegrationFeature uint8
+
+const (
+ IntegrationFeatureVerification IntegrationFeature = iota + 1
+ IntegrationFeatureHandshake
+ IntegrationFeaturePolling
+)
+
+func (i IntegrationFeature) String() string {
+ switch i {
+ default:
+ return strconv.Itoa(int(i))
+ case IntegrationFeatureVerification:
+ return "VERIFICATION"
+ case IntegrationFeatureHandshake:
+ return "HANDSHAKE"
+ case IntegrationFeaturePolling:
+ return "POLLING"
+ }
+}
+
+func (i IntegrationFeature) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", i.String())), nil
+}
+
+func (i *IntegrationFeature) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "VERIFICATION":
+ value := IntegrationFeatureVerification
+ *i = value
+ case "HANDSHAKE":
+ value := IntegrationFeatureHandshake
+ *i = value
+ case "POLLING":
+ value := IntegrationFeaturePolling
+ *i = value
+ }
+ return nil
+}
diff --git a/integration_paginated_result.go b/integration_paginated_result.go
new file mode 100644
index 0000000..a30b469
--- /dev/null
+++ b/integration_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IntegrationPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Integration `json:"models,omitempty"`
+}
diff --git a/integration_provider.go b/integration_provider.go
new file mode 100644
index 0000000..06955b1
--- /dev/null
+++ b/integration_provider.go
@@ -0,0 +1,174 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// The provider name
+type IntegrationProvider uint8
+
+const (
+ IntegrationProviderTwitter IntegrationProvider = iota + 1
+ IntegrationProviderStripe
+ IntegrationProviderRecharge
+ IntegrationProviderGithub
+ IntegrationProviderShopify
+ IntegrationProviderPostmark
+ IntegrationProviderTypeform
+ IntegrationProviderHmac
+ IntegrationProviderBasicAuth
+ IntegrationProviderApiKey
+ IntegrationProviderXero
+ IntegrationProviderSvix
+ IntegrationProviderZoom
+ IntegrationProviderAkeneo
+ IntegrationProviderAdyen
+ IntegrationProviderGitlab
+ IntegrationProviderPropertyFinder
+ IntegrationProviderWoocommerce
+ IntegrationProviderOura
+ IntegrationProviderCommercelayer
+ IntegrationProviderMailgun
+ IntegrationProviderPipedrive
+ IntegrationProviderSendgrid
+)
+
+func (i IntegrationProvider) String() string {
+ switch i {
+ default:
+ return strconv.Itoa(int(i))
+ case IntegrationProviderTwitter:
+ return "twitter"
+ case IntegrationProviderStripe:
+ return "stripe"
+ case IntegrationProviderRecharge:
+ return "recharge"
+ case IntegrationProviderGithub:
+ return "github"
+ case IntegrationProviderShopify:
+ return "shopify"
+ case IntegrationProviderPostmark:
+ return "postmark"
+ case IntegrationProviderTypeform:
+ return "typeform"
+ case IntegrationProviderHmac:
+ return "hmac"
+ case IntegrationProviderBasicAuth:
+ return "basic_auth"
+ case IntegrationProviderApiKey:
+ return "api_key"
+ case IntegrationProviderXero:
+ return "xero"
+ case IntegrationProviderSvix:
+ return "svix"
+ case IntegrationProviderZoom:
+ return "zoom"
+ case IntegrationProviderAkeneo:
+ return "akeneo"
+ case IntegrationProviderAdyen:
+ return "adyen"
+ case IntegrationProviderGitlab:
+ return "gitlab"
+ case IntegrationProviderPropertyFinder:
+ return "property-finder"
+ case IntegrationProviderWoocommerce:
+ return "woocommerce"
+ case IntegrationProviderOura:
+ return "oura"
+ case IntegrationProviderCommercelayer:
+ return "commercelayer"
+ case IntegrationProviderMailgun:
+ return "mailgun"
+ case IntegrationProviderPipedrive:
+ return "pipedrive"
+ case IntegrationProviderSendgrid:
+ return "sendgrid"
+ }
+}
+
+func (i IntegrationProvider) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", i.String())), nil
+}
+
+func (i *IntegrationProvider) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "twitter":
+ value := IntegrationProviderTwitter
+ *i = value
+ case "stripe":
+ value := IntegrationProviderStripe
+ *i = value
+ case "recharge":
+ value := IntegrationProviderRecharge
+ *i = value
+ case "github":
+ value := IntegrationProviderGithub
+ *i = value
+ case "shopify":
+ value := IntegrationProviderShopify
+ *i = value
+ case "postmark":
+ value := IntegrationProviderPostmark
+ *i = value
+ case "typeform":
+ value := IntegrationProviderTypeform
+ *i = value
+ case "hmac":
+ value := IntegrationProviderHmac
+ *i = value
+ case "basic_auth":
+ value := IntegrationProviderBasicAuth
+ *i = value
+ case "api_key":
+ value := IntegrationProviderApiKey
+ *i = value
+ case "xero":
+ value := IntegrationProviderXero
+ *i = value
+ case "svix":
+ value := IntegrationProviderSvix
+ *i = value
+ case "zoom":
+ value := IntegrationProviderZoom
+ *i = value
+ case "akeneo":
+ value := IntegrationProviderAkeneo
+ *i = value
+ case "adyen":
+ value := IntegrationProviderAdyen
+ *i = value
+ case "gitlab":
+ value := IntegrationProviderGitlab
+ *i = value
+ case "property-finder":
+ value := IntegrationProviderPropertyFinder
+ *i = value
+ case "woocommerce":
+ value := IntegrationProviderWoocommerce
+ *i = value
+ case "oura":
+ value := IntegrationProviderOura
+ *i = value
+ case "commercelayer":
+ value := IntegrationProviderCommercelayer
+ *i = value
+ case "mailgun":
+ value := IntegrationProviderMailgun
+ *i = value
+ case "pipedrive":
+ value := IntegrationProviderPipedrive
+ *i = value
+ case "sendgrid":
+ value := IntegrationProviderSendgrid
+ *i = value
+ }
+ return nil
+}
diff --git a/integrations_client.go b/integrations_client.go
new file mode 100644
index 0000000..c733518
--- /dev/null
+++ b/integrations_client.go
@@ -0,0 +1,392 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type IntegrationsClient interface {
+ GetIntegrations(ctx context.Context, request *GetIntegrationsRequest) (*IntegrationPaginatedResult, error)
+ CreateIntegration(ctx context.Context, request *CreateIntegrationRequest) (*Integration, error)
+ GetIntegration(ctx context.Context, id string) (*Integration, error)
+ UpdateIntegration(ctx context.Context, id string, request *UpdateIntegrationRequest) (*Integration, error)
+ DeleteIntegration(ctx context.Context, id string) (*DeletedIntegration, error)
+ AttachIntegrationToSource(ctx context.Context, id string, sourceId string) (*AttachedIntegrationToSource, error)
+ DetachIntegrationToSource(ctx context.Context, id string, sourceId string) (*DetachedIntegrationFromSource, error)
+}
+
+func NewIntegrationsClient(opts ...core.ClientOption) IntegrationsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &integrationsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type integrationsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (i *integrationsClient) GetIntegrations(ctx context.Context, request *GetIntegrationsRequest) (*IntegrationPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "integrations"
+
+ queryParams := make(url.Values)
+ var labelDefaultValue *string
+ if request.Label != labelDefaultValue {
+ queryParams.Add("label", fmt.Sprintf("%v", *request.Label))
+ }
+ var providerDefaultValue *IntegrationProvider
+ if request.Provider != providerDefaultValue {
+ queryParams.Add("provider", fmt.Sprintf("%v", *request.Provider))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IntegrationPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *integrationsClient) CreateIntegration(ctx context.Context, request *CreateIntegrationRequest) (*Integration, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "integrations"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Integration)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *integrationsClient) GetIntegration(ctx context.Context, id string) (*Integration, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"integrations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Integration)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *integrationsClient) UpdateIntegration(ctx context.Context, id string, request *UpdateIntegrationRequest) (*Integration, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"integrations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Integration)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *integrationsClient) DeleteIntegration(ctx context.Context, id string) (*DeletedIntegration, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"integrations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(DeletedIntegration)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodDelete,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *integrationsClient) AttachIntegrationToSource(ctx context.Context, id string, sourceId string) (*AttachedIntegrationToSource, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"integrations/%v/attach/%v", id, sourceId)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(AttachedIntegrationToSource)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *integrationsClient) DetachIntegrationToSource(ctx context.Context, id string, sourceId string) (*DetachedIntegrationFromSource, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"integrations/%v/detach/%v", id, sourceId)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(DetachedIntegrationFromSource)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/issue.go b/issue.go
new file mode 100644
index 0000000..4f23f67
--- /dev/null
+++ b/issue.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Issue
+type Issue struct {
+ typeName string
+ DeliveryIssue *DeliveryIssue
+ TransformationIssue *TransformationIssue
+}
+
+func NewIssueFromDeliveryIssue(value *DeliveryIssue) *Issue {
+ return &Issue{typeName: "deliveryIssue", DeliveryIssue: value}
+}
+
+func NewIssueFromTransformationIssue(value *TransformationIssue) *Issue {
+ return &Issue{typeName: "transformationIssue", TransformationIssue: value}
+}
+
+func (i *Issue) UnmarshalJSON(data []byte) error {
+ valueDeliveryIssue := new(DeliveryIssue)
+ if err := json.Unmarshal(data, &valueDeliveryIssue); err == nil {
+ i.typeName = "deliveryIssue"
+ i.DeliveryIssue = valueDeliveryIssue
+ return nil
+ }
+ valueTransformationIssue := new(TransformationIssue)
+ if err := json.Unmarshal(data, &valueTransformationIssue); err == nil {
+ i.typeName = "transformationIssue"
+ i.TransformationIssue = valueTransformationIssue
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i Issue) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "deliveryIssue":
+ return json.Marshal(i.DeliveryIssue)
+ case "transformationIssue":
+ return json.Marshal(i.TransformationIssue)
+ }
+}
+
+type IssueVisitor interface {
+ VisitDeliveryIssue(*DeliveryIssue) error
+ VisitTransformationIssue(*TransformationIssue) error
+}
+
+func (i *Issue) Accept(v IssueVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "deliveryIssue":
+ return v.VisitDeliveryIssue(i.DeliveryIssue)
+ case "transformationIssue":
+ return v.VisitTransformationIssue(i.TransformationIssue)
+ }
+}
diff --git a/issue_count.go b/issue_count.go
new file mode 100644
index 0000000..97a1b39
--- /dev/null
+++ b/issue_count.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IssueCount struct {
+ // Number of issues
+ Count int `json:"count,omitempty"`
+}
diff --git a/issue_status.go b/issue_status.go
new file mode 100644
index 0000000..60df395
--- /dev/null
+++ b/issue_status.go
@@ -0,0 +1,60 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Issue status
+type IssueStatus uint8
+
+const (
+ IssueStatusOpened IssueStatus = iota + 1
+ IssueStatusIgnored
+ IssueStatusAcknowledged
+ IssueStatusResolved
+)
+
+func (i IssueStatus) String() string {
+ switch i {
+ default:
+ return strconv.Itoa(int(i))
+ case IssueStatusOpened:
+ return "OPENED"
+ case IssueStatusIgnored:
+ return "IGNORED"
+ case IssueStatusAcknowledged:
+ return "ACKNOWLEDGED"
+ case IssueStatusResolved:
+ return "RESOLVED"
+ }
+}
+
+func (i IssueStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", i.String())), nil
+}
+
+func (i *IssueStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "OPENED":
+ value := IssueStatusOpened
+ *i = value
+ case "IGNORED":
+ value := IssueStatusIgnored
+ *i = value
+ case "ACKNOWLEDGED":
+ value := IssueStatusAcknowledged
+ *i = value
+ case "RESOLVED":
+ value := IssueStatusResolved
+ *i = value
+ }
+ return nil
+}
diff --git a/issue_trigger.go b/issue_trigger.go
new file mode 100644
index 0000000..d0c20c9
--- /dev/null
+++ b/issue_trigger.go
@@ -0,0 +1,23 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IssueTrigger struct {
+ // ID of the issue trigger
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId *string `json:"team_id,omitempty"`
+ // Optional unique name to use as reference when using the API
+ Name *string `json:"name,omitempty"`
+ Type IssueType `json:"type,omitempty"`
+ Configs *IssueTriggerReference `json:"configs,omitempty"`
+ Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ // ISO timestamp for when the issue trigger was disabled
+ DisabledAt *string `json:"disabled_at,omitempty"`
+ // ISO timestamp for when the issue trigger was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // ISO timestamp for when the issue trigger was created
+ CreatedAt string `json:"created_at,omitempty"`
+ // ISO timestamp for when the issue trigger was deleted
+ DeletedAt *string `json:"deleted_at,omitempty"`
+}
diff --git a/issue_trigger_backpressure_configs.go b/issue_trigger_backpressure_configs.go
new file mode 100644
index 0000000..617728a
--- /dev/null
+++ b/issue_trigger_backpressure_configs.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Configurations for a 'Backpressure' issue trigger
+type IssueTriggerBackpressureConfigs struct {
+ Delay IssueTriggerBackpressureDelay `json:"delay,omitempty"`
+ // A pattern to match on the destination name or array of destination IDs. Use `*` as wildcard.
+ Destinations *IssueTriggerBackpressureConfigsDestinations `json:"destinations,omitempty"`
+}
diff --git a/issue_trigger_backpressure_configs_destinations.go b/issue_trigger_backpressure_configs_destinations.go
new file mode 100644
index 0000000..e390f05
--- /dev/null
+++ b/issue_trigger_backpressure_configs_destinations.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// A pattern to match on the destination name or array of destination IDs. Use `*` as wildcard.
+type IssueTriggerBackpressureConfigsDestinations struct {
+ typeName string
+ String string
+ StringList []string
+}
+
+func NewIssueTriggerBackpressureConfigsDestinationsFromString(value string) *IssueTriggerBackpressureConfigsDestinations {
+ return &IssueTriggerBackpressureConfigsDestinations{typeName: "string", String: value}
+}
+
+func NewIssueTriggerBackpressureConfigsDestinationsFromStringList(value []string) *IssueTriggerBackpressureConfigsDestinations {
+ return &IssueTriggerBackpressureConfigsDestinations{typeName: "stringList", StringList: value}
+}
+
+func (i *IssueTriggerBackpressureConfigsDestinations) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ i.typeName = "string"
+ i.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ i.typeName = "stringList"
+ i.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IssueTriggerBackpressureConfigsDestinations) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "string":
+ return json.Marshal(i.String)
+ case "stringList":
+ return json.Marshal(i.StringList)
+ }
+}
+
+type IssueTriggerBackpressureConfigsDestinationsVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (i *IssueTriggerBackpressureConfigsDestinations) Accept(v IssueTriggerBackpressureConfigsDestinationsVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "string":
+ return v.VisitString(i.String)
+ case "stringList":
+ return v.VisitStringList(i.StringList)
+ }
+}
diff --git a/issue_trigger_backpressure_delay.go b/issue_trigger_backpressure_delay.go
new file mode 100644
index 0000000..53b6b3a
--- /dev/null
+++ b/issue_trigger_backpressure_delay.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// The minimum delay (backpressure) to open the issue for min of 1 minute (60000) and max of 1 day (86400000)
+type IssueTriggerBackpressureDelay = int
diff --git a/issue_trigger_channels.go b/issue_trigger_channels.go
new file mode 100644
index 0000000..51fa078
--- /dev/null
+++ b/issue_trigger_channels.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Notification channels object for the specific channel type
+type IssueTriggerChannels struct {
+ Slack *IssueTriggerSlackChannel `json:"slack,omitempty"`
+ Opsgenie *IssueTriggerIntegrationChannel `json:"opsgenie,omitempty"`
+ Email *IssueTriggerEmailChannel `json:"email,omitempty"`
+}
diff --git a/issue_trigger_delivery_configs.go b/issue_trigger_delivery_configs.go
new file mode 100644
index 0000000..6d4da2d
--- /dev/null
+++ b/issue_trigger_delivery_configs.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Configurations for a 'delivery' issue trigger
+type IssueTriggerDeliveryConfigs struct {
+ Strategy IssueTriggerStrategy `json:"strategy,omitempty"`
+ // A pattern to match on the connection name or array of connection IDs. Use `*` as wildcard.
+ Connections *IssueTriggerDeliveryConfigsConnections `json:"connections,omitempty"`
+}
diff --git a/issue_trigger_delivery_configs_connections.go b/issue_trigger_delivery_configs_connections.go
new file mode 100644
index 0000000..7d8d2eb
--- /dev/null
+++ b/issue_trigger_delivery_configs_connections.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// A pattern to match on the connection name or array of connection IDs. Use `*` as wildcard.
+type IssueTriggerDeliveryConfigsConnections struct {
+ typeName string
+ String string
+ StringList []string
+}
+
+func NewIssueTriggerDeliveryConfigsConnectionsFromString(value string) *IssueTriggerDeliveryConfigsConnections {
+ return &IssueTriggerDeliveryConfigsConnections{typeName: "string", String: value}
+}
+
+func NewIssueTriggerDeliveryConfigsConnectionsFromStringList(value []string) *IssueTriggerDeliveryConfigsConnections {
+ return &IssueTriggerDeliveryConfigsConnections{typeName: "stringList", StringList: value}
+}
+
+func (i *IssueTriggerDeliveryConfigsConnections) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ i.typeName = "string"
+ i.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ i.typeName = "stringList"
+ i.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IssueTriggerDeliveryConfigsConnections) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "string":
+ return json.Marshal(i.String)
+ case "stringList":
+ return json.Marshal(i.StringList)
+ }
+}
+
+type IssueTriggerDeliveryConfigsConnectionsVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (i *IssueTriggerDeliveryConfigsConnections) Accept(v IssueTriggerDeliveryConfigsConnectionsVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "string":
+ return v.VisitString(i.String)
+ case "stringList":
+ return v.VisitStringList(i.StringList)
+ }
+}
diff --git a/issue_trigger_email_channel.go b/issue_trigger_email_channel.go
new file mode 100644
index 0000000..954533d
--- /dev/null
+++ b/issue_trigger_email_channel.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Email channel for an issue trigger
+type IssueTriggerEmailChannel struct {
+}
diff --git a/issue_trigger_integration_channel.go b/issue_trigger_integration_channel.go
new file mode 100644
index 0000000..3045a70
--- /dev/null
+++ b/issue_trigger_integration_channel.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Integration channel for an issue trigger
+type IssueTriggerIntegrationChannel struct {
+}
diff --git a/issue_trigger_paginated_result.go b/issue_trigger_paginated_result.go
new file mode 100644
index 0000000..1d41e89
--- /dev/null
+++ b/issue_trigger_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IssueTriggerPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*IssueTrigger `json:"models,omitempty"`
+}
diff --git a/issue_trigger_reference.go b/issue_trigger_reference.go
new file mode 100644
index 0000000..2049769
--- /dev/null
+++ b/issue_trigger_reference.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Configuration object for the specific issue type selected
+type IssueTriggerReference struct {
+ typeName string
+ IssueTriggerDeliveryConfigs *IssueTriggerDeliveryConfigs
+ IssueTriggerTransformationConfigs *IssueTriggerTransformationConfigs
+ IssueTriggerBackpressureConfigs *IssueTriggerBackpressureConfigs
+}
+
+func NewIssueTriggerReferenceFromIssueTriggerDeliveryConfigs(value *IssueTriggerDeliveryConfigs) *IssueTriggerReference {
+ return &IssueTriggerReference{typeName: "issueTriggerDeliveryConfigs", IssueTriggerDeliveryConfigs: value}
+}
+
+func NewIssueTriggerReferenceFromIssueTriggerTransformationConfigs(value *IssueTriggerTransformationConfigs) *IssueTriggerReference {
+ return &IssueTriggerReference{typeName: "issueTriggerTransformationConfigs", IssueTriggerTransformationConfigs: value}
+}
+
+func NewIssueTriggerReferenceFromIssueTriggerBackpressureConfigs(value *IssueTriggerBackpressureConfigs) *IssueTriggerReference {
+ return &IssueTriggerReference{typeName: "issueTriggerBackpressureConfigs", IssueTriggerBackpressureConfigs: value}
+}
+
+func (i *IssueTriggerReference) UnmarshalJSON(data []byte) error {
+ valueIssueTriggerDeliveryConfigs := new(IssueTriggerDeliveryConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerDeliveryConfigs); err == nil {
+ i.typeName = "issueTriggerDeliveryConfigs"
+ i.IssueTriggerDeliveryConfigs = valueIssueTriggerDeliveryConfigs
+ return nil
+ }
+ valueIssueTriggerTransformationConfigs := new(IssueTriggerTransformationConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerTransformationConfigs); err == nil {
+ i.typeName = "issueTriggerTransformationConfigs"
+ i.IssueTriggerTransformationConfigs = valueIssueTriggerTransformationConfigs
+ return nil
+ }
+ valueIssueTriggerBackpressureConfigs := new(IssueTriggerBackpressureConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerBackpressureConfigs); err == nil {
+ i.typeName = "issueTriggerBackpressureConfigs"
+ i.IssueTriggerBackpressureConfigs = valueIssueTriggerBackpressureConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IssueTriggerReference) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "issueTriggerDeliveryConfigs":
+ return json.Marshal(i.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return json.Marshal(i.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return json.Marshal(i.IssueTriggerBackpressureConfigs)
+ }
+}
+
+type IssueTriggerReferenceVisitor interface {
+ VisitIssueTriggerDeliveryConfigs(*IssueTriggerDeliveryConfigs) error
+ VisitIssueTriggerTransformationConfigs(*IssueTriggerTransformationConfigs) error
+ VisitIssueTriggerBackpressureConfigs(*IssueTriggerBackpressureConfigs) error
+}
+
+func (i *IssueTriggerReference) Accept(v IssueTriggerReferenceVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "issueTriggerDeliveryConfigs":
+ return v.VisitIssueTriggerDeliveryConfigs(i.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return v.VisitIssueTriggerTransformationConfigs(i.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return v.VisitIssueTriggerBackpressureConfigs(i.IssueTriggerBackpressureConfigs)
+ }
+}
diff --git a/issue_trigger_slack_channel.go b/issue_trigger_slack_channel.go
new file mode 100644
index 0000000..c2fd7d7
--- /dev/null
+++ b/issue_trigger_slack_channel.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Slack channel for an issue trigger
+type IssueTriggerSlackChannel struct {
+ // Channel name
+ ChannelName string `json:"channel_name,omitempty"`
+}
diff --git a/issue_trigger_strategy.go b/issue_trigger_strategy.go
new file mode 100644
index 0000000..a32cca6
--- /dev/null
+++ b/issue_trigger_strategy.go
@@ -0,0 +1,48 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// The strategy uses to open the issue
+type IssueTriggerStrategy uint8
+
+const (
+ IssueTriggerStrategyFirstAttempt IssueTriggerStrategy = iota + 1
+ IssueTriggerStrategyFinalAttempt
+)
+
+func (i IssueTriggerStrategy) String() string {
+ switch i {
+ default:
+ return strconv.Itoa(int(i))
+ case IssueTriggerStrategyFirstAttempt:
+ return "first_attempt"
+ case IssueTriggerStrategyFinalAttempt:
+ return "final_attempt"
+ }
+}
+
+func (i IssueTriggerStrategy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", i.String())), nil
+}
+
+func (i *IssueTriggerStrategy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "first_attempt":
+ value := IssueTriggerStrategyFirstAttempt
+ *i = value
+ case "final_attempt":
+ value := IssueTriggerStrategyFinalAttempt
+ *i = value
+ }
+ return nil
+}
diff --git a/issue_trigger_transformation_configs.go b/issue_trigger_transformation_configs.go
new file mode 100644
index 0000000..ce718c5
--- /dev/null
+++ b/issue_trigger_transformation_configs.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Configurations for a 'Transformation' issue trigger
+type IssueTriggerTransformationConfigs struct {
+ LogLevel TransformationExecutionLogLevel `json:"log_level,omitempty"`
+ // A pattern to match on the transformation name or array of transformation IDs. Use `*` as wildcard.
+ Transformations *IssueTriggerTransformationConfigsTransformations `json:"transformations,omitempty"`
+}
diff --git a/issue_trigger_transformation_configs_transformations.go b/issue_trigger_transformation_configs_transformations.go
new file mode 100644
index 0000000..4328a39
--- /dev/null
+++ b/issue_trigger_transformation_configs_transformations.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// A pattern to match on the transformation name or array of transformation IDs. Use `*` as wildcard.
+type IssueTriggerTransformationConfigsTransformations struct {
+ typeName string
+ String string
+ StringList []string
+}
+
+func NewIssueTriggerTransformationConfigsTransformationsFromString(value string) *IssueTriggerTransformationConfigsTransformations {
+ return &IssueTriggerTransformationConfigsTransformations{typeName: "string", String: value}
+}
+
+func NewIssueTriggerTransformationConfigsTransformationsFromStringList(value []string) *IssueTriggerTransformationConfigsTransformations {
+ return &IssueTriggerTransformationConfigsTransformations{typeName: "stringList", StringList: value}
+}
+
+func (i *IssueTriggerTransformationConfigsTransformations) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ i.typeName = "string"
+ i.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ i.typeName = "stringList"
+ i.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IssueTriggerTransformationConfigsTransformations) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "string":
+ return json.Marshal(i.String)
+ case "stringList":
+ return json.Marshal(i.StringList)
+ }
+}
+
+type IssueTriggerTransformationConfigsTransformationsVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (i *IssueTriggerTransformationConfigsTransformations) Accept(v IssueTriggerTransformationConfigsTransformationsVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "string":
+ return v.VisitString(i.String)
+ case "stringList":
+ return v.VisitStringList(i.StringList)
+ }
+}
diff --git a/issue_triggers_client.go b/issue_triggers_client.go
new file mode 100644
index 0000000..00466eb
--- /dev/null
+++ b/issue_triggers_client.go
@@ -0,0 +1,445 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type IssueTriggersClient interface {
+ GetIssueTriggers(ctx context.Context, request *GetIssueTriggersRequest) (*IssueTriggerPaginatedResult, error)
+ CreateIssueTrigger(ctx context.Context, request *CreateIssueTriggerRequest) (*IssueTrigger, error)
+ UpsertIssueTrigger(ctx context.Context, request *UpsertIssueTriggerRequest) (*IssueTrigger, error)
+ GetIssueTrigger(ctx context.Context, id string) (*IssueTrigger, error)
+ UpdateIssueTrigger(ctx context.Context, id string, request *UpdateIssueTriggerRequest) (*IssueTrigger, error)
+ DeleteIssueTrigger(ctx context.Context, id string) (*DeletedIssueTriggerResponse, error)
+ DisableIssueTrigger(ctx context.Context, id string) (*IssueTrigger, error)
+ EnableIssueTrigger(ctx context.Context, id string) (*IssueTrigger, error)
+}
+
+func NewIssueTriggersClient(opts ...core.ClientOption) IssueTriggersClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &issueTriggersClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type issueTriggersClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (i *issueTriggersClient) GetIssueTriggers(ctx context.Context, request *GetIssueTriggersRequest) (*IssueTriggerPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "issue-triggers"
+
+ queryParams := make(url.Values)
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var type_DefaultValue *IssueType
+ if request.Type != type_DefaultValue {
+ queryParams.Add("type", fmt.Sprintf("%v", *request.Type))
+ }
+ var disabledAtDefaultValue *string
+ if request.DisabledAt != disabledAtDefaultValue {
+ queryParams.Add("disabled_at", fmt.Sprintf("%v", *request.DisabledAt))
+ }
+ var orderByDefaultValue *GetIssueTriggersRequestOrderByGetIssueTriggersRequestOrderBy
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetIssueTriggersRequestDirGetIssueTriggersRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTriggerPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) CreateIssueTrigger(ctx context.Context, request *CreateIssueTriggerRequest) (*IssueTrigger, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "issue-triggers"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTrigger)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) UpsertIssueTrigger(ctx context.Context, request *UpsertIssueTriggerRequest) (*IssueTrigger, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "issue-triggers"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTrigger)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) GetIssueTrigger(ctx context.Context, id string) (*IssueTrigger, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issue-triggers/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTrigger)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) UpdateIssueTrigger(ctx context.Context, id string, request *UpdateIssueTriggerRequest) (*IssueTrigger, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issue-triggers/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTrigger)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) DeleteIssueTrigger(ctx context.Context, id string) (*DeletedIssueTriggerResponse, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issue-triggers/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(DeletedIssueTriggerResponse)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodDelete,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) DisableIssueTrigger(ctx context.Context, id string) (*IssueTrigger, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issue-triggers/%v/disable", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTrigger)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issueTriggersClient) EnableIssueTrigger(ctx context.Context, id string) (*IssueTrigger, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issue-triggers/%v/enable", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueTrigger)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/issue_type.go b/issue_type.go
new file mode 100644
index 0000000..12f3a4d
--- /dev/null
+++ b/issue_type.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Issue type
+type IssueType uint8
+
+const (
+ IssueTypeDelivery IssueType = iota + 1
+ IssueTypeTransformation
+ IssueTypeBackpressure
+)
+
+func (i IssueType) String() string {
+ switch i {
+ default:
+ return strconv.Itoa(int(i))
+ case IssueTypeDelivery:
+ return "delivery"
+ case IssueTypeTransformation:
+ return "transformation"
+ case IssueTypeBackpressure:
+ return "backpressure"
+ }
+}
+
+func (i IssueType) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", i.String())), nil
+}
+
+func (i *IssueType) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "delivery":
+ value := IssueTypeDelivery
+ *i = value
+ case "transformation":
+ value := IssueTypeTransformation
+ *i = value
+ case "backpressure":
+ value := IssueTypeBackpressure
+ *i = value
+ }
+ return nil
+}
diff --git a/issue_with_data.go b/issue_with_data.go
new file mode 100644
index 0000000..08195c1
--- /dev/null
+++ b/issue_with_data.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type IssueWithData struct {
+ typeName string
+ DeliveryIssueWithData *DeliveryIssueWithData
+ TransformationIssueWithData *TransformationIssueWithData
+}
+
+func NewIssueWithDataFromDeliveryIssueWithData(value *DeliveryIssueWithData) *IssueWithData {
+ return &IssueWithData{typeName: "deliveryIssueWithData", DeliveryIssueWithData: value}
+}
+
+func NewIssueWithDataFromTransformationIssueWithData(value *TransformationIssueWithData) *IssueWithData {
+ return &IssueWithData{typeName: "transformationIssueWithData", TransformationIssueWithData: value}
+}
+
+func (i *IssueWithData) UnmarshalJSON(data []byte) error {
+ valueDeliveryIssueWithData := new(DeliveryIssueWithData)
+ if err := json.Unmarshal(data, &valueDeliveryIssueWithData); err == nil {
+ i.typeName = "deliveryIssueWithData"
+ i.DeliveryIssueWithData = valueDeliveryIssueWithData
+ return nil
+ }
+ valueTransformationIssueWithData := new(TransformationIssueWithData)
+ if err := json.Unmarshal(data, &valueTransformationIssueWithData); err == nil {
+ i.typeName = "transformationIssueWithData"
+ i.TransformationIssueWithData = valueTransformationIssueWithData
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, i)
+}
+
+func (i IssueWithData) MarshalJSON() ([]byte, error) {
+ switch i.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "deliveryIssueWithData":
+ return json.Marshal(i.DeliveryIssueWithData)
+ case "transformationIssueWithData":
+ return json.Marshal(i.TransformationIssueWithData)
+ }
+}
+
+type IssueWithDataVisitor interface {
+ VisitDeliveryIssueWithData(*DeliveryIssueWithData) error
+ VisitTransformationIssueWithData(*TransformationIssueWithData) error
+}
+
+func (i *IssueWithData) Accept(v IssueWithDataVisitor) error {
+ switch i.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", i.typeName, i)
+ case "deliveryIssueWithData":
+ return v.VisitDeliveryIssueWithData(i.DeliveryIssueWithData)
+ case "transformationIssueWithData":
+ return v.VisitTransformationIssueWithData(i.TransformationIssueWithData)
+ }
+}
diff --git a/issue_with_data_paginated_result.go b/issue_with_data_paginated_result.go
new file mode 100644
index 0000000..0883536
--- /dev/null
+++ b/issue_with_data_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type IssueWithDataPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*IssueWithData `json:"models,omitempty"`
+}
diff --git a/issues_client.go b/issues_client.go
new file mode 100644
index 0000000..c2f7110
--- /dev/null
+++ b/issues_client.go
@@ -0,0 +1,387 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type IssuesClient interface {
+ GetIssues(ctx context.Context, request *GetIssuesRequest) (*IssueWithDataPaginatedResult, error)
+ GetIssueCount(ctx context.Context, request *GetIssueCountRequest) (*IssueCount, error)
+ GetIssue(ctx context.Context, id string) (*IssueWithData, error)
+ UpdateIssue(ctx context.Context, id string, request *UpdateIssueRequest) (*Issue, error)
+ DismissIssue(ctx context.Context, id string) (*Issue, error)
+}
+
+func NewIssuesClient(opts ...core.ClientOption) IssuesClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &issuesClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type issuesClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (i *issuesClient) GetIssues(ctx context.Context, request *GetIssuesRequest) (*IssueWithDataPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "issues"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var issueTriggerIdDefaultValue *string
+ if request.IssueTriggerId != issueTriggerIdDefaultValue {
+ queryParams.Add("issue_trigger_id", fmt.Sprintf("%v", *request.IssueTriggerId))
+ }
+ var type_DefaultValue *GetIssuesRequestTypeGetIssuesRequestType
+ if request.Type != type_DefaultValue {
+ queryParams.Add("type", fmt.Sprintf("%v", *request.Type))
+ }
+ var statusDefaultValue *GetIssuesRequestStatusGetIssuesRequestStatus
+ if request.Status != statusDefaultValue {
+ queryParams.Add("status", fmt.Sprintf("%v", *request.Status))
+ }
+ var mergedWithDefaultValue *string
+ if request.MergedWith != mergedWithDefaultValue {
+ queryParams.Add("merged_with", fmt.Sprintf("%v", *request.MergedWith))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var firstSeenAtDefaultValue *string
+ if request.FirstSeenAt != firstSeenAtDefaultValue {
+ queryParams.Add("first_seen_at", fmt.Sprintf("%v", *request.FirstSeenAt))
+ }
+ var lastSeenAtDefaultValue *string
+ if request.LastSeenAt != lastSeenAtDefaultValue {
+ queryParams.Add("last_seen_at", fmt.Sprintf("%v", *request.LastSeenAt))
+ }
+ var dismissedAtDefaultValue *string
+ if request.DismissedAt != dismissedAtDefaultValue {
+ queryParams.Add("dismissed_at", fmt.Sprintf("%v", *request.DismissedAt))
+ }
+ var orderByDefaultValue *GetIssuesRequestOrderByGetIssuesRequestOrderBy
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetIssuesRequestDirGetIssuesRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueWithDataPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issuesClient) GetIssueCount(ctx context.Context, request *GetIssueCountRequest) (*IssueCount, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := baseURL + "/" + "issues/count"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var issueTriggerIdDefaultValue *string
+ if request.IssueTriggerId != issueTriggerIdDefaultValue {
+ queryParams.Add("issue_trigger_id", fmt.Sprintf("%v", *request.IssueTriggerId))
+ }
+ var type_DefaultValue *GetIssueCountRequestTypeGetIssueCountRequestType
+ if request.Type != type_DefaultValue {
+ queryParams.Add("type", fmt.Sprintf("%v", *request.Type))
+ }
+ var statusDefaultValue *GetIssueCountRequestStatusGetIssueCountRequestStatus
+ if request.Status != statusDefaultValue {
+ queryParams.Add("status", fmt.Sprintf("%v", *request.Status))
+ }
+ var mergedWithDefaultValue *string
+ if request.MergedWith != mergedWithDefaultValue {
+ queryParams.Add("merged_with", fmt.Sprintf("%v", *request.MergedWith))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var firstSeenAtDefaultValue *string
+ if request.FirstSeenAt != firstSeenAtDefaultValue {
+ queryParams.Add("first_seen_at", fmt.Sprintf("%v", *request.FirstSeenAt))
+ }
+ var lastSeenAtDefaultValue *string
+ if request.LastSeenAt != lastSeenAtDefaultValue {
+ queryParams.Add("last_seen_at", fmt.Sprintf("%v", *request.LastSeenAt))
+ }
+ var dismissedAtDefaultValue *string
+ if request.DismissedAt != dismissedAtDefaultValue {
+ queryParams.Add("dismissed_at", fmt.Sprintf("%v", *request.DismissedAt))
+ }
+ var orderByDefaultValue *GetIssueCountRequestOrderByGetIssueCountRequestOrderBy
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetIssueCountRequestDirGetIssueCountRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueCount)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issuesClient) GetIssue(ctx context.Context, id string) (*IssueWithData, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issues/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IssueWithData)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issuesClient) UpdateIssue(ctx context.Context, id string, request *UpdateIssueRequest) (*Issue, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issues/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Issue)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (i *issuesClient) DismissIssue(ctx context.Context, id string) (*Issue, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if i.baseURL != "" {
+ baseURL = i.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"issues/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Issue)
+ if err := core.DoRequest(
+ ctx,
+ i.httpClient,
+ endpointURL,
+ http.MethodDelete,
+ nil,
+ &response,
+ i.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/not_found_error.go b/not_found_error.go
new file mode 100644
index 0000000..2fff6b8
--- /dev/null
+++ b/not_found_error.go
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+)
+
+type NotFoundError struct {
+ *core.APIError
+ Body *ApiErrorResponse
+}
+
+func (n *NotFoundError) UnmarshalJSON(data []byte) error {
+ body := new(ApiErrorResponse)
+ if err := json.Unmarshal(data, &body); err != nil {
+ return err
+ }
+ n.StatusCode = 404
+ n.Body = body
+ return nil
+}
+
+func (n *NotFoundError) MarshalJSON() ([]byte, error) {
+ return json.Marshal(n.Body)
+}
diff --git a/notifications_client.go b/notifications_client.go
new file mode 100644
index 0000000..7c20ec6
--- /dev/null
+++ b/notifications_client.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ context "context"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ http "net/http"
+)
+
+type NotificationsClient interface {
+ ToggleWebhookNotifications(ctx context.Context, request *ToggleWebhookNotificationsRequest) (*ToggleWebhookNotifications, error)
+}
+
+func NewNotificationsClient(opts ...core.ClientOption) NotificationsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return ¬ificationsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type notificationsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (n *notificationsClient) ToggleWebhookNotifications(ctx context.Context, request *ToggleWebhookNotificationsRequest) (*ToggleWebhookNotifications, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if n.baseURL != "" {
+ baseURL = n.baseURL
+ }
+ endpointURL := baseURL + "/" + "notifications/webhooks"
+
+ response := new(ToggleWebhookNotifications)
+ if err := core.DoRequest(
+ ctx,
+ n.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ n.header,
+ nil,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/order_by_direction.go b/order_by_direction.go
new file mode 100644
index 0000000..81d0eac
--- /dev/null
+++ b/order_by_direction.go
@@ -0,0 +1,59 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type OrderByDirection uint8
+
+const (
+ OrderByDirectionAsc OrderByDirection = iota + 1
+ OrderByDirectionDesc
+ OrderByDirectionAsc
+ OrderByDirectionDesc
+)
+
+func (o OrderByDirection) String() string {
+ switch o {
+ default:
+ return strconv.Itoa(int(o))
+ case OrderByDirectionAsc:
+ return "asc"
+ case OrderByDirectionDesc:
+ return "desc"
+ case OrderByDirectionAsc:
+ return "ASC"
+ case OrderByDirectionDesc:
+ return "DESC"
+ }
+}
+
+func (o OrderByDirection) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", o.String())), nil
+}
+
+func (o *OrderByDirection) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "asc":
+ value := OrderByDirectionAsc
+ *o = value
+ case "desc":
+ value := OrderByDirectionDesc
+ *o = value
+ case "ASC":
+ value := OrderByDirectionAsc
+ *o = value
+ case "DESC":
+ value := OrderByDirectionDesc
+ *o = value
+ }
+ return nil
+}
diff --git a/raw_body.go b/raw_body.go
new file mode 100644
index 0000000..bc61ddd
--- /dev/null
+++ b/raw_body.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RawBody struct {
+ Body string `json:"body,omitempty"`
+}
diff --git a/request.go b/request.go
new file mode 100644
index 0000000..1425cfc
--- /dev/null
+++ b/request.go
@@ -0,0 +1,36 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type Request struct {
+ // ID of the request
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // Whether or not the request was verified when received
+ Verified *bool `json:"verified,omitempty"`
+ // ID of the request data
+ OriginalEventDataId *string `json:"original_event_data_id,omitempty"`
+ // Hash of the request data payload used to check for duplicates
+ DuplicateHash *string `json:"duplicate_hash,omitempty"`
+ // Count of duplicate hits found
+ DuplicateHits *int `json:"duplicate_hits,omitempty"`
+ RejectionCause *RequestRejectionCause `json:"rejection_cause,omitempty"`
+ // The priority attributed to the request when received
+ IngestPriority *RequestIngestPriority `json:"ingest_priority,omitempty"`
+ // The time the request was originally received
+ IngestedAt *string `json:"ingested_at,omitempty"`
+ IngestedAtId *string `json:"ingested_at_id,omitempty"`
+ // ID of the associated source
+ SourceId string `json:"source_id,omitempty"`
+ // The count of events created from this request (CLI events not included)
+ EventsCount *int `json:"events_count,omitempty"`
+ // The count of CLI events created from this request
+ CliEventsCount *int `json:"cli_events_count,omitempty"`
+ IgnoredCount *int `json:"ignored_count,omitempty"`
+ Data *RequestData `json:"data,omitempty"`
+ // Date the event was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the event was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/request_data.go b/request_data.go
new file mode 100644
index 0000000..9deeccc
--- /dev/null
+++ b/request_data.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RequestData struct {
+ Path string `json:"path,omitempty"`
+ Query *string `json:"query,omitempty"`
+ ParsedQuery *RequestDataParsedQuery `json:"parsed_query,omitempty"`
+ Headers *RequestDataHeaders `json:"headers,omitempty"`
+ Body *RequestDataBody `json:"body,omitempty"`
+ IsLargePayload *bool `json:"is_large_payload,omitempty"`
+}
diff --git a/request_data_body.go b/request_data_body.go
new file mode 100644
index 0000000..041aac1
--- /dev/null
+++ b/request_data_body.go
@@ -0,0 +1,81 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type RequestDataBody struct {
+ typeName string
+ String string
+ RequestDataBodyRequestDataBody *RequestDataBodyRequestDataBody
+ UnknownList []any
+}
+
+func NewRequestDataBodyFromString(value string) *RequestDataBody {
+ return &RequestDataBody{typeName: "string", String: value}
+}
+
+func NewRequestDataBodyFromRequestDataBodyRequestDataBody(value *RequestDataBodyRequestDataBody) *RequestDataBody {
+ return &RequestDataBody{typeName: "requestDataBodyRequestDataBody", RequestDataBodyRequestDataBody: value}
+}
+
+func NewRequestDataBodyFromUnknownList(value []any) *RequestDataBody {
+ return &RequestDataBody{typeName: "unknownList", UnknownList: value}
+}
+
+func (r *RequestDataBody) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ r.typeName = "string"
+ r.String = valueString
+ return nil
+ }
+ valueRequestDataBodyRequestDataBody := new(RequestDataBodyRequestDataBody)
+ if err := json.Unmarshal(data, &valueRequestDataBodyRequestDataBody); err == nil {
+ r.typeName = "requestDataBodyRequestDataBody"
+ r.RequestDataBodyRequestDataBody = valueRequestDataBodyRequestDataBody
+ return nil
+ }
+ var valueUnknownList []any
+ if err := json.Unmarshal(data, &valueUnknownList); err == nil {
+ r.typeName = "unknownList"
+ r.UnknownList = valueUnknownList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, r)
+}
+
+func (r RequestDataBody) MarshalJSON() ([]byte, error) {
+ switch r.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "string":
+ return json.Marshal(r.String)
+ case "requestDataBodyRequestDataBody":
+ return json.Marshal(r.RequestDataBodyRequestDataBody)
+ case "unknownList":
+ return json.Marshal(r.UnknownList)
+ }
+}
+
+type RequestDataBodyVisitor interface {
+ VisitString(string) error
+ VisitRequestDataBodyRequestDataBody(*RequestDataBodyRequestDataBody) error
+ VisitUnknownList([]any) error
+}
+
+func (r *RequestDataBody) Accept(v RequestDataBodyVisitor) error {
+ switch r.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "string":
+ return v.VisitString(r.String)
+ case "requestDataBodyRequestDataBody":
+ return v.VisitRequestDataBodyRequestDataBody(r.RequestDataBodyRequestDataBody)
+ case "unknownList":
+ return v.VisitUnknownList(r.UnknownList)
+ }
+}
diff --git a/request_data_body_request_data_body.go b/request_data_body_request_data_body.go
new file mode 100644
index 0000000..19f0041
--- /dev/null
+++ b/request_data_body_request_data_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RequestDataBodyRequestDataBody struct {
+}
diff --git a/request_data_headers.go b/request_data_headers.go
new file mode 100644
index 0000000..59ede34
--- /dev/null
+++ b/request_data_headers.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type RequestDataHeaders struct {
+ typeName string
+ String string
+ StringStringOptionalMap map[string]*string
+}
+
+func NewRequestDataHeadersFromString(value string) *RequestDataHeaders {
+ return &RequestDataHeaders{typeName: "string", String: value}
+}
+
+func NewRequestDataHeadersFromStringStringOptionalMap(value map[string]*string) *RequestDataHeaders {
+ return &RequestDataHeaders{typeName: "stringStringOptionalMap", StringStringOptionalMap: value}
+}
+
+func (r *RequestDataHeaders) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ r.typeName = "string"
+ r.String = valueString
+ return nil
+ }
+ var valueStringStringOptionalMap map[string]*string
+ if err := json.Unmarshal(data, &valueStringStringOptionalMap); err == nil {
+ r.typeName = "stringStringOptionalMap"
+ r.StringStringOptionalMap = valueStringStringOptionalMap
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, r)
+}
+
+func (r RequestDataHeaders) MarshalJSON() ([]byte, error) {
+ switch r.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "string":
+ return json.Marshal(r.String)
+ case "stringStringOptionalMap":
+ return json.Marshal(r.StringStringOptionalMap)
+ }
+}
+
+type RequestDataHeadersVisitor interface {
+ VisitString(string) error
+ VisitStringStringOptionalMap(map[string]*string) error
+}
+
+func (r *RequestDataHeaders) Accept(v RequestDataHeadersVisitor) error {
+ switch r.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "string":
+ return v.VisitString(r.String)
+ case "stringStringOptionalMap":
+ return v.VisitStringStringOptionalMap(r.StringStringOptionalMap)
+ }
+}
diff --git a/request_data_parsed_query.go b/request_data_parsed_query.go
new file mode 100644
index 0000000..2c73530
--- /dev/null
+++ b/request_data_parsed_query.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type RequestDataParsedQuery struct {
+ typeName string
+ StringOptional *string
+ RequestDataParsedQueryRequestDataParsedQuery *RequestDataParsedQueryRequestDataParsedQuery
+}
+
+func NewRequestDataParsedQueryFromStringOptional(value *string) *RequestDataParsedQuery {
+ return &RequestDataParsedQuery{typeName: "stringOptional", StringOptional: value}
+}
+
+func NewRequestDataParsedQueryFromRequestDataParsedQueryRequestDataParsedQuery(value *RequestDataParsedQueryRequestDataParsedQuery) *RequestDataParsedQuery {
+ return &RequestDataParsedQuery{typeName: "requestDataParsedQueryRequestDataParsedQuery", RequestDataParsedQueryRequestDataParsedQuery: value}
+}
+
+func (r *RequestDataParsedQuery) UnmarshalJSON(data []byte) error {
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ r.typeName = "stringOptional"
+ r.StringOptional = valueStringOptional
+ return nil
+ }
+ valueRequestDataParsedQueryRequestDataParsedQuery := new(RequestDataParsedQueryRequestDataParsedQuery)
+ if err := json.Unmarshal(data, &valueRequestDataParsedQueryRequestDataParsedQuery); err == nil {
+ r.typeName = "requestDataParsedQueryRequestDataParsedQuery"
+ r.RequestDataParsedQueryRequestDataParsedQuery = valueRequestDataParsedQueryRequestDataParsedQuery
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, r)
+}
+
+func (r RequestDataParsedQuery) MarshalJSON() ([]byte, error) {
+ switch r.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "stringOptional":
+ return json.Marshal(r.StringOptional)
+ case "requestDataParsedQueryRequestDataParsedQuery":
+ return json.Marshal(r.RequestDataParsedQueryRequestDataParsedQuery)
+ }
+}
+
+type RequestDataParsedQueryVisitor interface {
+ VisitStringOptional(*string) error
+ VisitRequestDataParsedQueryRequestDataParsedQuery(*RequestDataParsedQueryRequestDataParsedQuery) error
+}
+
+func (r *RequestDataParsedQuery) Accept(v RequestDataParsedQueryVisitor) error {
+ switch r.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "stringOptional":
+ return v.VisitStringOptional(r.StringOptional)
+ case "requestDataParsedQueryRequestDataParsedQuery":
+ return v.VisitRequestDataParsedQueryRequestDataParsedQuery(r.RequestDataParsedQueryRequestDataParsedQuery)
+ }
+}
diff --git a/request_data_parsed_query_request_data_parsed_query.go b/request_data_parsed_query_request_data_parsed_query.go
new file mode 100644
index 0000000..5bd03d1
--- /dev/null
+++ b/request_data_parsed_query_request_data_parsed_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RequestDataParsedQueryRequestDataParsedQuery struct {
+}
diff --git a/request_ingest_priority.go b/request_ingest_priority.go
new file mode 100644
index 0000000..cbfcdf2
--- /dev/null
+++ b/request_ingest_priority.go
@@ -0,0 +1,48 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// The priority attributed to the request when received
+type RequestIngestPriority uint8
+
+const (
+ RequestIngestPriorityNormal RequestIngestPriority = iota + 1
+ RequestIngestPriorityLow
+)
+
+func (r RequestIngestPriority) String() string {
+ switch r {
+ default:
+ return strconv.Itoa(int(r))
+ case RequestIngestPriorityNormal:
+ return "NORMAL"
+ case RequestIngestPriorityLow:
+ return "LOW"
+ }
+}
+
+func (r RequestIngestPriority) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", r.String())), nil
+}
+
+func (r *RequestIngestPriority) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "NORMAL":
+ value := RequestIngestPriorityNormal
+ *r = value
+ case "LOW":
+ value := RequestIngestPriorityLow
+ *r = value
+ }
+ return nil
+}
diff --git a/request_paginated_result.go b/request_paginated_result.go
new file mode 100644
index 0000000..d1a982b
--- /dev/null
+++ b/request_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RequestPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Request `json:"models,omitempty"`
+}
diff --git a/request_rejection_cause.go b/request_rejection_cause.go
new file mode 100644
index 0000000..0100f85
--- /dev/null
+++ b/request_rejection_cause.go
@@ -0,0 +1,89 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type RequestRejectionCause uint8
+
+const (
+ RequestRejectionCauseSourceArchived RequestRejectionCause = iota + 1
+ RequestRejectionCauseNoWebhook
+ RequestRejectionCauseVerificationFailed
+ RequestRejectionCauseUnsupportedHttpMethod
+ RequestRejectionCauseUnsupportedContentType
+ RequestRejectionCauseUnparsableJson
+ RequestRejectionCausePayloadTooLarge
+ RequestRejectionCauseIngestionFatal
+ RequestRejectionCauseUnknown
+)
+
+func (r RequestRejectionCause) String() string {
+ switch r {
+ default:
+ return strconv.Itoa(int(r))
+ case RequestRejectionCauseSourceArchived:
+ return "SOURCE_ARCHIVED"
+ case RequestRejectionCauseNoWebhook:
+ return "NO_WEBHOOK"
+ case RequestRejectionCauseVerificationFailed:
+ return "VERIFICATION_FAILED"
+ case RequestRejectionCauseUnsupportedHttpMethod:
+ return "UNSUPPORTED_HTTP_METHOD"
+ case RequestRejectionCauseUnsupportedContentType:
+ return "UNSUPPORTED_CONTENT_TYPE"
+ case RequestRejectionCauseUnparsableJson:
+ return "UNPARSABLE_JSON"
+ case RequestRejectionCausePayloadTooLarge:
+ return "PAYLOAD_TOO_LARGE"
+ case RequestRejectionCauseIngestionFatal:
+ return "INGESTION_FATAL"
+ case RequestRejectionCauseUnknown:
+ return "UNKNOWN"
+ }
+}
+
+func (r RequestRejectionCause) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", r.String())), nil
+}
+
+func (r *RequestRejectionCause) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "SOURCE_ARCHIVED":
+ value := RequestRejectionCauseSourceArchived
+ *r = value
+ case "NO_WEBHOOK":
+ value := RequestRejectionCauseNoWebhook
+ *r = value
+ case "VERIFICATION_FAILED":
+ value := RequestRejectionCauseVerificationFailed
+ *r = value
+ case "UNSUPPORTED_HTTP_METHOD":
+ value := RequestRejectionCauseUnsupportedHttpMethod
+ *r = value
+ case "UNSUPPORTED_CONTENT_TYPE":
+ value := RequestRejectionCauseUnsupportedContentType
+ *r = value
+ case "UNPARSABLE_JSON":
+ value := RequestRejectionCauseUnparsableJson
+ *r = value
+ case "PAYLOAD_TOO_LARGE":
+ value := RequestRejectionCausePayloadTooLarge
+ *r = value
+ case "INGESTION_FATAL":
+ value := RequestRejectionCauseIngestionFatal
+ *r = value
+ case "UNKNOWN":
+ value := RequestRejectionCauseUnknown
+ *r = value
+ }
+ return nil
+}
diff --git a/requests_client.go b/requests_client.go
new file mode 100644
index 0000000..499cbb8
--- /dev/null
+++ b/requests_client.go
@@ -0,0 +1,566 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type RequestsClient interface {
+ GetRequests(ctx context.Context, request *GetRequestsRequest) (*RequestPaginatedResult, error)
+ GetRequest(ctx context.Context, id string) (*Request, error)
+ GetRequestRawBody(ctx context.Context, id string) (*RawBody, error)
+ RetryRequest(ctx context.Context, id string, request *RetryRequestRequest) (*RetryRequest, error)
+ GetRequestEvents(ctx context.Context, id string, request *GetRequestEventsRequest) (*EventPaginatedResult, error)
+ GetRequestIgnoredEvents(ctx context.Context, id string, request *GetRequestIgnoredEventsRequest) (*IgnoredEventPaginatedResult, error)
+}
+
+func NewRequestsClient(opts ...core.ClientOption) RequestsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &requestsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type requestsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (r *requestsClient) GetRequests(ctx context.Context, request *GetRequestsRequest) (*RequestPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := baseURL + "/" + "requests"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var statusDefaultValue *GetRequestsRequestStatus
+ if request.Status != statusDefaultValue {
+ queryParams.Add("status", fmt.Sprintf("%v", *request.Status))
+ }
+ var rejectionCauseDefaultValue *RequestRejectionCause
+ if request.RejectionCause != rejectionCauseDefaultValue {
+ queryParams.Add("rejection_cause", fmt.Sprintf("%v", *request.RejectionCause))
+ }
+ var ignoredCountDefaultValue *int
+ if request.IgnoredCount != ignoredCountDefaultValue {
+ queryParams.Add("ignored_count", fmt.Sprintf("%v", *request.IgnoredCount))
+ }
+ var eventsCountDefaultValue *int
+ if request.EventsCount != eventsCountDefaultValue {
+ queryParams.Add("events_count", fmt.Sprintf("%v", *request.EventsCount))
+ }
+ var sourceIdDefaultValue *string
+ if request.SourceId != sourceIdDefaultValue {
+ queryParams.Add("source_id", fmt.Sprintf("%v", *request.SourceId))
+ }
+ var verifiedDefaultValue *bool
+ if request.Verified != verifiedDefaultValue {
+ queryParams.Add("verified", fmt.Sprintf("%v", *request.Verified))
+ }
+ var headersDefaultValue *string
+ if request.Headers != headersDefaultValue {
+ queryParams.Add("headers", fmt.Sprintf("%v", *request.Headers))
+ }
+ var bodyDefaultValue *string
+ if request.Body != bodyDefaultValue {
+ queryParams.Add("body", fmt.Sprintf("%v", *request.Body))
+ }
+ var parsedQueryDefaultValue *string
+ if request.ParsedQuery != parsedQueryDefaultValue {
+ queryParams.Add("parsed_query", fmt.Sprintf("%v", *request.ParsedQuery))
+ }
+ var pathDefaultValue *string
+ if request.Path != pathDefaultValue {
+ queryParams.Add("path", fmt.Sprintf("%v", *request.Path))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var ingestedAtDefaultValue *string
+ if request.IngestedAt != ingestedAtDefaultValue {
+ queryParams.Add("ingested_at", fmt.Sprintf("%v", *request.IngestedAt))
+ }
+ var bulkRetryIdDefaultValue *string
+ if request.BulkRetryId != bulkRetryIdDefaultValue {
+ queryParams.Add("bulk_retry_id", fmt.Sprintf("%v", *request.BulkRetryId))
+ }
+ var includeDefaultValue *string
+ if request.Include != includeDefaultValue {
+ queryParams.Add("include", fmt.Sprintf("%v", *request.Include))
+ }
+ var orderByDefaultValue *GetRequestsRequestOrderByGetRequestsRequestOrderBy
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetRequestsRequestDirGetRequestsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(RequestPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *requestsClient) GetRequest(ctx context.Context, id string) (*Request, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"requests/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Request)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *requestsClient) GetRequestRawBody(ctx context.Context, id string) (*RawBody, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"requests/%v/raw_body", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(RawBody)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *requestsClient) RetryRequest(ctx context.Context, id string, request *RetryRequestRequest) (*RetryRequest, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"requests/%v/retry", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(RetryRequest)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *requestsClient) GetRequestEvents(ctx context.Context, id string, request *GetRequestEventsRequest) (*EventPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"requests/%v/events", id)
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var statusDefaultValue *EventStatus
+ if request.Status != statusDefaultValue {
+ queryParams.Add("status", fmt.Sprintf("%v", *request.Status))
+ }
+ var issueIdDefaultValue *string
+ if request.IssueId != issueIdDefaultValue {
+ queryParams.Add("issue_id", fmt.Sprintf("%v", *request.IssueId))
+ }
+ var webhookIdDefaultValue *string
+ if request.WebhookId != webhookIdDefaultValue {
+ queryParams.Add("webhook_id", fmt.Sprintf("%v", *request.WebhookId))
+ }
+ var destinationIdDefaultValue *string
+ if request.DestinationId != destinationIdDefaultValue {
+ queryParams.Add("destination_id", fmt.Sprintf("%v", *request.DestinationId))
+ }
+ var sourceIdDefaultValue *string
+ if request.SourceId != sourceIdDefaultValue {
+ queryParams.Add("source_id", fmt.Sprintf("%v", *request.SourceId))
+ }
+ var attemptsDefaultValue *int
+ if request.Attempts != attemptsDefaultValue {
+ queryParams.Add("attempts", fmt.Sprintf("%v", *request.Attempts))
+ }
+ var responseStatusDefaultValue *int
+ if request.ResponseStatus != responseStatusDefaultValue {
+ queryParams.Add("response_status", fmt.Sprintf("%v", *request.ResponseStatus))
+ }
+ var successfulAtDefaultValue *string
+ if request.SuccessfulAt != successfulAtDefaultValue {
+ queryParams.Add("successful_at", fmt.Sprintf("%v", *request.SuccessfulAt))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var errorCodeDefaultValue *string
+ if request.ErrorCode != errorCodeDefaultValue {
+ queryParams.Add("error_code", fmt.Sprintf("%v", *request.ErrorCode))
+ }
+ var cliIdDefaultValue *string
+ if request.CliId != cliIdDefaultValue {
+ queryParams.Add("cli_id", fmt.Sprintf("%v", *request.CliId))
+ }
+ var cliUserIdDefaultValue *string
+ if request.CliUserId != cliUserIdDefaultValue {
+ queryParams.Add("cli_user_id", fmt.Sprintf("%v", *request.CliUserId))
+ }
+ var lastAttemptAtDefaultValue *string
+ if request.LastAttemptAt != lastAttemptAtDefaultValue {
+ queryParams.Add("last_attempt_at", fmt.Sprintf("%v", *request.LastAttemptAt))
+ }
+ var eventDataIdDefaultValue *string
+ if request.EventDataId != eventDataIdDefaultValue {
+ queryParams.Add("event_data_id", fmt.Sprintf("%v", *request.EventDataId))
+ }
+ var headersDefaultValue *string
+ if request.Headers != headersDefaultValue {
+ queryParams.Add("headers", fmt.Sprintf("%v", *request.Headers))
+ }
+ var bodyDefaultValue *string
+ if request.Body != bodyDefaultValue {
+ queryParams.Add("body", fmt.Sprintf("%v", *request.Body))
+ }
+ var parsedQueryDefaultValue *string
+ if request.ParsedQuery != parsedQueryDefaultValue {
+ queryParams.Add("parsed_query", fmt.Sprintf("%v", *request.ParsedQuery))
+ }
+ var bulkRetryIdDefaultValue *string
+ if request.BulkRetryId != bulkRetryIdDefaultValue {
+ queryParams.Add("bulk_retry_id", fmt.Sprintf("%v", *request.BulkRetryId))
+ }
+ var pathDefaultValue *string
+ if request.Path != pathDefaultValue {
+ queryParams.Add("path", fmt.Sprintf("%v", *request.Path))
+ }
+ var includeDefaultValue *string
+ if request.Include != includeDefaultValue {
+ queryParams.Add("include", fmt.Sprintf("%v", *request.Include))
+ }
+ var orderByDefaultValue *GetRequestEventsRequestOrderByGetRequestEventsRequestOrderBy
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetRequestEventsRequestDirGetRequestEventsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(EventPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *requestsClient) GetRequestIgnoredEvents(ctx context.Context, id string, request *GetRequestIgnoredEventsRequest) (*IgnoredEventPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"requests/%v/ignored_events", id)
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetRequestIgnoredEventsRequestDirGetRequestIgnoredEventsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(IgnoredEventPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/retried_event.go b/retried_event.go
new file mode 100644
index 0000000..06ad48b
--- /dev/null
+++ b/retried_event.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RetriedEvent struct {
+ Event *Event `json:"event,omitempty"`
+ Attempt *EventAttempt `json:"attempt,omitempty"`
+}
diff --git a/retry_request.go b/retry_request.go
new file mode 100644
index 0000000..1848d9b
--- /dev/null
+++ b/retry_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RetryRequest struct {
+ Request *Request `json:"request,omitempty"`
+ Events *[]*Event `json:"events,omitempty"`
+}
diff --git a/retry_request_request.go b/retry_request_request.go
new file mode 100644
index 0000000..46d0384
--- /dev/null
+++ b/retry_request_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RetryRequestRequest struct {
+ // Subset of webhook_ids to re-run the event logic on. Useful to retry only specific ignored_events
+ WebhookIds []string `json:"webhook_ids,omitempty"`
+}
diff --git a/retry_rule.go b/retry_rule.go
new file mode 100644
index 0000000..bb8c2d6
--- /dev/null
+++ b/retry_rule.go
@@ -0,0 +1,43 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+type RetryRule struct {
+ Strategy RetryStrategy `json:"strategy,omitempty"`
+ // Time in MS between each retry
+ Interval *int `json:"interval,omitempty"`
+ // Maximum number of retries to attempt
+ Count *int `json:"count,omitempty"`
+ type_ string
+}
+
+func (r *RetryRule) Type() string {
+ return r.type_
+}
+
+func (r *RetryRule) UnmarshalJSON(data []byte) error {
+ type unmarshaler RetryRule
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *r = RetryRule(value)
+ r.type_ = "retry"
+ return nil
+}
+
+func (r *RetryRule) MarshalJSON() ([]byte, error) {
+ type embed RetryRule
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*r),
+ Type: "retry",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/retry_strategy.go b/retry_strategy.go
new file mode 100644
index 0000000..2f32947
--- /dev/null
+++ b/retry_strategy.go
@@ -0,0 +1,48 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Algorithm to use when calculating delay between retries
+type RetryStrategy uint8
+
+const (
+ RetryStrategyLinear RetryStrategy = iota + 1
+ RetryStrategyExponential
+)
+
+func (r RetryStrategy) String() string {
+ switch r {
+ default:
+ return strconv.Itoa(int(r))
+ case RetryStrategyLinear:
+ return "linear"
+ case RetryStrategyExponential:
+ return "exponential"
+ }
+}
+
+func (r RetryStrategy) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", r.String())), nil
+}
+
+func (r *RetryStrategy) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "linear":
+ value := RetryStrategyLinear
+ *r = value
+ case "exponential":
+ value := RetryStrategyExponential
+ *r = value
+ }
+ return nil
+}
diff --git a/rule.go b/rule.go
new file mode 100644
index 0000000..e4753d7
--- /dev/null
+++ b/rule.go
@@ -0,0 +1,113 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type Rule struct {
+ typeName string
+ RetryRule *RetryRule
+ AlertRule *AlertRule
+ FilterRule *FilterRule
+ TransformRule *TransformRule
+ DelayRule *DelayRule
+}
+
+func NewRuleFromRetryRule(value *RetryRule) *Rule {
+ return &Rule{typeName: "retryRule", RetryRule: value}
+}
+
+func NewRuleFromAlertRule(value *AlertRule) *Rule {
+ return &Rule{typeName: "alertRule", AlertRule: value}
+}
+
+func NewRuleFromFilterRule(value *FilterRule) *Rule {
+ return &Rule{typeName: "filterRule", FilterRule: value}
+}
+
+func NewRuleFromTransformRule(value *TransformRule) *Rule {
+ return &Rule{typeName: "transformRule", TransformRule: value}
+}
+
+func NewRuleFromDelayRule(value *DelayRule) *Rule {
+ return &Rule{typeName: "delayRule", DelayRule: value}
+}
+
+func (r *Rule) UnmarshalJSON(data []byte) error {
+ valueRetryRule := new(RetryRule)
+ if err := json.Unmarshal(data, &valueRetryRule); err == nil {
+ r.typeName = "retryRule"
+ r.RetryRule = valueRetryRule
+ return nil
+ }
+ valueAlertRule := new(AlertRule)
+ if err := json.Unmarshal(data, &valueAlertRule); err == nil {
+ r.typeName = "alertRule"
+ r.AlertRule = valueAlertRule
+ return nil
+ }
+ valueFilterRule := new(FilterRule)
+ if err := json.Unmarshal(data, &valueFilterRule); err == nil {
+ r.typeName = "filterRule"
+ r.FilterRule = valueFilterRule
+ return nil
+ }
+ valueTransformRule := new(TransformRule)
+ if err := json.Unmarshal(data, &valueTransformRule); err == nil {
+ r.typeName = "transformRule"
+ r.TransformRule = valueTransformRule
+ return nil
+ }
+ valueDelayRule := new(DelayRule)
+ if err := json.Unmarshal(data, &valueDelayRule); err == nil {
+ r.typeName = "delayRule"
+ r.DelayRule = valueDelayRule
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, r)
+}
+
+func (r Rule) MarshalJSON() ([]byte, error) {
+ switch r.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "retryRule":
+ return json.Marshal(r.RetryRule)
+ case "alertRule":
+ return json.Marshal(r.AlertRule)
+ case "filterRule":
+ return json.Marshal(r.FilterRule)
+ case "transformRule":
+ return json.Marshal(r.TransformRule)
+ case "delayRule":
+ return json.Marshal(r.DelayRule)
+ }
+}
+
+type RuleVisitor interface {
+ VisitRetryRule(*RetryRule) error
+ VisitAlertRule(*AlertRule) error
+ VisitFilterRule(*FilterRule) error
+ VisitTransformRule(*TransformRule) error
+ VisitDelayRule(*DelayRule) error
+}
+
+func (r *Rule) Accept(v RuleVisitor) error {
+ switch r.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", r.typeName, r)
+ case "retryRule":
+ return v.VisitRetryRule(r.RetryRule)
+ case "alertRule":
+ return v.VisitAlertRule(r.AlertRule)
+ case "filterRule":
+ return v.VisitFilterRule(r.FilterRule)
+ case "transformRule":
+ return v.VisitTransformRule(r.TransformRule)
+ case "delayRule":
+ return v.VisitDelayRule(r.DelayRule)
+ }
+}
diff --git a/ruleset.go b/ruleset.go
new file mode 100644
index 0000000..4a967af
--- /dev/null
+++ b/ruleset.go
@@ -0,0 +1,23 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Associated [Ruleset](#ruleset-object) object
+type Ruleset struct {
+ // ID of the ruleset
+ Id string `json:"id,omitempty"`
+ // A unique name for the ruleset
+ Name string `json:"name,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // Array of rules to apply
+ Rules []*Rule `json:"rules,omitempty"`
+ // Default ruleset of Workspace
+ IsTeamDefault bool `json:"is_team_default,omitempty"`
+ // Date the ruleset was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ // Date the ruleset was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the ruleset was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/ruleset_paginated_result.go b/ruleset_paginated_result.go
new file mode 100644
index 0000000..5373f7f
--- /dev/null
+++ b/ruleset_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type RulesetPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Ruleset `json:"models,omitempty"`
+}
diff --git a/rulesets_client.go b/rulesets_client.go
new file mode 100644
index 0000000..0758a85
--- /dev/null
+++ b/rulesets_client.go
@@ -0,0 +1,413 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type RulesetsClient interface {
+ GetRulesets(ctx context.Context, request *GetRulesetsRequest) (*RulesetPaginatedResult, error)
+ CreateRuleset(ctx context.Context, request *CreateRulesetRequest) (*Ruleset, error)
+ UpsertRuleset(ctx context.Context, request *UpsertRulesetRequest) (*Ruleset, error)
+ GetRuleset(ctx context.Context, id string) (*Ruleset, error)
+ UpdateRuleset(ctx context.Context, id string, request *UpdateRulesetRequest) (*Ruleset, error)
+ ArchiveRuleset(ctx context.Context, id string) (*Ruleset, error)
+ UnarchiveRuleset(ctx context.Context, id string) (*Ruleset, error)
+}
+
+func NewRulesetsClient(opts ...core.ClientOption) RulesetsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &rulesetsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type rulesetsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (r *rulesetsClient) GetRulesets(ctx context.Context, request *GetRulesetsRequest) (*RulesetPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := baseURL + "/" + "rulesets"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var archivedDefaultValue *bool
+ if request.Archived != archivedDefaultValue {
+ queryParams.Add("archived", fmt.Sprintf("%v", *request.Archived))
+ }
+ var archivedAtDefaultValue *string
+ if request.ArchivedAt != archivedAtDefaultValue {
+ queryParams.Add("archived_at", fmt.Sprintf("%v", *request.ArchivedAt))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetRulesetsRequestDirGetRulesetsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(RulesetPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *rulesetsClient) CreateRuleset(ctx context.Context, request *CreateRulesetRequest) (*Ruleset, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := baseURL + "/" + "rulesets"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response Ruleset
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *rulesetsClient) UpsertRuleset(ctx context.Context, request *UpsertRulesetRequest) (*Ruleset, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := baseURL + "/" + "rulesets"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response Ruleset
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *rulesetsClient) GetRuleset(ctx context.Context, id string) (*Ruleset, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"rulesets/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response Ruleset
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *rulesetsClient) UpdateRuleset(ctx context.Context, id string, request *UpdateRulesetRequest) (*Ruleset, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"rulesets/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response Ruleset
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *rulesetsClient) ArchiveRuleset(ctx context.Context, id string) (*Ruleset, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"rulesets/%v/archive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response Ruleset
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (r *rulesetsClient) UnarchiveRuleset(ctx context.Context, id string) (*Ruleset, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if r.baseURL != "" {
+ baseURL = r.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"rulesets/%v/unarchive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ var response Ruleset
+ if err := core.DoRequest(
+ ctx,
+ r.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ r.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/seek_pagination.go b/seek_pagination.go
new file mode 100644
index 0000000..c7dc3bc
--- /dev/null
+++ b/seek_pagination.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type SeekPagination struct {
+ OrderBy *SeekPaginationOrderBy `json:"order_by,omitempty"`
+ Dir *SeekPaginationDir `json:"dir,omitempty"`
+ Limit *int `json:"limit,omitempty"`
+ Prev *string `json:"prev,omitempty"`
+ Next *string `json:"next,omitempty"`
+}
diff --git a/seek_pagination_dir.go b/seek_pagination_dir.go
new file mode 100644
index 0000000..2833e52
--- /dev/null
+++ b/seek_pagination_dir.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type SeekPaginationDir struct {
+ typeName string
+ OrderByDirection OrderByDirection
+ OrderByDirectionList []OrderByDirection
+}
+
+func NewSeekPaginationDirFromOrderByDirection(value OrderByDirection) *SeekPaginationDir {
+ return &SeekPaginationDir{typeName: "orderByDirection", OrderByDirection: value}
+}
+
+func NewSeekPaginationDirFromOrderByDirectionList(value []OrderByDirection) *SeekPaginationDir {
+ return &SeekPaginationDir{typeName: "orderByDirectionList", OrderByDirectionList: value}
+}
+
+func (s *SeekPaginationDir) UnmarshalJSON(data []byte) error {
+ var valueOrderByDirection OrderByDirection
+ if err := json.Unmarshal(data, &valueOrderByDirection); err == nil {
+ s.typeName = "orderByDirection"
+ s.OrderByDirection = valueOrderByDirection
+ return nil
+ }
+ var valueOrderByDirectionList []OrderByDirection
+ if err := json.Unmarshal(data, &valueOrderByDirectionList); err == nil {
+ s.typeName = "orderByDirectionList"
+ s.OrderByDirectionList = valueOrderByDirectionList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, s)
+}
+
+func (s SeekPaginationDir) MarshalJSON() ([]byte, error) {
+ switch s.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "orderByDirection":
+ return json.Marshal(s.OrderByDirection)
+ case "orderByDirectionList":
+ return json.Marshal(s.OrderByDirectionList)
+ }
+}
+
+type SeekPaginationDirVisitor interface {
+ VisitOrderByDirection(OrderByDirection) error
+ VisitOrderByDirectionList([]OrderByDirection) error
+}
+
+func (s *SeekPaginationDir) Accept(v SeekPaginationDirVisitor) error {
+ switch s.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "orderByDirection":
+ return v.VisitOrderByDirection(s.OrderByDirection)
+ case "orderByDirectionList":
+ return v.VisitOrderByDirectionList(s.OrderByDirectionList)
+ }
+}
diff --git a/seek_pagination_order_by.go b/seek_pagination_order_by.go
new file mode 100644
index 0000000..81a2d07
--- /dev/null
+++ b/seek_pagination_order_by.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type SeekPaginationOrderBy struct {
+ typeName string
+ String string
+ StringList []string
+}
+
+func NewSeekPaginationOrderByFromString(value string) *SeekPaginationOrderBy {
+ return &SeekPaginationOrderBy{typeName: "string", String: value}
+}
+
+func NewSeekPaginationOrderByFromStringList(value []string) *SeekPaginationOrderBy {
+ return &SeekPaginationOrderBy{typeName: "stringList", StringList: value}
+}
+
+func (s *SeekPaginationOrderBy) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ s.typeName = "string"
+ s.String = valueString
+ return nil
+ }
+ var valueStringList []string
+ if err := json.Unmarshal(data, &valueStringList); err == nil {
+ s.typeName = "stringList"
+ s.StringList = valueStringList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, s)
+}
+
+func (s SeekPaginationOrderBy) MarshalJSON() ([]byte, error) {
+ switch s.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "string":
+ return json.Marshal(s.String)
+ case "stringList":
+ return json.Marshal(s.StringList)
+ }
+}
+
+type SeekPaginationOrderByVisitor interface {
+ VisitString(string) error
+ VisitStringList([]string) error
+}
+
+func (s *SeekPaginationOrderBy) Accept(v SeekPaginationOrderByVisitor) error {
+ switch s.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "string":
+ return v.VisitString(s.String)
+ case "stringList":
+ return v.VisitStringList(s.StringList)
+ }
+}
diff --git a/shopify_integration_configs.go b/shopify_integration_configs.go
new file mode 100644
index 0000000..d0ee9c7
--- /dev/null
+++ b/shopify_integration_configs.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ShopifyIntegrationConfigs struct {
+ WebhookSecretKey string `json:"webhook_secret_key,omitempty"`
+ RateLimitPeriod *ShopifyIntegrationConfigsRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ RateLimit *float64 `json:"rate_limit,omitempty"`
+ ApiKey *string `json:"api_key,omitempty"`
+ ApiSecret *string `json:"api_secret,omitempty"`
+ Shop *string `json:"shop,omitempty"`
+}
diff --git a/shopify_integration_configs_rate_limit_period.go b/shopify_integration_configs_rate_limit_period.go
new file mode 100644
index 0000000..cf8ed92
--- /dev/null
+++ b/shopify_integration_configs_rate_limit_period.go
@@ -0,0 +1,47 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+type ShopifyIntegrationConfigsRateLimitPeriod uint8
+
+const (
+ ShopifyIntegrationConfigsRateLimitPeriodMinute ShopifyIntegrationConfigsRateLimitPeriod = iota + 1
+ ShopifyIntegrationConfigsRateLimitPeriodSecond
+)
+
+func (s ShopifyIntegrationConfigsRateLimitPeriod) String() string {
+ switch s {
+ default:
+ return strconv.Itoa(int(s))
+ case ShopifyIntegrationConfigsRateLimitPeriodMinute:
+ return "minute"
+ case ShopifyIntegrationConfigsRateLimitPeriodSecond:
+ return "second"
+ }
+}
+
+func (s ShopifyIntegrationConfigsRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", s.String())), nil
+}
+
+func (s *ShopifyIntegrationConfigsRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "minute":
+ value := ShopifyIntegrationConfigsRateLimitPeriodMinute
+ *s = value
+ case "second":
+ value := ShopifyIntegrationConfigsRateLimitPeriodSecond
+ *s = value
+ }
+ return nil
+}
diff --git a/short_event_data.go b/short_event_data.go
new file mode 100644
index 0000000..a9361e3
--- /dev/null
+++ b/short_event_data.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ShortEventData struct {
+ Path string `json:"path,omitempty"`
+ Query *string `json:"query,omitempty"`
+ ParsedQuery *ShortEventDataParsedQuery `json:"parsed_query,omitempty"`
+ Headers *ShortEventDataHeaders `json:"headers,omitempty"`
+ Body *ShortEventDataBody `json:"body,omitempty"`
+ IsLargePayload *bool `json:"is_large_payload,omitempty"`
+}
diff --git a/short_event_data_body.go b/short_event_data_body.go
new file mode 100644
index 0000000..40d2d35
--- /dev/null
+++ b/short_event_data_body.go
@@ -0,0 +1,81 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type ShortEventDataBody struct {
+ typeName string
+ String string
+ ShortEventDataBodyShortEventDataBody *ShortEventDataBodyShortEventDataBody
+ UnknownList []any
+}
+
+func NewShortEventDataBodyFromString(value string) *ShortEventDataBody {
+ return &ShortEventDataBody{typeName: "string", String: value}
+}
+
+func NewShortEventDataBodyFromShortEventDataBodyShortEventDataBody(value *ShortEventDataBodyShortEventDataBody) *ShortEventDataBody {
+ return &ShortEventDataBody{typeName: "shortEventDataBodyShortEventDataBody", ShortEventDataBodyShortEventDataBody: value}
+}
+
+func NewShortEventDataBodyFromUnknownList(value []any) *ShortEventDataBody {
+ return &ShortEventDataBody{typeName: "unknownList", UnknownList: value}
+}
+
+func (s *ShortEventDataBody) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ s.typeName = "string"
+ s.String = valueString
+ return nil
+ }
+ valueShortEventDataBodyShortEventDataBody := new(ShortEventDataBodyShortEventDataBody)
+ if err := json.Unmarshal(data, &valueShortEventDataBodyShortEventDataBody); err == nil {
+ s.typeName = "shortEventDataBodyShortEventDataBody"
+ s.ShortEventDataBodyShortEventDataBody = valueShortEventDataBodyShortEventDataBody
+ return nil
+ }
+ var valueUnknownList []any
+ if err := json.Unmarshal(data, &valueUnknownList); err == nil {
+ s.typeName = "unknownList"
+ s.UnknownList = valueUnknownList
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, s)
+}
+
+func (s ShortEventDataBody) MarshalJSON() ([]byte, error) {
+ switch s.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "string":
+ return json.Marshal(s.String)
+ case "shortEventDataBodyShortEventDataBody":
+ return json.Marshal(s.ShortEventDataBodyShortEventDataBody)
+ case "unknownList":
+ return json.Marshal(s.UnknownList)
+ }
+}
+
+type ShortEventDataBodyVisitor interface {
+ VisitString(string) error
+ VisitShortEventDataBodyShortEventDataBody(*ShortEventDataBodyShortEventDataBody) error
+ VisitUnknownList([]any) error
+}
+
+func (s *ShortEventDataBody) Accept(v ShortEventDataBodyVisitor) error {
+ switch s.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "string":
+ return v.VisitString(s.String)
+ case "shortEventDataBodyShortEventDataBody":
+ return v.VisitShortEventDataBodyShortEventDataBody(s.ShortEventDataBodyShortEventDataBody)
+ case "unknownList":
+ return v.VisitUnknownList(s.UnknownList)
+ }
+}
diff --git a/short_event_data_body_short_event_data_body.go b/short_event_data_body_short_event_data_body.go
new file mode 100644
index 0000000..8d7f00a
--- /dev/null
+++ b/short_event_data_body_short_event_data_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ShortEventDataBodyShortEventDataBody struct {
+}
diff --git a/short_event_data_headers.go b/short_event_data_headers.go
new file mode 100644
index 0000000..8c816bd
--- /dev/null
+++ b/short_event_data_headers.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type ShortEventDataHeaders struct {
+ typeName string
+ String string
+ StringStringOptionalMap map[string]*string
+}
+
+func NewShortEventDataHeadersFromString(value string) *ShortEventDataHeaders {
+ return &ShortEventDataHeaders{typeName: "string", String: value}
+}
+
+func NewShortEventDataHeadersFromStringStringOptionalMap(value map[string]*string) *ShortEventDataHeaders {
+ return &ShortEventDataHeaders{typeName: "stringStringOptionalMap", StringStringOptionalMap: value}
+}
+
+func (s *ShortEventDataHeaders) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ s.typeName = "string"
+ s.String = valueString
+ return nil
+ }
+ var valueStringStringOptionalMap map[string]*string
+ if err := json.Unmarshal(data, &valueStringStringOptionalMap); err == nil {
+ s.typeName = "stringStringOptionalMap"
+ s.StringStringOptionalMap = valueStringStringOptionalMap
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, s)
+}
+
+func (s ShortEventDataHeaders) MarshalJSON() ([]byte, error) {
+ switch s.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "string":
+ return json.Marshal(s.String)
+ case "stringStringOptionalMap":
+ return json.Marshal(s.StringStringOptionalMap)
+ }
+}
+
+type ShortEventDataHeadersVisitor interface {
+ VisitString(string) error
+ VisitStringStringOptionalMap(map[string]*string) error
+}
+
+func (s *ShortEventDataHeaders) Accept(v ShortEventDataHeadersVisitor) error {
+ switch s.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "string":
+ return v.VisitString(s.String)
+ case "stringStringOptionalMap":
+ return v.VisitStringStringOptionalMap(s.StringStringOptionalMap)
+ }
+}
diff --git a/short_event_data_parsed_query.go b/short_event_data_parsed_query.go
new file mode 100644
index 0000000..61642a6
--- /dev/null
+++ b/short_event_data_parsed_query.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type ShortEventDataParsedQuery struct {
+ typeName string
+ StringOptional *string
+ ShortEventDataParsedQueryShortEventDataParsedQuery *ShortEventDataParsedQueryShortEventDataParsedQuery
+}
+
+func NewShortEventDataParsedQueryFromStringOptional(value *string) *ShortEventDataParsedQuery {
+ return &ShortEventDataParsedQuery{typeName: "stringOptional", StringOptional: value}
+}
+
+func NewShortEventDataParsedQueryFromShortEventDataParsedQueryShortEventDataParsedQuery(value *ShortEventDataParsedQueryShortEventDataParsedQuery) *ShortEventDataParsedQuery {
+ return &ShortEventDataParsedQuery{typeName: "shortEventDataParsedQueryShortEventDataParsedQuery", ShortEventDataParsedQueryShortEventDataParsedQuery: value}
+}
+
+func (s *ShortEventDataParsedQuery) UnmarshalJSON(data []byte) error {
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ s.typeName = "stringOptional"
+ s.StringOptional = valueStringOptional
+ return nil
+ }
+ valueShortEventDataParsedQueryShortEventDataParsedQuery := new(ShortEventDataParsedQueryShortEventDataParsedQuery)
+ if err := json.Unmarshal(data, &valueShortEventDataParsedQueryShortEventDataParsedQuery); err == nil {
+ s.typeName = "shortEventDataParsedQueryShortEventDataParsedQuery"
+ s.ShortEventDataParsedQueryShortEventDataParsedQuery = valueShortEventDataParsedQueryShortEventDataParsedQuery
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, s)
+}
+
+func (s ShortEventDataParsedQuery) MarshalJSON() ([]byte, error) {
+ switch s.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "stringOptional":
+ return json.Marshal(s.StringOptional)
+ case "shortEventDataParsedQueryShortEventDataParsedQuery":
+ return json.Marshal(s.ShortEventDataParsedQueryShortEventDataParsedQuery)
+ }
+}
+
+type ShortEventDataParsedQueryVisitor interface {
+ VisitStringOptional(*string) error
+ VisitShortEventDataParsedQueryShortEventDataParsedQuery(*ShortEventDataParsedQueryShortEventDataParsedQuery) error
+}
+
+func (s *ShortEventDataParsedQuery) Accept(v ShortEventDataParsedQueryVisitor) error {
+ switch s.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", s.typeName, s)
+ case "stringOptional":
+ return v.VisitStringOptional(s.StringOptional)
+ case "shortEventDataParsedQueryShortEventDataParsedQuery":
+ return v.VisitShortEventDataParsedQueryShortEventDataParsedQuery(s.ShortEventDataParsedQueryShortEventDataParsedQuery)
+ }
+}
diff --git a/short_event_data_parsed_query_short_event_data_parsed_query.go b/short_event_data_parsed_query_short_event_data_parsed_query.go
new file mode 100644
index 0000000..79b1127
--- /dev/null
+++ b/short_event_data_parsed_query_short_event_data_parsed_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ShortEventDataParsedQueryShortEventDataParsedQuery struct {
+}
diff --git a/source.go b/source.go
new file mode 100644
index 0000000..fb1db26
--- /dev/null
+++ b/source.go
@@ -0,0 +1,25 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Associated [Source](#source-object) object
+type Source struct {
+ // ID of the source
+ Id string `json:"id,omitempty"`
+ // Name for the source
+ Name string `json:"name,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // A unique URL that must be supplied to your webhook's provider
+ Url string `json:"url,omitempty"`
+ // ID of the integration
+ IntegrationId *string `json:"integration_id,omitempty"`
+ // Integration object
+ Integration *SourceIntegration `json:"integration,omitempty"`
+ // Date the source was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ // Date the source was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the source was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/source_integration.go b/source_integration.go
new file mode 100644
index 0000000..b0a8501
--- /dev/null
+++ b/source_integration.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Integration object
+type SourceIntegration struct {
+ // ID of the integration
+ Id string `json:"id,omitempty"`
+ // Label of the integration
+ Label string `json:"label,omitempty"`
+ Provider IntegrationProvider `json:"provider,omitempty"`
+ // List of enabled features
+ Features []IntegrationFeature `json:"features,omitempty"`
+}
diff --git a/source_paginated_result.go b/source_paginated_result.go
new file mode 100644
index 0000000..80b2a14
--- /dev/null
+++ b/source_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type SourcePaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Source `json:"models,omitempty"`
+}
diff --git a/sources_client.go b/sources_client.go
new file mode 100644
index 0000000..ef7eb57
--- /dev/null
+++ b/sources_client.go
@@ -0,0 +1,417 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type SourcesClient interface {
+ GetSources(ctx context.Context, request *GetSourcesRequest) (*SourcePaginatedResult, error)
+ CreateSource(ctx context.Context, request *CreateSourceRequest) (*Source, error)
+ UpsertSource(ctx context.Context, request *UpsertSourceRequest) (*Source, error)
+ GetSource(ctx context.Context, id string) (*Source, error)
+ UpdateSource(ctx context.Context, id string, request *UpdateSourceRequest) (*Source, error)
+ ArchiveSource(ctx context.Context, id string) (*Source, error)
+ UnarchiveSource(ctx context.Context, id string) (*Source, error)
+}
+
+func NewSourcesClient(opts ...core.ClientOption) SourcesClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &sourcesClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type sourcesClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (s *sourcesClient) GetSources(ctx context.Context, request *GetSourcesRequest) (*SourcePaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := baseURL + "/" + "sources"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var archivedDefaultValue *bool
+ if request.Archived != archivedDefaultValue {
+ queryParams.Add("archived", fmt.Sprintf("%v", *request.Archived))
+ }
+ var archivedAtDefaultValue *string
+ if request.ArchivedAt != archivedAtDefaultValue {
+ queryParams.Add("archived_at", fmt.Sprintf("%v", *request.ArchivedAt))
+ }
+ var integrationIdDefaultValue *string
+ if request.IntegrationId != integrationIdDefaultValue {
+ queryParams.Add("integration_id", fmt.Sprintf("%v", *request.IntegrationId))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetSourcesRequestDirGetSourcesRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(SourcePaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (s *sourcesClient) CreateSource(ctx context.Context, request *CreateSourceRequest) (*Source, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := baseURL + "/" + "sources"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Source)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (s *sourcesClient) UpsertSource(ctx context.Context, request *UpsertSourceRequest) (*Source, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := baseURL + "/" + "sources"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Source)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (s *sourcesClient) GetSource(ctx context.Context, id string) (*Source, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"sources/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Source)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (s *sourcesClient) UpdateSource(ctx context.Context, id string, request *UpdateSourceRequest) (*Source, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"sources/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Source)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (s *sourcesClient) ArchiveSource(ctx context.Context, id string) (*Source, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"sources/%v/archive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Source)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (s *sourcesClient) UnarchiveSource(ctx context.Context, id string) (*Source, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if s.baseURL != "" {
+ baseURL = s.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"sources/%v/unarchive", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Source)
+ if err := core.DoRequest(
+ ctx,
+ s.httpClient,
+ endpointURL,
+ http.MethodPut,
+ nil,
+ &response,
+ s.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/test_transformation_request.go b/test_transformation_request.go
new file mode 100644
index 0000000..e4e6af8
--- /dev/null
+++ b/test_transformation_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TestTransformationRequest struct {
+ // Key-value environment variables to be passed to the transformation
+ Env *TestTransformationRequestEnv `json:"env,omitempty"`
+ // ID of the connection to use for the execution `context`
+ WebhookId *string `json:"webhook_id,omitempty"`
+ // JavaScript code to be executed
+ Code *string `json:"code,omitempty"`
+ // Transformation ID
+ TransformationId *string `json:"transformation_id,omitempty"`
+ // Request input to use for the transformation execution
+ Request *TestTransformationRequestRequest `json:"request,omitempty"`
+ EventId *string `json:"event_id,omitempty"`
+}
diff --git a/test_transformation_request_env.go b/test_transformation_request_env.go
new file mode 100644
index 0000000..f162df6
--- /dev/null
+++ b/test_transformation_request_env.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Key-value environment variables to be passed to the transformation
+type TestTransformationRequestEnv struct {
+}
diff --git a/test_transformation_request_request.go b/test_transformation_request_request.go
new file mode 100644
index 0000000..06fd51f
--- /dev/null
+++ b/test_transformation_request_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Request input to use for the transformation execution
+type TestTransformationRequestRequest struct {
+ // Headers of the request
+ Headers map[string]string `json:"headers,omitempty"`
+ // Body of the request
+ Body *TestTransformationRequestRequestBody `json:"body,omitempty"`
+ // Path of the request
+ Path *string `json:"path,omitempty"`
+ // String representation of the query params of the request
+ Query *string `json:"query,omitempty"`
+ // JSON representation of the query params
+ ParsedQuery *TestTransformationRequestRequestParsedQuery `json:"parsed_query,omitempty"`
+}
diff --git a/test_transformation_request_request_body.go b/test_transformation_request_request_body.go
new file mode 100644
index 0000000..f86c3e1
--- /dev/null
+++ b/test_transformation_request_request_body.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Body of the request
+type TestTransformationRequestRequestBody struct {
+ typeName string
+ TestTransformationRequestRequestBodyTestTransformationRequestRequestBody *TestTransformationRequestRequestBodyTestTransformationRequestRequestBody
+ String string
+}
+
+func NewTestTransformationRequestRequestBodyFromTestTransformationRequestRequestBodyTestTransformationRequestRequestBody(value *TestTransformationRequestRequestBodyTestTransformationRequestRequestBody) *TestTransformationRequestRequestBody {
+ return &TestTransformationRequestRequestBody{typeName: "testTransformationRequestRequestBodyTestTransformationRequestRequestBody", TestTransformationRequestRequestBodyTestTransformationRequestRequestBody: value}
+}
+
+func NewTestTransformationRequestRequestBodyFromString(value string) *TestTransformationRequestRequestBody {
+ return &TestTransformationRequestRequestBody{typeName: "string", String: value}
+}
+
+func (t *TestTransformationRequestRequestBody) UnmarshalJSON(data []byte) error {
+ valueTestTransformationRequestRequestBodyTestTransformationRequestRequestBody := new(TestTransformationRequestRequestBodyTestTransformationRequestRequestBody)
+ if err := json.Unmarshal(data, &valueTestTransformationRequestRequestBodyTestTransformationRequestRequestBody); err == nil {
+ t.typeName = "testTransformationRequestRequestBodyTestTransformationRequestRequestBody"
+ t.TestTransformationRequestRequestBodyTestTransformationRequestRequestBody = valueTestTransformationRequestRequestBodyTestTransformationRequestRequestBody
+ return nil
+ }
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ t.typeName = "string"
+ t.String = valueString
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, t)
+}
+
+func (t TestTransformationRequestRequestBody) MarshalJSON() ([]byte, error) {
+ switch t.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "testTransformationRequestRequestBodyTestTransformationRequestRequestBody":
+ return json.Marshal(t.TestTransformationRequestRequestBodyTestTransformationRequestRequestBody)
+ case "string":
+ return json.Marshal(t.String)
+ }
+}
+
+type TestTransformationRequestRequestBodyVisitor interface {
+ VisitTestTransformationRequestRequestBodyTestTransformationRequestRequestBody(*TestTransformationRequestRequestBodyTestTransformationRequestRequestBody) error
+ VisitString(string) error
+}
+
+func (t *TestTransformationRequestRequestBody) Accept(v TestTransformationRequestRequestBodyVisitor) error {
+ switch t.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "testTransformationRequestRequestBodyTestTransformationRequestRequestBody":
+ return v.VisitTestTransformationRequestRequestBodyTestTransformationRequestRequestBody(t.TestTransformationRequestRequestBodyTestTransformationRequestRequestBody)
+ case "string":
+ return v.VisitString(t.String)
+ }
+}
diff --git a/test_transformation_request_request_body_test_transformation_request_request_body.go b/test_transformation_request_request_body_test_transformation_request_request_body.go
new file mode 100644
index 0000000..f2357f4
--- /dev/null
+++ b/test_transformation_request_request_body_test_transformation_request_request_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TestTransformationRequestRequestBodyTestTransformationRequestRequestBody struct {
+}
diff --git a/test_transformation_request_request_parsed_query.go b/test_transformation_request_request_parsed_query.go
new file mode 100644
index 0000000..4903590
--- /dev/null
+++ b/test_transformation_request_request_parsed_query.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// JSON representation of the query params
+type TestTransformationRequestRequestParsedQuery struct {
+}
diff --git a/toggle_webhook_notifications.go b/toggle_webhook_notifications.go
new file mode 100644
index 0000000..d3529c1
--- /dev/null
+++ b/toggle_webhook_notifications.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ToggleWebhookNotifications struct {
+ Enabled bool `json:"enabled,omitempty"`
+ Topics *[]TopicsValue `json:"topics,omitempty"`
+ SourceId string `json:"source_id,omitempty"`
+}
diff --git a/toggle_webhook_notifications_request.go b/toggle_webhook_notifications_request.go
new file mode 100644
index 0000000..60b760a
--- /dev/null
+++ b/toggle_webhook_notifications_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type ToggleWebhookNotificationsRequest struct {
+ // Enable or disable webhook notifications on the workspace
+ Enabled *bool `json:"enabled,omitempty"`
+ // List of topics to send notifications for
+ Topics *[]TopicsValue `json:"topics,omitempty"`
+ // The Hookdeck Source to send the webhook to
+ SourceId *string `json:"source_id,omitempty"`
+}
diff --git a/topics_value.go b/topics_value.go
new file mode 100644
index 0000000..0fb6925
--- /dev/null
+++ b/topics_value.go
@@ -0,0 +1,60 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Supported topics
+type TopicsValue uint8
+
+const (
+ TopicsValueIssueOpened TopicsValue = iota + 1
+ TopicsValueIssueUpdated
+ TopicsValueDeprecatedAttemptFailed
+ TopicsValueEventSuccessful
+)
+
+func (t TopicsValue) String() string {
+ switch t {
+ default:
+ return strconv.Itoa(int(t))
+ case TopicsValueIssueOpened:
+ return "issue.opened"
+ case TopicsValueIssueUpdated:
+ return "issue.updated"
+ case TopicsValueDeprecatedAttemptFailed:
+ return "deprecated.attempt-failed"
+ case TopicsValueEventSuccessful:
+ return "event.successful"
+ }
+}
+
+func (t TopicsValue) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", t.String())), nil
+}
+
+func (t *TopicsValue) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "issue.opened":
+ value := TopicsValueIssueOpened
+ *t = value
+ case "issue.updated":
+ value := TopicsValueIssueUpdated
+ *t = value
+ case "deprecated.attempt-failed":
+ value := TopicsValueDeprecatedAttemptFailed
+ *t = value
+ case "event.successful":
+ value := TopicsValueEventSuccessful
+ *t = value
+ }
+ return nil
+}
diff --git a/transform_full.go b/transform_full.go
new file mode 100644
index 0000000..26895e6
--- /dev/null
+++ b/transform_full.go
@@ -0,0 +1,42 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+type TransformFull struct {
+ // ID of the attached transformation object. Optional input, always set once the rule is defined
+ TransformationId *string `json:"transformation_id,omitempty"`
+ // You can optionally define a new transformation while creating a transform rule
+ Transformation *TransformFullTransformation `json:"transformation,omitempty"`
+ type_ string
+}
+
+func (t *TransformFull) Type() string {
+ return t.type_
+}
+
+func (t *TransformFull) UnmarshalJSON(data []byte) error {
+ type unmarshaler TransformFull
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *t = TransformFull(value)
+ t.type_ = "transform"
+ return nil
+}
+
+func (t *TransformFull) MarshalJSON() ([]byte, error) {
+ type embed TransformFull
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*t),
+ Type: "transform",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/transform_full_transformation.go b/transform_full_transformation.go
new file mode 100644
index 0000000..5d2d6f4
--- /dev/null
+++ b/transform_full_transformation.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// You can optionally define a new transformation while creating a transform rule
+type TransformFullTransformation struct {
+ // The unique name of the transformation
+ Name string `json:"name,omitempty"`
+ // A string representation of your JavaScript (ES6) code to run
+ Code string `json:"code,omitempty"`
+ // A key-value object of environment variables to encrypt and expose to your transformation code
+ Env *map[string]*string `json:"env,omitempty"`
+}
diff --git a/transform_reference.go b/transform_reference.go
new file mode 100644
index 0000000..498bfc0
--- /dev/null
+++ b/transform_reference.go
@@ -0,0 +1,40 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+type TransformReference struct {
+ // ID of the attached transformation object. Optional input, always set once the rule is defined
+ TransformationId string `json:"transformation_id,omitempty"`
+ type_ string
+}
+
+func (t *TransformReference) Type() string {
+ return t.type_
+}
+
+func (t *TransformReference) UnmarshalJSON(data []byte) error {
+ type unmarshaler TransformReference
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *t = TransformReference(value)
+ t.type_ = "transform"
+ return nil
+}
+
+func (t *TransformReference) MarshalJSON() ([]byte, error) {
+ type embed TransformReference
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*t),
+ Type: "transform",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/transform_rule.go b/transform_rule.go
new file mode 100644
index 0000000..9658571
--- /dev/null
+++ b/transform_rule.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type TransformRule struct {
+ typeName string
+ TransformReference *TransformReference
+ TransformFull *TransformFull
+}
+
+func NewTransformRuleFromTransformReference(value *TransformReference) *TransformRule {
+ return &TransformRule{typeName: "transformReference", TransformReference: value}
+}
+
+func NewTransformRuleFromTransformFull(value *TransformFull) *TransformRule {
+ return &TransformRule{typeName: "transformFull", TransformFull: value}
+}
+
+func (t *TransformRule) UnmarshalJSON(data []byte) error {
+ valueTransformReference := new(TransformReference)
+ if err := json.Unmarshal(data, &valueTransformReference); err == nil {
+ t.typeName = "transformReference"
+ t.TransformReference = valueTransformReference
+ return nil
+ }
+ valueTransformFull := new(TransformFull)
+ if err := json.Unmarshal(data, &valueTransformFull); err == nil {
+ t.typeName = "transformFull"
+ t.TransformFull = valueTransformFull
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, t)
+}
+
+func (t TransformRule) MarshalJSON() ([]byte, error) {
+ switch t.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "transformReference":
+ return json.Marshal(t.TransformReference)
+ case "transformFull":
+ return json.Marshal(t.TransformFull)
+ }
+}
+
+type TransformRuleVisitor interface {
+ VisitTransformReference(*TransformReference) error
+ VisitTransformFull(*TransformFull) error
+}
+
+func (t *TransformRule) Accept(v TransformRuleVisitor) error {
+ switch t.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "transformReference":
+ return v.VisitTransformReference(t.TransformReference)
+ case "transformFull":
+ return v.VisitTransformFull(t.TransformFull)
+ }
+}
diff --git a/transformation.go b/transformation.go
new file mode 100644
index 0000000..efbc1ba
--- /dev/null
+++ b/transformation.go
@@ -0,0 +1,22 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type Transformation struct {
+ // ID of the transformation
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ // A unique, human-friendly name for the transformation
+ Name string `json:"name,omitempty"`
+ // JavaScript code to be executed
+ Code string `json:"code,omitempty"`
+ EncryptedEnv *string `json:"encrypted_env,omitempty"`
+ Iv *string `json:"iv,omitempty"`
+ // Key-value environment variables to be passed to the transformation
+ Env *map[string]*string `json:"env,omitempty"`
+ // Date the transformation was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // Date the transformation was created
+ CreatedAt string `json:"created_at,omitempty"`
+}
diff --git a/transformation_execution.go b/transformation_execution.go
new file mode 100644
index 0000000..3aff416
--- /dev/null
+++ b/transformation_execution.go
@@ -0,0 +1,19 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecution struct {
+ Id string `json:"id,omitempty"`
+ TransformedEventDataId string `json:"transformed_event_data_id,omitempty"`
+ OriginalEventDataId string `json:"original_event_data_id,omitempty"`
+ TransformationId string `json:"transformation_id,omitempty"`
+ TeamId string `json:"team_id,omitempty"`
+ WebhookId string `json:"webhook_id,omitempty"`
+ LogLevel TransformationExecutionLogLevel `json:"log_level,omitempty"`
+ Logs []*ConsoleLine `json:"logs,omitempty"`
+ UpdatedAt string `json:"updated_at,omitempty"`
+ CreatedAt string `json:"created_at,omitempty"`
+ OriginalEventData *ShortEventData `json:"original_event_data,omitempty"`
+ TransformedEventData *ShortEventData `json:"transformed_event_data,omitempty"`
+ IssueId *string `json:"issue_id,omitempty"`
+}
diff --git a/transformation_execution_log_level.go b/transformation_execution_log_level.go
new file mode 100644
index 0000000..116b7e0
--- /dev/null
+++ b/transformation_execution_log_level.go
@@ -0,0 +1,66 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// The minimum log level to open the issue on
+type TransformationExecutionLogLevel uint8
+
+const (
+ TransformationExecutionLogLevelDebug TransformationExecutionLogLevel = iota + 1
+ TransformationExecutionLogLevelInfo
+ TransformationExecutionLogLevelWarn
+ TransformationExecutionLogLevelError
+ TransformationExecutionLogLevelFatal
+)
+
+func (t TransformationExecutionLogLevel) String() string {
+ switch t {
+ default:
+ return strconv.Itoa(int(t))
+ case TransformationExecutionLogLevelDebug:
+ return "debug"
+ case TransformationExecutionLogLevelInfo:
+ return "info"
+ case TransformationExecutionLogLevelWarn:
+ return "warn"
+ case TransformationExecutionLogLevelError:
+ return "error"
+ case TransformationExecutionLogLevelFatal:
+ return "fatal"
+ }
+}
+
+func (t TransformationExecutionLogLevel) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", t.String())), nil
+}
+
+func (t *TransformationExecutionLogLevel) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "debug":
+ value := TransformationExecutionLogLevelDebug
+ *t = value
+ case "info":
+ value := TransformationExecutionLogLevelInfo
+ *t = value
+ case "warn":
+ value := TransformationExecutionLogLevelWarn
+ *t = value
+ case "error":
+ value := TransformationExecutionLogLevelError
+ *t = value
+ case "fatal":
+ value := TransformationExecutionLogLevelFatal
+ *t = value
+ }
+ return nil
+}
diff --git a/transformation_execution_paginated_result.go b/transformation_execution_paginated_result.go
new file mode 100644
index 0000000..485122c
--- /dev/null
+++ b/transformation_execution_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecutionPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*TransformationExecution `json:"models,omitempty"`
+}
diff --git a/transformation_executor_output.go b/transformation_executor_output.go
new file mode 100644
index 0000000..30a1d68
--- /dev/null
+++ b/transformation_executor_output.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecutorOutput struct {
+ RequestId *string `json:"request_id,omitempty"`
+ TransformationId *string `json:"transformation_id,omitempty"`
+ ExecutionId *string `json:"execution_id,omitempty"`
+ LogLevel TransformationExecutionLogLevel `json:"log_level,omitempty"`
+ Request *TransformationExecutorOutputRequest `json:"request,omitempty"`
+ Console *[]*ConsoleLine `json:"console,omitempty"`
+}
diff --git a/transformation_executor_output_request.go b/transformation_executor_output_request.go
new file mode 100644
index 0000000..1b0b534
--- /dev/null
+++ b/transformation_executor_output_request.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecutorOutputRequest struct {
+ Headers *TransformationExecutorOutputRequestHeaders `json:"headers,omitempty"`
+ Path string `json:"path,omitempty"`
+ Query *TransformationExecutorOutputRequestQuery `json:"query,omitempty"`
+ ParsedQuery *TransformationExecutorOutputRequestParsedQuery `json:"parsed_query,omitempty"`
+ Body *TransformationExecutorOutputRequestBody `json:"body,omitempty"`
+}
diff --git a/transformation_executor_output_request_body.go b/transformation_executor_output_request_body.go
new file mode 100644
index 0000000..c3be851
--- /dev/null
+++ b/transformation_executor_output_request_body.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type TransformationExecutorOutputRequestBody struct {
+ typeName string
+ StringOptional *string
+ TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody *TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody
+}
+
+func NewTransformationExecutorOutputRequestBodyFromStringOptional(value *string) *TransformationExecutorOutputRequestBody {
+ return &TransformationExecutorOutputRequestBody{typeName: "stringOptional", StringOptional: value}
+}
+
+func NewTransformationExecutorOutputRequestBodyFromTransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody(value *TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody) *TransformationExecutorOutputRequestBody {
+ return &TransformationExecutorOutputRequestBody{typeName: "transformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody", TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody: value}
+}
+
+func (t *TransformationExecutorOutputRequestBody) UnmarshalJSON(data []byte) error {
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ t.typeName = "stringOptional"
+ t.StringOptional = valueStringOptional
+ return nil
+ }
+ valueTransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody := new(TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody)
+ if err := json.Unmarshal(data, &valueTransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody); err == nil {
+ t.typeName = "transformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody"
+ t.TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody = valueTransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, t)
+}
+
+func (t TransformationExecutorOutputRequestBody) MarshalJSON() ([]byte, error) {
+ switch t.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "stringOptional":
+ return json.Marshal(t.StringOptional)
+ case "transformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody":
+ return json.Marshal(t.TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody)
+ }
+}
+
+type TransformationExecutorOutputRequestBodyVisitor interface {
+ VisitStringOptional(*string) error
+ VisitTransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody(*TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody) error
+}
+
+func (t *TransformationExecutorOutputRequestBody) Accept(v TransformationExecutorOutputRequestBodyVisitor) error {
+ switch t.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "stringOptional":
+ return v.VisitStringOptional(t.StringOptional)
+ case "transformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody":
+ return v.VisitTransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody(t.TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody)
+ }
+}
diff --git a/transformation_executor_output_request_body_transformation_executor_output_request_body.go b/transformation_executor_output_request_body_transformation_executor_output_request_body.go
new file mode 100644
index 0000000..f3a9b0a
--- /dev/null
+++ b/transformation_executor_output_request_body_transformation_executor_output_request_body.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecutorOutputRequestBodyTransformationExecutorOutputRequestBody struct {
+}
diff --git a/transformation_executor_output_request_headers.go b/transformation_executor_output_request_headers.go
new file mode 100644
index 0000000..789e03c
--- /dev/null
+++ b/transformation_executor_output_request_headers.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type TransformationExecutorOutputRequestHeaders struct {
+ typeName string
+ String string
+ StringUnknownMap map[string]any
+}
+
+func NewTransformationExecutorOutputRequestHeadersFromString(value string) *TransformationExecutorOutputRequestHeaders {
+ return &TransformationExecutorOutputRequestHeaders{typeName: "string", String: value}
+}
+
+func NewTransformationExecutorOutputRequestHeadersFromStringUnknownMap(value map[string]any) *TransformationExecutorOutputRequestHeaders {
+ return &TransformationExecutorOutputRequestHeaders{typeName: "stringUnknownMap", StringUnknownMap: value}
+}
+
+func (t *TransformationExecutorOutputRequestHeaders) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ t.typeName = "string"
+ t.String = valueString
+ return nil
+ }
+ var valueStringUnknownMap map[string]any
+ if err := json.Unmarshal(data, &valueStringUnknownMap); err == nil {
+ t.typeName = "stringUnknownMap"
+ t.StringUnknownMap = valueStringUnknownMap
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, t)
+}
+
+func (t TransformationExecutorOutputRequestHeaders) MarshalJSON() ([]byte, error) {
+ switch t.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "string":
+ return json.Marshal(t.String)
+ case "stringUnknownMap":
+ return json.Marshal(t.StringUnknownMap)
+ }
+}
+
+type TransformationExecutorOutputRequestHeadersVisitor interface {
+ VisitString(string) error
+ VisitStringUnknownMap(map[string]any) error
+}
+
+func (t *TransformationExecutorOutputRequestHeaders) Accept(v TransformationExecutorOutputRequestHeadersVisitor) error {
+ switch t.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "string":
+ return v.VisitString(t.String)
+ case "stringUnknownMap":
+ return v.VisitStringUnknownMap(t.StringUnknownMap)
+ }
+}
diff --git a/transformation_executor_output_request_parsed_query.go b/transformation_executor_output_request_parsed_query.go
new file mode 100644
index 0000000..ffc8994
--- /dev/null
+++ b/transformation_executor_output_request_parsed_query.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type TransformationExecutorOutputRequestParsedQuery struct {
+ typeName string
+ StringOptional *string
+ TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery *TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery
+}
+
+func NewTransformationExecutorOutputRequestParsedQueryFromStringOptional(value *string) *TransformationExecutorOutputRequestParsedQuery {
+ return &TransformationExecutorOutputRequestParsedQuery{typeName: "stringOptional", StringOptional: value}
+}
+
+func NewTransformationExecutorOutputRequestParsedQueryFromTransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery(value *TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery) *TransformationExecutorOutputRequestParsedQuery {
+ return &TransformationExecutorOutputRequestParsedQuery{typeName: "transformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery", TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery: value}
+}
+
+func (t *TransformationExecutorOutputRequestParsedQuery) UnmarshalJSON(data []byte) error {
+ var valueStringOptional *string
+ if err := json.Unmarshal(data, &valueStringOptional); err == nil {
+ t.typeName = "stringOptional"
+ t.StringOptional = valueStringOptional
+ return nil
+ }
+ valueTransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery := new(TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery)
+ if err := json.Unmarshal(data, &valueTransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery); err == nil {
+ t.typeName = "transformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery"
+ t.TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery = valueTransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, t)
+}
+
+func (t TransformationExecutorOutputRequestParsedQuery) MarshalJSON() ([]byte, error) {
+ switch t.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "stringOptional":
+ return json.Marshal(t.StringOptional)
+ case "transformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery":
+ return json.Marshal(t.TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery)
+ }
+}
+
+type TransformationExecutorOutputRequestParsedQueryVisitor interface {
+ VisitStringOptional(*string) error
+ VisitTransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery(*TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery) error
+}
+
+func (t *TransformationExecutorOutputRequestParsedQuery) Accept(v TransformationExecutorOutputRequestParsedQueryVisitor) error {
+ switch t.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "stringOptional":
+ return v.VisitStringOptional(t.StringOptional)
+ case "transformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery":
+ return v.VisitTransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery(t.TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery)
+ }
+}
diff --git a/transformation_executor_output_request_parsed_query_transformation_executor_output_request_parsed_query.go b/transformation_executor_output_request_parsed_query_transformation_executor_output_request_parsed_query.go
new file mode 100644
index 0000000..eef5327
--- /dev/null
+++ b/transformation_executor_output_request_parsed_query_transformation_executor_output_request_parsed_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecutorOutputRequestParsedQueryTransformationExecutorOutputRequestParsedQuery struct {
+}
diff --git a/transformation_executor_output_request_query.go b/transformation_executor_output_request_query.go
new file mode 100644
index 0000000..9422c83
--- /dev/null
+++ b/transformation_executor_output_request_query.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type TransformationExecutorOutputRequestQuery struct {
+ typeName string
+ TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional *TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQuery
+ String string
+}
+
+func NewTransformationExecutorOutputRequestQueryFromTransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional(value *TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQuery) *TransformationExecutorOutputRequestQuery {
+ return &TransformationExecutorOutputRequestQuery{typeName: "transformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional", TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional: value}
+}
+
+func NewTransformationExecutorOutputRequestQueryFromString(value string) *TransformationExecutorOutputRequestQuery {
+ return &TransformationExecutorOutputRequestQuery{typeName: "string", String: value}
+}
+
+func (t *TransformationExecutorOutputRequestQuery) UnmarshalJSON(data []byte) error {
+ var valueTransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional *TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQuery
+ if err := json.Unmarshal(data, &valueTransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional); err == nil {
+ t.typeName = "transformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional"
+ t.TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional = valueTransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional
+ return nil
+ }
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ t.typeName = "string"
+ t.String = valueString
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, t)
+}
+
+func (t TransformationExecutorOutputRequestQuery) MarshalJSON() ([]byte, error) {
+ switch t.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "transformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional":
+ return json.Marshal(t.TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional)
+ case "string":
+ return json.Marshal(t.String)
+ }
+}
+
+type TransformationExecutorOutputRequestQueryVisitor interface {
+ VisitTransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional(*TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQuery) error
+ VisitString(string) error
+}
+
+func (t *TransformationExecutorOutputRequestQuery) Accept(v TransformationExecutorOutputRequestQueryVisitor) error {
+ switch t.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", t.typeName, t)
+ case "transformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional":
+ return v.VisitTransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional(t.TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQueryOptional)
+ case "string":
+ return v.VisitString(t.String)
+ }
+}
diff --git a/transformation_executor_output_request_query_transformation_executor_output_request_query.go b/transformation_executor_output_request_query_transformation_executor_output_request_query.go
new file mode 100644
index 0000000..e3dd43f
--- /dev/null
+++ b/transformation_executor_output_request_query_transformation_executor_output_request_query.go
@@ -0,0 +1,6 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationExecutorOutputRequestQueryTransformationExecutorOutputRequestQuery struct {
+}
diff --git a/transformation_failed_meta.go b/transformation_failed_meta.go
new file mode 100644
index 0000000..c3568c4
--- /dev/null
+++ b/transformation_failed_meta.go
@@ -0,0 +1,7 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationFailedMeta struct {
+ TransformationId string `json:"transformation_id,omitempty"`
+}
diff --git a/transformation_issue.go b/transformation_issue.go
new file mode 100644
index 0000000..a476fe6
--- /dev/null
+++ b/transformation_issue.go
@@ -0,0 +1,62 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+// Transformation issue
+type TransformationIssue struct {
+ // Issue ID
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ Status IssueStatus `json:"status,omitempty"`
+ // ISO timestamp for when the issue was last opened
+ OpenedAt string `json:"opened_at,omitempty"`
+ // ISO timestamp for when the issue was first opened
+ FirstSeenAt string `json:"first_seen_at,omitempty"`
+ // ISO timestamp for when the issue last occured
+ LastSeenAt string `json:"last_seen_at,omitempty"`
+ // ID of the team member who last updated the issue status
+ LastUpdatedBy *string `json:"last_updated_by,omitempty"`
+ // ISO timestamp for when the issue was dismissed
+ DismissedAt *string `json:"dismissed_at,omitempty"`
+ AutoResolvedAt *string `json:"auto_resolved_at,omitempty"`
+ MergedWith *string `json:"merged_with,omitempty"`
+ // ISO timestamp for when the issue was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // ISO timestamp for when the issue was created
+ CreatedAt string `json:"created_at,omitempty"`
+ AggregationKeys *TransformationIssueAggregationKeys `json:"aggregation_keys,omitempty"`
+ Reference *TransformationIssueReference `json:"reference,omitempty"`
+ type_ string
+}
+
+func (t *TransformationIssue) Type() string {
+ return t.type_
+}
+
+func (t *TransformationIssue) UnmarshalJSON(data []byte) error {
+ type unmarshaler TransformationIssue
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *t = TransformationIssue(value)
+ t.type_ = "transformation"
+ return nil
+}
+
+func (t *TransformationIssue) MarshalJSON() ([]byte, error) {
+ type embed TransformationIssue
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*t),
+ Type: "transformation",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/transformation_issue_aggregation_keys.go b/transformation_issue_aggregation_keys.go
new file mode 100644
index 0000000..e41e8b9
--- /dev/null
+++ b/transformation_issue_aggregation_keys.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Keys used as the aggregation keys a 'transformation' type issue
+type TransformationIssueAggregationKeys struct {
+ TransformationId []string `json:"transformation_id,omitempty"`
+ LogLevel TransformationExecutionLogLevel `json:"log_level,omitempty"`
+}
diff --git a/transformation_issue_data.go b/transformation_issue_data.go
new file mode 100644
index 0000000..dc61a77
--- /dev/null
+++ b/transformation_issue_data.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Transformation issue data
+type TransformationIssueData struct {
+ TransformationExecution *TransformationExecution `json:"transformation_execution,omitempty"`
+ TriggerAttempt *EventAttempt `json:"trigger_attempt,omitempty"`
+}
diff --git a/transformation_issue_reference.go b/transformation_issue_reference.go
new file mode 100644
index 0000000..27c70fd
--- /dev/null
+++ b/transformation_issue_reference.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Reference to the event request transformation an issue is being created for.
+type TransformationIssueReference struct {
+ TransformationExecutionId string `json:"transformation_execution_id,omitempty"`
+ // Deprecated but still found on historical issues
+ TriggerEventRequestTransformationId *string `json:"trigger_event_request_transformation_id,omitempty"`
+}
diff --git a/transformation_issue_with_data.go b/transformation_issue_with_data.go
new file mode 100644
index 0000000..684560e
--- /dev/null
+++ b/transformation_issue_with_data.go
@@ -0,0 +1,63 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+)
+
+// Transformation issue
+type TransformationIssueWithData struct {
+ // Issue ID
+ Id string `json:"id,omitempty"`
+ // ID of the workspace
+ TeamId string `json:"team_id,omitempty"`
+ Status IssueStatus `json:"status,omitempty"`
+ // ISO timestamp for when the issue was last opened
+ OpenedAt string `json:"opened_at,omitempty"`
+ // ISO timestamp for when the issue was first opened
+ FirstSeenAt string `json:"first_seen_at,omitempty"`
+ // ISO timestamp for when the issue last occured
+ LastSeenAt string `json:"last_seen_at,omitempty"`
+ // ID of the team member who last updated the issue status
+ LastUpdatedBy *string `json:"last_updated_by,omitempty"`
+ // ISO timestamp for when the issue was dismissed
+ DismissedAt *string `json:"dismissed_at,omitempty"`
+ AutoResolvedAt *string `json:"auto_resolved_at,omitempty"`
+ MergedWith *string `json:"merged_with,omitempty"`
+ // ISO timestamp for when the issue was last updated
+ UpdatedAt string `json:"updated_at,omitempty"`
+ // ISO timestamp for when the issue was created
+ CreatedAt string `json:"created_at,omitempty"`
+ AggregationKeys *TransformationIssueAggregationKeys `json:"aggregation_keys,omitempty"`
+ Reference *TransformationIssueReference `json:"reference,omitempty"`
+ Data *TransformationIssueData `json:"data,omitempty"`
+ type_ string
+}
+
+func (t *TransformationIssueWithData) Type() string {
+ return t.type_
+}
+
+func (t *TransformationIssueWithData) UnmarshalJSON(data []byte) error {
+ type unmarshaler TransformationIssueWithData
+ var value unmarshaler
+ if err := json.Unmarshal(data, &value); err != nil {
+ return err
+ }
+ *t = TransformationIssueWithData(value)
+ t.type_ = "transformation"
+ return nil
+}
+
+func (t *TransformationIssueWithData) MarshalJSON() ([]byte, error) {
+ type embed TransformationIssueWithData
+ var marshaler = struct {
+ embed
+ Type string `json:"type,omitempty"`
+ }{
+ embed: embed(*t),
+ Type: "transformation",
+ }
+ return json.Marshal(marshaler)
+}
diff --git a/transformation_paginated_result.go b/transformation_paginated_result.go
new file mode 100644
index 0000000..18485dc
--- /dev/null
+++ b/transformation_paginated_result.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TransformationPaginatedResult struct {
+ Pagination *SeekPagination `json:"pagination,omitempty"`
+ Count *int `json:"count,omitempty"`
+ Models *[]*Transformation `json:"models,omitempty"`
+}
diff --git a/transformations_client.go b/transformations_client.go
new file mode 100644
index 0000000..dbbc592
--- /dev/null
+++ b/transformations_client.go
@@ -0,0 +1,503 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ bytes "bytes"
+ context "context"
+ json "encoding/json"
+ errors "errors"
+ fmt "fmt"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+ io "io"
+ http "net/http"
+ url "net/url"
+)
+
+type TransformationsClient interface {
+ GetTransformations(ctx context.Context, request *GetTransformationsRequest) (*TransformationPaginatedResult, error)
+ CreateTransformation(ctx context.Context, request *CreateTransformationRequest) (*Transformation, error)
+ UpsertTransformation(ctx context.Context, request *UpsertTransformationRequest) (*Transformation, error)
+ GetTransformation(ctx context.Context, id string) (*Transformation, error)
+ UpdateTransformation(ctx context.Context, id string, request *UpdateTransformationRequest) (*Transformation, error)
+ TestTransformation(ctx context.Context, request *TestTransformationRequest) (*TransformationExecutorOutput, error)
+ GetTransformationExecutions(ctx context.Context, id string, request *GetTransformationExecutionsRequest) (*TransformationExecutionPaginatedResult, error)
+ GetTransformationExecution(ctx context.Context, id string, executionId string) (*TransformationExecution, error)
+}
+
+func NewTransformationsClient(opts ...core.ClientOption) TransformationsClient {
+ options := core.NewClientOptions()
+ for _, opt := range opts {
+ opt(options)
+ }
+ return &transformationsClient{
+ baseURL: options.BaseURL,
+ httpClient: options.HTTPClient,
+ header: options.ToHeader(),
+ }
+}
+
+type transformationsClient struct {
+ baseURL string
+ httpClient core.HTTPClient
+ header http.Header
+}
+
+func (t *transformationsClient) GetTransformations(ctx context.Context, request *GetTransformationsRequest) (*TransformationPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := baseURL + "/" + "transformations"
+
+ queryParams := make(url.Values)
+ var idDefaultValue *string
+ if request.Id != idDefaultValue {
+ queryParams.Add("id", fmt.Sprintf("%v", *request.Id))
+ }
+ var nameDefaultValue *string
+ if request.Name != nameDefaultValue {
+ queryParams.Add("name", fmt.Sprintf("%v", *request.Name))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetTransformationsRequestDirGetTransformationsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(TransformationPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) CreateTransformation(ctx context.Context, request *CreateTransformationRequest) (*Transformation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := baseURL + "/" + "transformations"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Transformation)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodPost,
+ request,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) UpsertTransformation(ctx context.Context, request *UpsertTransformationRequest) (*Transformation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := baseURL + "/" + "transformations"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Transformation)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) GetTransformation(ctx context.Context, id string) (*Transformation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"transformations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Transformation)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) UpdateTransformation(ctx context.Context, id string, request *UpdateTransformationRequest) (*Transformation, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"transformations/%v", id)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(Transformation)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) TestTransformation(ctx context.Context, request *TestTransformationRequest) (*TransformationExecutorOutput, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := baseURL + "/" + "transformations/run"
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(TransformationExecutorOutput)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodPut,
+ request,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) GetTransformationExecutions(ctx context.Context, id string, request *GetTransformationExecutionsRequest) (*TransformationExecutionPaginatedResult, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"transformations/%v/executions", id)
+
+ queryParams := make(url.Values)
+ var logLevelDefaultValue *GetTransformationExecutionsRequestLogLevelGetTransformationExecutionsRequestLogLevel
+ if request.LogLevel != logLevelDefaultValue {
+ queryParams.Add("log_level", fmt.Sprintf("%v", *request.LogLevel))
+ }
+ var webhookIdDefaultValue *string
+ if request.WebhookId != webhookIdDefaultValue {
+ queryParams.Add("webhook_id", fmt.Sprintf("%v", *request.WebhookId))
+ }
+ var issueIdDefaultValue *string
+ if request.IssueId != issueIdDefaultValue {
+ queryParams.Add("issue_id", fmt.Sprintf("%v", *request.IssueId))
+ }
+ var createdAtDefaultValue *string
+ if request.CreatedAt != createdAtDefaultValue {
+ queryParams.Add("created_at", fmt.Sprintf("%v", *request.CreatedAt))
+ }
+ var orderByDefaultValue *string
+ if request.OrderBy != orderByDefaultValue {
+ queryParams.Add("order_by", fmt.Sprintf("%v", *request.OrderBy))
+ }
+ var dirDefaultValue *GetTransformationExecutionsRequestDirGetTransformationExecutionsRequestDir
+ if request.Dir != dirDefaultValue {
+ queryParams.Add("dir", fmt.Sprintf("%v", *request.Dir))
+ }
+ var limitDefaultValue *int
+ if request.Limit != limitDefaultValue {
+ queryParams.Add("limit", fmt.Sprintf("%v", *request.Limit))
+ }
+ var nextDefaultValue *string
+ if request.Next != nextDefaultValue {
+ queryParams.Add("next", fmt.Sprintf("%v", *request.Next))
+ }
+ var prevDefaultValue *string
+ if request.Prev != prevDefaultValue {
+ queryParams.Add("prev", fmt.Sprintf("%v", *request.Prev))
+ }
+ if len(queryParams) > 0 {
+ endpointURL += "?" + queryParams.Encode()
+ }
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 400:
+ value := new(BadRequestError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ case 422:
+ value := new(UnprocessableEntityError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(TransformationExecutionPaginatedResult)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodGet,
+ request,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
+
+func (t *transformationsClient) GetTransformationExecution(ctx context.Context, id string, executionId string) (*TransformationExecution, error) {
+ baseURL := "https://api.hookdeck.com/2023-01-01"
+ if t.baseURL != "" {
+ baseURL = t.baseURL
+ }
+ endpointURL := fmt.Sprintf(baseURL+"/"+"transformations/%v/executions/%v", id, executionId)
+
+ errorDecoder := func(statusCode int, body io.Reader) error {
+ raw, err := io.ReadAll(body)
+ if err != nil {
+ return err
+ }
+ apiError := core.NewAPIError(statusCode, errors.New(string(raw)))
+ decoder := json.NewDecoder(bytes.NewReader(raw))
+ switch statusCode {
+ case 404:
+ value := new(NotFoundError)
+ value.APIError = apiError
+ if err := decoder.Decode(value); err != nil {
+ return err
+ }
+ return value
+ }
+ return apiError
+ }
+
+ response := new(TransformationExecution)
+ if err := core.DoRequest(
+ ctx,
+ t.httpClient,
+ endpointURL,
+ http.MethodGet,
+ nil,
+ &response,
+ t.header,
+ errorDecoder,
+ ); err != nil {
+ return response, err
+ }
+ return response, nil
+}
diff --git a/trigger_bookmark_request.go b/trigger_bookmark_request.go
new file mode 100644
index 0000000..533656a
--- /dev/null
+++ b/trigger_bookmark_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type TriggerBookmarkRequest struct {
+ // Bookmark target
+ Target *TriggerBookmarkRequestTarget `json:"target,omitempty"`
+}
diff --git a/trigger_bookmark_request_target.go b/trigger_bookmark_request_target.go
new file mode 100644
index 0000000..24c942e
--- /dev/null
+++ b/trigger_bookmark_request_target.go
@@ -0,0 +1,48 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Bookmark target
+type TriggerBookmarkRequestTarget uint8
+
+const (
+ TriggerBookmarkRequestTargetHttp TriggerBookmarkRequestTarget = iota + 1
+ TriggerBookmarkRequestTargetCli
+)
+
+func (t TriggerBookmarkRequestTarget) String() string {
+ switch t {
+ default:
+ return strconv.Itoa(int(t))
+ case TriggerBookmarkRequestTargetHttp:
+ return "http"
+ case TriggerBookmarkRequestTargetCli:
+ return "cli"
+ }
+}
+
+func (t TriggerBookmarkRequestTarget) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", t.String())), nil
+}
+
+func (t *TriggerBookmarkRequestTarget) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "http":
+ value := TriggerBookmarkRequestTargetHttp
+ *t = value
+ case "cli":
+ value := TriggerBookmarkRequestTargetCli
+ *t = value
+ }
+ return nil
+}
diff --git a/unprocessable_entity_error.go b/unprocessable_entity_error.go
new file mode 100644
index 0000000..bf80cfd
--- /dev/null
+++ b/unprocessable_entity_error.go
@@ -0,0 +1,27 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ core "github.com/fern-hookdeck/hookdeck-go/core"
+)
+
+type UnprocessableEntityError struct {
+ *core.APIError
+ Body *ApiErrorResponse
+}
+
+func (u *UnprocessableEntityError) UnmarshalJSON(data []byte) error {
+ body := new(ApiErrorResponse)
+ if err := json.Unmarshal(data, &body); err != nil {
+ return err
+ }
+ u.StatusCode = 422
+ u.Body = body
+ return nil
+}
+
+func (u *UnprocessableEntityError) MarshalJSON() ([]byte, error) {
+ return json.Marshal(u.Body)
+}
diff --git a/update_bookmark_request.go b/update_bookmark_request.go
new file mode 100644
index 0000000..e8908a8
--- /dev/null
+++ b/update_bookmark_request.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateBookmarkRequest struct {
+ // ID of the event data to bookmark `<= 255 characters`
+ EventDataId *string `json:"event_data_id,omitempty"`
+ // ID of the associated connection `<= 255 characters`
+ WebhookId *string `json:"webhook_id,omitempty"`
+ // Descriptive name of the bookmark `<= 255 characters`
+ Label *string `json:"label,omitempty"`
+ // A unique, human-friendly name for the bookmark `<= 155 characters`
+ Name *string `json:"name,omitempty"`
+}
diff --git a/update_connection_request.go b/update_connection_request.go
new file mode 100644
index 0000000..3a9dc64
--- /dev/null
+++ b/update_connection_request.go
@@ -0,0 +1,14 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateConnectionRequest struct {
+ // Unique name of the connection for the source `<= 155 characters`
+ Name *string `json:"name,omitempty"`
+ // Ruleset input object
+ Ruleset *UpdateConnectionRequestRuleset `json:"ruleset,omitempty"`
+ // ID of a rule to bind to the connection. Default to the Workspace default ruleset
+ RulesetId *string `json:"ruleset_id,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+}
diff --git a/update_connection_request_ruleset.go b/update_connection_request_ruleset.go
new file mode 100644
index 0000000..6b23b87
--- /dev/null
+++ b/update_connection_request_ruleset.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Ruleset input object
+type UpdateConnectionRequestRuleset struct {
+ // Name for the ruleset `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+ IsTeamDefault *bool `json:"is_team_default,omitempty"`
+}
diff --git a/update_destination_request.go b/update_destination_request.go
new file mode 100644
index 0000000..4d34598
--- /dev/null
+++ b/update_destination_request.go
@@ -0,0 +1,19 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateDestinationRequest struct {
+ // Name for the destination `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Endpoint of the destination
+ Url *string `json:"url,omitempty"`
+ // Path for the CLI destination
+ CliPath *string `json:"cli_path,omitempty"`
+ // Period to rate limit attempts
+ RateLimitPeriod *UpdateDestinationRequestRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ // Limit event attempts to receive per period
+ RateLimit *int `json:"rate_limit,omitempty"`
+ // Date the destination was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+}
diff --git a/update_destination_request_rate_limit_period.go b/update_destination_request_rate_limit_period.go
new file mode 100644
index 0000000..fa7f81b
--- /dev/null
+++ b/update_destination_request_rate_limit_period.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Period to rate limit attempts
+type UpdateDestinationRequestRateLimitPeriod uint8
+
+const (
+ UpdateDestinationRequestRateLimitPeriodSecond UpdateDestinationRequestRateLimitPeriod = iota + 1
+ UpdateDestinationRequestRateLimitPeriodMinute
+ UpdateDestinationRequestRateLimitPeriodHour
+)
+
+func (u UpdateDestinationRequestRateLimitPeriod) String() string {
+ switch u {
+ default:
+ return strconv.Itoa(int(u))
+ case UpdateDestinationRequestRateLimitPeriodSecond:
+ return "second"
+ case UpdateDestinationRequestRateLimitPeriodMinute:
+ return "minute"
+ case UpdateDestinationRequestRateLimitPeriodHour:
+ return "hour"
+ }
+}
+
+func (u UpdateDestinationRequestRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", u.String())), nil
+}
+
+func (u *UpdateDestinationRequestRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "second":
+ value := UpdateDestinationRequestRateLimitPeriodSecond
+ *u = value
+ case "minute":
+ value := UpdateDestinationRequestRateLimitPeriodMinute
+ *u = value
+ case "hour":
+ value := UpdateDestinationRequestRateLimitPeriodHour
+ *u = value
+ }
+ return nil
+}
diff --git a/update_integration_request.go b/update_integration_request.go
new file mode 100644
index 0000000..d391a7a
--- /dev/null
+++ b/update_integration_request.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateIntegrationRequest struct {
+ // Label of the integration
+ Label *string `json:"label,omitempty"`
+ // Decrypted Key/Value object of the associated configuration for that provider
+ Configs *UpdateIntegrationRequestConfigs `json:"configs,omitempty"`
+ Provider *IntegrationProvider `json:"provider,omitempty"`
+ // List of features to enable (see features list above)
+ Features *[]IntegrationFeature `json:"features,omitempty"`
+}
diff --git a/update_integration_request_configs.go b/update_integration_request_configs.go
new file mode 100644
index 0000000..cd62192
--- /dev/null
+++ b/update_integration_request_configs.go
@@ -0,0 +1,114 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Decrypted Key/Value object of the associated configuration for that provider
+type UpdateIntegrationRequestConfigs struct {
+ typeName string
+ HmacIntegrationConfigs *HmacIntegrationConfigs
+ ApiKeyIntegrationConfigs *ApiKeyIntegrationConfigs
+ HandledHmacConfigs *HandledHmacConfigs
+ BasicAuthIntegrationConfigs *BasicAuthIntegrationConfigs
+ ShopifyIntegrationConfigs *ShopifyIntegrationConfigs
+}
+
+func NewUpdateIntegrationRequestConfigsFromHmacIntegrationConfigs(value *HmacIntegrationConfigs) *UpdateIntegrationRequestConfigs {
+ return &UpdateIntegrationRequestConfigs{typeName: "hmacIntegrationConfigs", HmacIntegrationConfigs: value}
+}
+
+func NewUpdateIntegrationRequestConfigsFromApiKeyIntegrationConfigs(value *ApiKeyIntegrationConfigs) *UpdateIntegrationRequestConfigs {
+ return &UpdateIntegrationRequestConfigs{typeName: "apiKeyIntegrationConfigs", ApiKeyIntegrationConfigs: value}
+}
+
+func NewUpdateIntegrationRequestConfigsFromHandledHmacConfigs(value *HandledHmacConfigs) *UpdateIntegrationRequestConfigs {
+ return &UpdateIntegrationRequestConfigs{typeName: "handledHmacConfigs", HandledHmacConfigs: value}
+}
+
+func NewUpdateIntegrationRequestConfigsFromBasicAuthIntegrationConfigs(value *BasicAuthIntegrationConfigs) *UpdateIntegrationRequestConfigs {
+ return &UpdateIntegrationRequestConfigs{typeName: "basicAuthIntegrationConfigs", BasicAuthIntegrationConfigs: value}
+}
+
+func NewUpdateIntegrationRequestConfigsFromShopifyIntegrationConfigs(value *ShopifyIntegrationConfigs) *UpdateIntegrationRequestConfigs {
+ return &UpdateIntegrationRequestConfigs{typeName: "shopifyIntegrationConfigs", ShopifyIntegrationConfigs: value}
+}
+
+func (u *UpdateIntegrationRequestConfigs) UnmarshalJSON(data []byte) error {
+ valueHmacIntegrationConfigs := new(HmacIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueHmacIntegrationConfigs); err == nil {
+ u.typeName = "hmacIntegrationConfigs"
+ u.HmacIntegrationConfigs = valueHmacIntegrationConfigs
+ return nil
+ }
+ valueApiKeyIntegrationConfigs := new(ApiKeyIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueApiKeyIntegrationConfigs); err == nil {
+ u.typeName = "apiKeyIntegrationConfigs"
+ u.ApiKeyIntegrationConfigs = valueApiKeyIntegrationConfigs
+ return nil
+ }
+ valueHandledHmacConfigs := new(HandledHmacConfigs)
+ if err := json.Unmarshal(data, &valueHandledHmacConfigs); err == nil {
+ u.typeName = "handledHmacConfigs"
+ u.HandledHmacConfigs = valueHandledHmacConfigs
+ return nil
+ }
+ valueBasicAuthIntegrationConfigs := new(BasicAuthIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueBasicAuthIntegrationConfigs); err == nil {
+ u.typeName = "basicAuthIntegrationConfigs"
+ u.BasicAuthIntegrationConfigs = valueBasicAuthIntegrationConfigs
+ return nil
+ }
+ valueShopifyIntegrationConfigs := new(ShopifyIntegrationConfigs)
+ if err := json.Unmarshal(data, &valueShopifyIntegrationConfigs); err == nil {
+ u.typeName = "shopifyIntegrationConfigs"
+ u.ShopifyIntegrationConfigs = valueShopifyIntegrationConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, u)
+}
+
+func (u UpdateIntegrationRequestConfigs) MarshalJSON() ([]byte, error) {
+ switch u.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "hmacIntegrationConfigs":
+ return json.Marshal(u.HmacIntegrationConfigs)
+ case "apiKeyIntegrationConfigs":
+ return json.Marshal(u.ApiKeyIntegrationConfigs)
+ case "handledHmacConfigs":
+ return json.Marshal(u.HandledHmacConfigs)
+ case "basicAuthIntegrationConfigs":
+ return json.Marshal(u.BasicAuthIntegrationConfigs)
+ case "shopifyIntegrationConfigs":
+ return json.Marshal(u.ShopifyIntegrationConfigs)
+ }
+}
+
+type UpdateIntegrationRequestConfigsVisitor interface {
+ VisitHmacIntegrationConfigs(*HmacIntegrationConfigs) error
+ VisitApiKeyIntegrationConfigs(*ApiKeyIntegrationConfigs) error
+ VisitHandledHmacConfigs(*HandledHmacConfigs) error
+ VisitBasicAuthIntegrationConfigs(*BasicAuthIntegrationConfigs) error
+ VisitShopifyIntegrationConfigs(*ShopifyIntegrationConfigs) error
+}
+
+func (u *UpdateIntegrationRequestConfigs) Accept(v UpdateIntegrationRequestConfigsVisitor) error {
+ switch u.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "hmacIntegrationConfigs":
+ return v.VisitHmacIntegrationConfigs(u.HmacIntegrationConfigs)
+ case "apiKeyIntegrationConfigs":
+ return v.VisitApiKeyIntegrationConfigs(u.ApiKeyIntegrationConfigs)
+ case "handledHmacConfigs":
+ return v.VisitHandledHmacConfigs(u.HandledHmacConfigs)
+ case "basicAuthIntegrationConfigs":
+ return v.VisitBasicAuthIntegrationConfigs(u.BasicAuthIntegrationConfigs)
+ case "shopifyIntegrationConfigs":
+ return v.VisitShopifyIntegrationConfigs(u.ShopifyIntegrationConfigs)
+ }
+}
diff --git a/update_issue_request.go b/update_issue_request.go
new file mode 100644
index 0000000..2599711
--- /dev/null
+++ b/update_issue_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateIssueRequest struct {
+ // New status
+ Status UpdateIssueRequestStatus `json:"status,omitempty"`
+}
diff --git a/update_issue_request_status.go b/update_issue_request_status.go
new file mode 100644
index 0000000..4636de2
--- /dev/null
+++ b/update_issue_request_status.go
@@ -0,0 +1,60 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// New status
+type UpdateIssueRequestStatus uint8
+
+const (
+ UpdateIssueRequestStatusOpened UpdateIssueRequestStatus = iota + 1
+ UpdateIssueRequestStatusIgnored
+ UpdateIssueRequestStatusAcknowledged
+ UpdateIssueRequestStatusResolved
+)
+
+func (u UpdateIssueRequestStatus) String() string {
+ switch u {
+ default:
+ return strconv.Itoa(int(u))
+ case UpdateIssueRequestStatusOpened:
+ return "OPENED"
+ case UpdateIssueRequestStatusIgnored:
+ return "IGNORED"
+ case UpdateIssueRequestStatusAcknowledged:
+ return "ACKNOWLEDGED"
+ case UpdateIssueRequestStatusResolved:
+ return "RESOLVED"
+ }
+}
+
+func (u UpdateIssueRequestStatus) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", u.String())), nil
+}
+
+func (u *UpdateIssueRequestStatus) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "OPENED":
+ value := UpdateIssueRequestStatusOpened
+ *u = value
+ case "IGNORED":
+ value := UpdateIssueRequestStatusIgnored
+ *u = value
+ case "ACKNOWLEDGED":
+ value := UpdateIssueRequestStatusAcknowledged
+ *u = value
+ case "RESOLVED":
+ value := UpdateIssueRequestStatusResolved
+ *u = value
+ }
+ return nil
+}
diff --git a/update_issue_trigger_request.go b/update_issue_trigger_request.go
new file mode 100644
index 0000000..326939e
--- /dev/null
+++ b/update_issue_trigger_request.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateIssueTriggerRequest struct {
+ // Configuration object for the specific issue type selected
+ Configs *UpdateIssueTriggerRequestConfigs `json:"configs,omitempty"`
+ Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ // Date when the issue trigger was disabled
+ DisabledAt *string `json:"disabled_at,omitempty"`
+ // Optional unique name to use as reference when using the API `<= 255 characters`
+ Name *string `json:"name,omitempty"`
+}
diff --git a/update_issue_trigger_request_configs.go b/update_issue_trigger_request_configs.go
new file mode 100644
index 0000000..4e61353
--- /dev/null
+++ b/update_issue_trigger_request_configs.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Configuration object for the specific issue type selected
+type UpdateIssueTriggerRequestConfigs struct {
+ typeName string
+ IssueTriggerDeliveryConfigs *IssueTriggerDeliveryConfigs
+ IssueTriggerTransformationConfigs *IssueTriggerTransformationConfigs
+ IssueTriggerBackpressureConfigs *IssueTriggerBackpressureConfigs
+}
+
+func NewUpdateIssueTriggerRequestConfigsFromIssueTriggerDeliveryConfigs(value *IssueTriggerDeliveryConfigs) *UpdateIssueTriggerRequestConfigs {
+ return &UpdateIssueTriggerRequestConfigs{typeName: "issueTriggerDeliveryConfigs", IssueTriggerDeliveryConfigs: value}
+}
+
+func NewUpdateIssueTriggerRequestConfigsFromIssueTriggerTransformationConfigs(value *IssueTriggerTransformationConfigs) *UpdateIssueTriggerRequestConfigs {
+ return &UpdateIssueTriggerRequestConfigs{typeName: "issueTriggerTransformationConfigs", IssueTriggerTransformationConfigs: value}
+}
+
+func NewUpdateIssueTriggerRequestConfigsFromIssueTriggerBackpressureConfigs(value *IssueTriggerBackpressureConfigs) *UpdateIssueTriggerRequestConfigs {
+ return &UpdateIssueTriggerRequestConfigs{typeName: "issueTriggerBackpressureConfigs", IssueTriggerBackpressureConfigs: value}
+}
+
+func (u *UpdateIssueTriggerRequestConfigs) UnmarshalJSON(data []byte) error {
+ valueIssueTriggerDeliveryConfigs := new(IssueTriggerDeliveryConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerDeliveryConfigs); err == nil {
+ u.typeName = "issueTriggerDeliveryConfigs"
+ u.IssueTriggerDeliveryConfigs = valueIssueTriggerDeliveryConfigs
+ return nil
+ }
+ valueIssueTriggerTransformationConfigs := new(IssueTriggerTransformationConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerTransformationConfigs); err == nil {
+ u.typeName = "issueTriggerTransformationConfigs"
+ u.IssueTriggerTransformationConfigs = valueIssueTriggerTransformationConfigs
+ return nil
+ }
+ valueIssueTriggerBackpressureConfigs := new(IssueTriggerBackpressureConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerBackpressureConfigs); err == nil {
+ u.typeName = "issueTriggerBackpressureConfigs"
+ u.IssueTriggerBackpressureConfigs = valueIssueTriggerBackpressureConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, u)
+}
+
+func (u UpdateIssueTriggerRequestConfigs) MarshalJSON() ([]byte, error) {
+ switch u.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "issueTriggerDeliveryConfigs":
+ return json.Marshal(u.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return json.Marshal(u.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return json.Marshal(u.IssueTriggerBackpressureConfigs)
+ }
+}
+
+type UpdateIssueTriggerRequestConfigsVisitor interface {
+ VisitIssueTriggerDeliveryConfigs(*IssueTriggerDeliveryConfigs) error
+ VisitIssueTriggerTransformationConfigs(*IssueTriggerTransformationConfigs) error
+ VisitIssueTriggerBackpressureConfigs(*IssueTriggerBackpressureConfigs) error
+}
+
+func (u *UpdateIssueTriggerRequestConfigs) Accept(v UpdateIssueTriggerRequestConfigsVisitor) error {
+ switch u.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "issueTriggerDeliveryConfigs":
+ return v.VisitIssueTriggerDeliveryConfigs(u.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return v.VisitIssueTriggerTransformationConfigs(u.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return v.VisitIssueTriggerBackpressureConfigs(u.IssueTriggerBackpressureConfigs)
+ }
+}
diff --git a/update_ruleset_request.go b/update_ruleset_request.go
new file mode 100644
index 0000000..d34f626
--- /dev/null
+++ b/update_ruleset_request.go
@@ -0,0 +1,13 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateRulesetRequest struct {
+ // Name for the ruleset `<= 155 characters`
+ Name *string `json:"name,omitempty"`
+ // Date the ruleset was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+ IsTeamDefault *bool `json:"is_team_default,omitempty"`
+}
diff --git a/update_source_request.go b/update_source_request.go
new file mode 100644
index 0000000..366357a
--- /dev/null
+++ b/update_source_request.go
@@ -0,0 +1,10 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateSourceRequest struct {
+ // A unique name for the source `<= 155 characters`
+ Name *string `json:"name,omitempty"`
+ // Date the source was archived
+ ArchivedAt *string `json:"archived_at,omitempty"`
+}
diff --git a/update_transformation_request.go b/update_transformation_request.go
new file mode 100644
index 0000000..864a42c
--- /dev/null
+++ b/update_transformation_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpdateTransformationRequest struct {
+ // A unique, human-friendly name for the transformation `<= 155 characters`
+ Name *string `json:"name,omitempty"`
+ // JavaScript code to be executed
+ Code *string `json:"code,omitempty"`
+ // Key-value environment variables to be passed to the transformation
+ Env *map[string]*UpdateTransformationRequestEnvValue `json:"env,omitempty"`
+}
diff --git a/update_transformation_request_env_value.go b/update_transformation_request_env_value.go
new file mode 100644
index 0000000..9009e28
--- /dev/null
+++ b/update_transformation_request_env_value.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type UpdateTransformationRequestEnvValue struct {
+ typeName string
+ String string
+ Double float64
+}
+
+func NewUpdateTransformationRequestEnvValueFromString(value string) *UpdateTransformationRequestEnvValue {
+ return &UpdateTransformationRequestEnvValue{typeName: "string", String: value}
+}
+
+func NewUpdateTransformationRequestEnvValueFromDouble(value float64) *UpdateTransformationRequestEnvValue {
+ return &UpdateTransformationRequestEnvValue{typeName: "double", Double: value}
+}
+
+func (u *UpdateTransformationRequestEnvValue) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ u.typeName = "string"
+ u.String = valueString
+ return nil
+ }
+ var valueDouble float64
+ if err := json.Unmarshal(data, &valueDouble); err == nil {
+ u.typeName = "double"
+ u.Double = valueDouble
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, u)
+}
+
+func (u UpdateTransformationRequestEnvValue) MarshalJSON() ([]byte, error) {
+ switch u.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "string":
+ return json.Marshal(u.String)
+ case "double":
+ return json.Marshal(u.Double)
+ }
+}
+
+type UpdateTransformationRequestEnvValueVisitor interface {
+ VisitString(string) error
+ VisitDouble(float64) error
+}
+
+func (u *UpdateTransformationRequestEnvValue) Accept(v UpdateTransformationRequestEnvValueVisitor) error {
+ switch u.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "string":
+ return v.VisitString(u.String)
+ case "double":
+ return v.VisitDouble(u.Double)
+ }
+}
diff --git a/upsert_connection_request.go b/upsert_connection_request.go
new file mode 100644
index 0000000..5abd4d5
--- /dev/null
+++ b/upsert_connection_request.go
@@ -0,0 +1,22 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpsertConnectionRequest struct {
+ // A unique name of the connection for the source `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // ID of a destination to bind to the connection
+ DestinationId *string `json:"destination_id,omitempty"`
+ // ID of a source to bind to the connection
+ SourceId *string `json:"source_id,omitempty"`
+ // Destination input object
+ Destination *UpsertConnectionRequestDestination `json:"destination,omitempty"`
+ // Source input object
+ Source *UpsertConnectionRequestSource `json:"source,omitempty"`
+ // Ruleset input object
+ Ruleset *UpsertConnectionRequestRuleset `json:"ruleset,omitempty"`
+ // ID of a rule to bind to the connection. Default to the Workspace default ruleset
+ RulesetId *string `json:"ruleset_id,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+}
diff --git a/upsert_connection_request_destination.go b/upsert_connection_request_destination.go
new file mode 100644
index 0000000..f0e2566
--- /dev/null
+++ b/upsert_connection_request_destination.go
@@ -0,0 +1,18 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Destination input object
+type UpsertConnectionRequestDestination struct {
+ // Name for the destination `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Endpoint of the destination
+ Url *string `json:"url,omitempty"`
+ // Path for the CLI destination
+ CliPath *string `json:"cli_path,omitempty"`
+ // Period to rate limit attempts
+ RateLimitPeriod *UpsertConnectionRequestDestinationRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ // Limit event attempts to receive per period
+ RateLimit *int `json:"rate_limit,omitempty"`
+ PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+}
diff --git a/upsert_connection_request_destination_rate_limit_period.go b/upsert_connection_request_destination_rate_limit_period.go
new file mode 100644
index 0000000..bbc7dae
--- /dev/null
+++ b/upsert_connection_request_destination_rate_limit_period.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Period to rate limit attempts
+type UpsertConnectionRequestDestinationRateLimitPeriod uint8
+
+const (
+ UpsertConnectionRequestDestinationRateLimitPeriodSecond UpsertConnectionRequestDestinationRateLimitPeriod = iota + 1
+ UpsertConnectionRequestDestinationRateLimitPeriodMinute
+ UpsertConnectionRequestDestinationRateLimitPeriodHour
+)
+
+func (u UpsertConnectionRequestDestinationRateLimitPeriod) String() string {
+ switch u {
+ default:
+ return strconv.Itoa(int(u))
+ case UpsertConnectionRequestDestinationRateLimitPeriodSecond:
+ return "second"
+ case UpsertConnectionRequestDestinationRateLimitPeriodMinute:
+ return "minute"
+ case UpsertConnectionRequestDestinationRateLimitPeriodHour:
+ return "hour"
+ }
+}
+
+func (u UpsertConnectionRequestDestinationRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", u.String())), nil
+}
+
+func (u *UpsertConnectionRequestDestinationRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "second":
+ value := UpsertConnectionRequestDestinationRateLimitPeriodSecond
+ *u = value
+ case "minute":
+ value := UpsertConnectionRequestDestinationRateLimitPeriodMinute
+ *u = value
+ case "hour":
+ value := UpsertConnectionRequestDestinationRateLimitPeriodHour
+ *u = value
+ }
+ return nil
+}
diff --git a/upsert_connection_request_ruleset.go b/upsert_connection_request_ruleset.go
new file mode 100644
index 0000000..62c4b31
--- /dev/null
+++ b/upsert_connection_request_ruleset.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Ruleset input object
+type UpsertConnectionRequestRuleset struct {
+ // Name for the ruleset `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+ IsTeamDefault *bool `json:"is_team_default,omitempty"`
+}
diff --git a/upsert_connection_request_source.go b/upsert_connection_request_source.go
new file mode 100644
index 0000000..54fa642
--- /dev/null
+++ b/upsert_connection_request_source.go
@@ -0,0 +1,9 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+// Source input object
+type UpsertConnectionRequestSource struct {
+ // A unique name for the source `<= 155 characters`
+ Name string `json:"name,omitempty"`
+}
diff --git a/upsert_destination_request.go b/upsert_destination_request.go
new file mode 100644
index 0000000..aaf9316
--- /dev/null
+++ b/upsert_destination_request.go
@@ -0,0 +1,17 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpsertDestinationRequest struct {
+ // Name for the destination `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Endpoint of the destination
+ Url *string `json:"url,omitempty"`
+ // Path for the CLI destination
+ CliPath *string `json:"cli_path,omitempty"`
+ // Period to rate limit attempts
+ RateLimitPeriod *UpsertDestinationRequestRateLimitPeriod `json:"rate_limit_period,omitempty"`
+ // Limit event attempts to receive per period
+ RateLimit *int `json:"rate_limit,omitempty"`
+ PathForwardingDisabled *bool `json:"path_forwarding_disabled,omitempty"`
+}
diff --git a/upsert_destination_request_rate_limit_period.go b/upsert_destination_request_rate_limit_period.go
new file mode 100644
index 0000000..dd5d7d3
--- /dev/null
+++ b/upsert_destination_request_rate_limit_period.go
@@ -0,0 +1,54 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+ strconv "strconv"
+)
+
+// Period to rate limit attempts
+type UpsertDestinationRequestRateLimitPeriod uint8
+
+const (
+ UpsertDestinationRequestRateLimitPeriodSecond UpsertDestinationRequestRateLimitPeriod = iota + 1
+ UpsertDestinationRequestRateLimitPeriodMinute
+ UpsertDestinationRequestRateLimitPeriodHour
+)
+
+func (u UpsertDestinationRequestRateLimitPeriod) String() string {
+ switch u {
+ default:
+ return strconv.Itoa(int(u))
+ case UpsertDestinationRequestRateLimitPeriodSecond:
+ return "second"
+ case UpsertDestinationRequestRateLimitPeriodMinute:
+ return "minute"
+ case UpsertDestinationRequestRateLimitPeriodHour:
+ return "hour"
+ }
+}
+
+func (u UpsertDestinationRequestRateLimitPeriod) MarshalJSON() ([]byte, error) {
+ return []byte(fmt.Sprintf("%q", u.String())), nil
+}
+
+func (u *UpsertDestinationRequestRateLimitPeriod) UnmarshalJSON(data []byte) error {
+ var raw string
+ if err := json.Unmarshal(data, &raw); err != nil {
+ return err
+ }
+ switch raw {
+ case "second":
+ value := UpsertDestinationRequestRateLimitPeriodSecond
+ *u = value
+ case "minute":
+ value := UpsertDestinationRequestRateLimitPeriodMinute
+ *u = value
+ case "hour":
+ value := UpsertDestinationRequestRateLimitPeriodHour
+ *u = value
+ }
+ return nil
+}
diff --git a/upsert_issue_trigger_request.go b/upsert_issue_trigger_request.go
new file mode 100644
index 0000000..57452ff
--- /dev/null
+++ b/upsert_issue_trigger_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpsertIssueTriggerRequest struct {
+ Type IssueType `json:"type,omitempty"`
+ // Configuration object for the specific issue type selected
+ Configs *UpsertIssueTriggerRequestConfigs `json:"configs,omitempty"`
+ Channels *IssueTriggerChannels `json:"channels,omitempty"`
+ // Required unique name to use as reference when using the API `<= 255 characters`
+ Name string `json:"name,omitempty"`
+}
diff --git a/upsert_issue_trigger_request_configs.go b/upsert_issue_trigger_request_configs.go
new file mode 100644
index 0000000..ca2afaf
--- /dev/null
+++ b/upsert_issue_trigger_request_configs.go
@@ -0,0 +1,82 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+// Configuration object for the specific issue type selected
+type UpsertIssueTriggerRequestConfigs struct {
+ typeName string
+ IssueTriggerDeliveryConfigs *IssueTriggerDeliveryConfigs
+ IssueTriggerTransformationConfigs *IssueTriggerTransformationConfigs
+ IssueTriggerBackpressureConfigs *IssueTriggerBackpressureConfigs
+}
+
+func NewUpsertIssueTriggerRequestConfigsFromIssueTriggerDeliveryConfigs(value *IssueTriggerDeliveryConfigs) *UpsertIssueTriggerRequestConfigs {
+ return &UpsertIssueTriggerRequestConfigs{typeName: "issueTriggerDeliveryConfigs", IssueTriggerDeliveryConfigs: value}
+}
+
+func NewUpsertIssueTriggerRequestConfigsFromIssueTriggerTransformationConfigs(value *IssueTriggerTransformationConfigs) *UpsertIssueTriggerRequestConfigs {
+ return &UpsertIssueTriggerRequestConfigs{typeName: "issueTriggerTransformationConfigs", IssueTriggerTransformationConfigs: value}
+}
+
+func NewUpsertIssueTriggerRequestConfigsFromIssueTriggerBackpressureConfigs(value *IssueTriggerBackpressureConfigs) *UpsertIssueTriggerRequestConfigs {
+ return &UpsertIssueTriggerRequestConfigs{typeName: "issueTriggerBackpressureConfigs", IssueTriggerBackpressureConfigs: value}
+}
+
+func (u *UpsertIssueTriggerRequestConfigs) UnmarshalJSON(data []byte) error {
+ valueIssueTriggerDeliveryConfigs := new(IssueTriggerDeliveryConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerDeliveryConfigs); err == nil {
+ u.typeName = "issueTriggerDeliveryConfigs"
+ u.IssueTriggerDeliveryConfigs = valueIssueTriggerDeliveryConfigs
+ return nil
+ }
+ valueIssueTriggerTransformationConfigs := new(IssueTriggerTransformationConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerTransformationConfigs); err == nil {
+ u.typeName = "issueTriggerTransformationConfigs"
+ u.IssueTriggerTransformationConfigs = valueIssueTriggerTransformationConfigs
+ return nil
+ }
+ valueIssueTriggerBackpressureConfigs := new(IssueTriggerBackpressureConfigs)
+ if err := json.Unmarshal(data, &valueIssueTriggerBackpressureConfigs); err == nil {
+ u.typeName = "issueTriggerBackpressureConfigs"
+ u.IssueTriggerBackpressureConfigs = valueIssueTriggerBackpressureConfigs
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, u)
+}
+
+func (u UpsertIssueTriggerRequestConfigs) MarshalJSON() ([]byte, error) {
+ switch u.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "issueTriggerDeliveryConfigs":
+ return json.Marshal(u.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return json.Marshal(u.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return json.Marshal(u.IssueTriggerBackpressureConfigs)
+ }
+}
+
+type UpsertIssueTriggerRequestConfigsVisitor interface {
+ VisitIssueTriggerDeliveryConfigs(*IssueTriggerDeliveryConfigs) error
+ VisitIssueTriggerTransformationConfigs(*IssueTriggerTransformationConfigs) error
+ VisitIssueTriggerBackpressureConfigs(*IssueTriggerBackpressureConfigs) error
+}
+
+func (u *UpsertIssueTriggerRequestConfigs) Accept(v UpsertIssueTriggerRequestConfigsVisitor) error {
+ switch u.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "issueTriggerDeliveryConfigs":
+ return v.VisitIssueTriggerDeliveryConfigs(u.IssueTriggerDeliveryConfigs)
+ case "issueTriggerTransformationConfigs":
+ return v.VisitIssueTriggerTransformationConfigs(u.IssueTriggerTransformationConfigs)
+ case "issueTriggerBackpressureConfigs":
+ return v.VisitIssueTriggerBackpressureConfigs(u.IssueTriggerBackpressureConfigs)
+ }
+}
diff --git a/upsert_ruleset_request.go b/upsert_ruleset_request.go
new file mode 100644
index 0000000..ee18434
--- /dev/null
+++ b/upsert_ruleset_request.go
@@ -0,0 +1,11 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpsertRulesetRequest struct {
+ // Name for the ruleset `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // Array of rules to apply
+ Rules *[]*Rule `json:"rules,omitempty"`
+ IsTeamDefault *bool `json:"is_team_default,omitempty"`
+}
diff --git a/upsert_source_request.go b/upsert_source_request.go
new file mode 100644
index 0000000..91b20cb
--- /dev/null
+++ b/upsert_source_request.go
@@ -0,0 +1,8 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpsertSourceRequest struct {
+ // A unique name for the source `<= 155 characters`
+ Name string `json:"name,omitempty"`
+}
diff --git a/upsert_transformation_request.go b/upsert_transformation_request.go
new file mode 100644
index 0000000..4fc7a70
--- /dev/null
+++ b/upsert_transformation_request.go
@@ -0,0 +1,12 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+type UpsertTransformationRequest struct {
+ // A unique, human-friendly name for the transformation `<= 155 characters`
+ Name string `json:"name,omitempty"`
+ // JavaScript code to be executed
+ Code string `json:"code,omitempty"`
+ // Key-value environment variables to be passed to the transformation
+ Env *map[string]*UpsertTransformationRequestEnvValue `json:"env,omitempty"`
+}
diff --git a/upsert_transformation_request_env_value.go b/upsert_transformation_request_env_value.go
new file mode 100644
index 0000000..ced30bb
--- /dev/null
+++ b/upsert_transformation_request_env_value.go
@@ -0,0 +1,65 @@
+// This file was auto-generated by Fern from our API Definition.
+
+package api
+
+import (
+ json "encoding/json"
+ fmt "fmt"
+)
+
+type UpsertTransformationRequestEnvValue struct {
+ typeName string
+ String string
+ Double float64
+}
+
+func NewUpsertTransformationRequestEnvValueFromString(value string) *UpsertTransformationRequestEnvValue {
+ return &UpsertTransformationRequestEnvValue{typeName: "string", String: value}
+}
+
+func NewUpsertTransformationRequestEnvValueFromDouble(value float64) *UpsertTransformationRequestEnvValue {
+ return &UpsertTransformationRequestEnvValue{typeName: "double", Double: value}
+}
+
+func (u *UpsertTransformationRequestEnvValue) UnmarshalJSON(data []byte) error {
+ var valueString string
+ if err := json.Unmarshal(data, &valueString); err == nil {
+ u.typeName = "string"
+ u.String = valueString
+ return nil
+ }
+ var valueDouble float64
+ if err := json.Unmarshal(data, &valueDouble); err == nil {
+ u.typeName = "double"
+ u.Double = valueDouble
+ return nil
+ }
+ return fmt.Errorf("%s cannot be deserialized as a %T", data, u)
+}
+
+func (u UpsertTransformationRequestEnvValue) MarshalJSON() ([]byte, error) {
+ switch u.typeName {
+ default:
+ return nil, fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "string":
+ return json.Marshal(u.String)
+ case "double":
+ return json.Marshal(u.Double)
+ }
+}
+
+type UpsertTransformationRequestEnvValueVisitor interface {
+ VisitString(string) error
+ VisitDouble(float64) error
+}
+
+func (u *UpsertTransformationRequestEnvValue) Accept(v UpsertTransformationRequestEnvValueVisitor) error {
+ switch u.typeName {
+ default:
+ return fmt.Errorf("invalid type %s in %T", u.typeName, u)
+ case "string":
+ return v.VisitString(u.String)
+ case "double":
+ return v.VisitDouble(u.Double)
+ }
+}