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) + } +}