trycourier 2.0.0 → 3.0.0.pre.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/environment.rb +7 -0
- data/lib/gemconfig.rb +14 -0
- data/lib/requests.rb +121 -0
- data/lib/trycourier/audiences/client.rb +235 -0
- data/lib/trycourier/audiences/types/audience.rb +86 -0
- data/lib/trycourier/audiences/types/audience_list_response.rb +62 -0
- data/lib/trycourier/audiences/types/audience_member.rb +74 -0
- data/lib/trycourier/audiences/types/audience_member_get_response.rb +53 -0
- data/lib/trycourier/audiences/types/audience_member_list_response.rb +62 -0
- data/lib/trycourier/audiences/types/audience_update_response.rb +53 -0
- data/lib/trycourier/audiences/types/base_filter_config.rb +53 -0
- data/lib/trycourier/audiences/types/comparison_operator.rb +21 -0
- data/lib/trycourier/audiences/types/filter.rb +50 -0
- data/lib/trycourier/audiences/types/filter_config.rb +50 -0
- data/lib/trycourier/audiences/types/logical_operator.rb +10 -0
- data/lib/trycourier/audiences/types/nested_filter_config.rb +63 -0
- data/lib/trycourier/audiences/types/operator.rb +48 -0
- data/lib/trycourier/audiences/types/single_filter_config.rb +64 -0
- data/lib/trycourier/audit_events/client.rb +104 -0
- data/lib/trycourier/audit_events/types/actor.rb +52 -0
- data/lib/trycourier/audit_events/types/audit_event.rb +92 -0
- data/lib/trycourier/audit_events/types/get_audit_event_params.rb +47 -0
- data/lib/trycourier/audit_events/types/list_audit_events_params.rb +47 -0
- data/lib/trycourier/audit_events/types/list_audit_events_response.rb +62 -0
- data/lib/trycourier/audit_events/types/target.rb +52 -0
- data/lib/trycourier/auth_tokens/client.rb +85 -0
- data/lib/trycourier/auth_tokens/types/issue_token_response.rb +47 -0
- data/lib/trycourier/automations/client.rb +151 -0
- data/lib/trycourier/automations/types/automation.rb +56 -0
- data/lib/trycourier/automations/types/automation_ad_hoc_invoke_params.rb +88 -0
- data/lib/trycourier/automations/types/automation_cancel_step.rb +62 -0
- data/lib/trycourier/automations/types/automation_delay_step.rb +62 -0
- data/lib/trycourier/automations/types/automation_invoke_params.rb +69 -0
- data/lib/trycourier/automations/types/automation_invoke_response.rb +47 -0
- data/lib/trycourier/automations/types/automation_invoke_step.rb +62 -0
- data/lib/trycourier/automations/types/automation_invoke_template_params.rb +82 -0
- data/lib/trycourier/automations/types/automation_run_context.rb +69 -0
- data/lib/trycourier/automations/types/automation_send_list_step.rb +93 -0
- data/lib/trycourier/automations/types/automation_send_step.rb +99 -0
- data/lib/trycourier/automations/types/automation_step.rb +52 -0
- data/lib/trycourier/automations/types/automation_step_action.rb +14 -0
- data/lib/trycourier/automations/types/automation_step_option.rb +110 -0
- data/lib/trycourier/automations/types/automation_update_profile_step.rb +64 -0
- data/lib/trycourier/automations/types/automation_v_2_send_step.rb +68 -0
- data/lib/trycourier/automations/types/merge_algorithm.rb +12 -0
- data/lib/trycourier/automations/types/profile.rb +7 -0
- data/lib/trycourier/brands/client.rb +281 -0
- data/lib/trycourier/brands/types/brand.rb +105 -0
- data/lib/trycourier/brands/types/brand_colors.rb +57 -0
- data/lib/trycourier/brands/types/brand_get_all_response.rb +62 -0
- data/lib/trycourier/brands/types/brand_parameters.rb +74 -0
- data/lib/trycourier/brands/types/brand_settings.rb +69 -0
- data/lib/trycourier/brands/types/brand_snippet.rb +57 -0
- data/lib/trycourier/brands/types/brand_snippets.rb +51 -0
- data/lib/trycourier/brands/types/brands_response.rb +62 -0
- data/lib/trycourier/bulk/client.rb +249 -0
- data/lib/trycourier/bulk/types/bulk_create_job_response.rb +47 -0
- data/lib/trycourier/bulk/types/bulk_get_job_params.rb +47 -0
- data/lib/trycourier/bulk/types/bulk_get_job_response.rb +53 -0
- data/lib/trycourier/bulk/types/bulk_get_job_users_params.rb +52 -0
- data/lib/trycourier/bulk/types/bulk_get_job_users_response.rb +62 -0
- data/lib/trycourier/bulk/types/bulk_ingest_error.rb +52 -0
- data/lib/trycourier/bulk/types/bulk_ingest_users_params.rb +51 -0
- data/lib/trycourier/bulk/types/bulk_ingest_users_response.rb +56 -0
- data/lib/trycourier/bulk/types/bulk_job_status.rb +12 -0
- data/lib/trycourier/bulk/types/bulk_job_user_status.rb +11 -0
- data/lib/trycourier/bulk/types/bulk_message_user_response.rb +100 -0
- data/lib/trycourier/bulk/types/inbound_bulk_content_message.rb +165 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message.rb +95 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message_user.rb +80 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message_v_1.rb +75 -0
- data/lib/trycourier/bulk/types/inbound_bulk_message_v_2.rb +50 -0
- data/lib/trycourier/bulk/types/inbound_bulk_template_message.rb +157 -0
- data/lib/trycourier/bulk/types/job_details.rb +81 -0
- data/lib/trycourier/commons/types/already_exists.rb +52 -0
- data/lib/trycourier/commons/types/bad_request.rb +52 -0
- data/lib/trycourier/commons/types/base_error.rb +47 -0
- data/lib/trycourier/commons/types/channel_classification.rb +14 -0
- data/lib/trycourier/commons/types/channel_preference.rb +48 -0
- data/lib/trycourier/commons/types/conflict.rb +52 -0
- data/lib/trycourier/commons/types/email.rb +52 -0
- data/lib/trycourier/commons/types/message_not_found.rb +52 -0
- data/lib/trycourier/commons/types/not_found.rb +52 -0
- data/lib/trycourier/commons/types/notification_preference_details.rb +66 -0
- data/lib/trycourier/commons/types/notification_preferences.rb +7 -0
- data/lib/trycourier/commons/types/paging.rb +52 -0
- data/lib/trycourier/commons/types/payment_required.rb +52 -0
- data/lib/trycourier/commons/types/preference_status.rb +11 -0
- data/lib/trycourier/commons/types/recipient_preferences.rb +53 -0
- data/lib/trycourier/commons/types/rule.rb +52 -0
- data/lib/trycourier/commons/types/user_tenant_association.rb +62 -0
- data/lib/trycourier/lists/client.rb +454 -0
- data/lib/trycourier/lists/types/list.rb +62 -0
- data/lib/trycourier/lists/types/list_get_all_response.rb +62 -0
- data/lib/trycourier/lists/types/list_get_subscriptions_response.rb +62 -0
- data/lib/trycourier/lists/types/list_put_params.rb +58 -0
- data/lib/trycourier/lists/types/list_subscription_recipient.rb +63 -0
- data/lib/trycourier/lists/types/put_subscriptions_recipient.rb +58 -0
- data/lib/trycourier/messages/client.rb +300 -0
- data/lib/trycourier/messages/types/list_messages_response.rb +62 -0
- data/lib/trycourier/messages/types/message_details.rb +120 -0
- data/lib/trycourier/messages/types/message_history_response.rb +51 -0
- data/lib/trycourier/messages/types/message_status.rb +17 -0
- data/lib/trycourier/messages/types/reason.rb +14 -0
- data/lib/trycourier/messages/types/render_output.rb +63 -0
- data/lib/trycourier/messages/types/render_output_response.rb +51 -0
- data/lib/trycourier/messages/types/rendered_message_block.rb +52 -0
- data/lib/trycourier/messages/types/rendered_message_content.rb +77 -0
- data/lib/trycourier/notifications/client.rb +379 -0
- data/lib/trycourier/notifications/types/base_check.rb +58 -0
- data/lib/trycourier/notifications/types/block_type.rb +17 -0
- data/lib/trycourier/notifications/types/check.rb +63 -0
- data/lib/trycourier/notifications/types/check_status.rb +11 -0
- data/lib/trycourier/notifications/types/message_routing.rb +57 -0
- data/lib/trycourier/notifications/types/message_routing_channel.rb +49 -0
- data/lib/trycourier/notifications/types/message_routing_method.rb +10 -0
- data/lib/trycourier/notifications/types/notification.rb +63 -0
- data/lib/trycourier/notifications/types/notification_block.rb +94 -0
- data/lib/trycourier/notifications/types/notification_channel.rb +73 -0
- data/lib/trycourier/notifications/types/notification_channel_content.rb +52 -0
- data/lib/trycourier/notifications/types/notification_content.rb +49 -0
- data/lib/trycourier/notifications/types/notification_content_hierarchy.rb +52 -0
- data/lib/trycourier/notifications/types/notification_get_content_response.rb +65 -0
- data/lib/trycourier/notifications/types/notification_list_response.rb +62 -0
- data/lib/trycourier/notifications/types/submission_checks_get_response.rb +51 -0
- data/lib/trycourier/notifications/types/submission_checks_replace_response.rb +51 -0
- data/lib/trycourier/profiles/client.rb +325 -0
- data/lib/trycourier/profiles/types/address.rb +81 -0
- data/lib/trycourier/profiles/types/airship_profile.rb +59 -0
- data/lib/trycourier/profiles/types/airship_profile_audience.rb +47 -0
- data/lib/trycourier/profiles/types/delete_list_subscription_response.rb +47 -0
- data/lib/trycourier/profiles/types/device_type.rb +7 -0
- data/lib/trycourier/profiles/types/discord.rb +50 -0
- data/lib/trycourier/profiles/types/expo.rb +50 -0
- data/lib/trycourier/profiles/types/get_list_subscriptions_list.rb +74 -0
- data/lib/trycourier/profiles/types/get_list_subscriptions_response.rb +62 -0
- data/lib/trycourier/profiles/types/intercom.rb +58 -0
- data/lib/trycourier/profiles/types/intercom_recipient.rb +47 -0
- data/lib/trycourier/profiles/types/merge_profile_response.rb +47 -0
- data/lib/trycourier/profiles/types/ms_teams.rb +86 -0
- data/lib/trycourier/profiles/types/ms_teams_base_properties.rb +52 -0
- data/lib/trycourier/profiles/types/multiple_tokens.rb +51 -0
- data/lib/trycourier/profiles/types/profile_get_parameters.rb +47 -0
- data/lib/trycourier/profiles/types/profile_get_response.rb +58 -0
- data/lib/trycourier/profiles/types/replace_profile_response.rb +47 -0
- data/lib/trycourier/profiles/types/send_direct_message.rb +47 -0
- data/lib/trycourier/profiles/types/send_to_channel.rb +47 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_channel_id.rb +57 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_channel_name.rb +68 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_conversation_id.rb +58 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_email.rb +57 -0
- data/lib/trycourier/profiles/types/send_to_ms_teams_user_id.rb +57 -0
- data/lib/trycourier/profiles/types/send_to_slack_channel.rb +52 -0
- data/lib/trycourier/profiles/types/send_to_slack_email.rb +52 -0
- data/lib/trycourier/profiles/types/send_to_slack_user_id.rb +52 -0
- data/lib/trycourier/profiles/types/slack.rb +62 -0
- data/lib/trycourier/profiles/types/slack_base_properties.rb +47 -0
- data/lib/trycourier/profiles/types/snooze_rule.rb +58 -0
- data/lib/trycourier/profiles/types/snooze_rule_type.rb +9 -0
- data/lib/trycourier/profiles/types/subscribe_to_lists_request.rb +51 -0
- data/lib/trycourier/profiles/types/subscribe_to_lists_request_list_object.rb +58 -0
- data/lib/trycourier/profiles/types/subscribe_to_lists_response.rb +47 -0
- data/lib/trycourier/profiles/types/token.rb +47 -0
- data/lib/trycourier/profiles/types/user_profile.rb +274 -0
- data/lib/trycourier/send/types/attachment.rb +7 -0
- data/lib/trycourier/send/types/audience_filter.rb +57 -0
- data/lib/trycourier/send/types/audience_recipient.rb +62 -0
- data/lib/trycourier/send/types/base_message.rb +149 -0
- data/lib/trycourier/send/types/base_social_presence.rb +47 -0
- data/lib/trycourier/send/types/brand_settings_email.rb +87 -0
- data/lib/trycourier/send/types/brand_settings_in_app.rb +119 -0
- data/lib/trycourier/send/types/brand_settings_social_presence.rb +107 -0
- data/lib/trycourier/send/types/brand_template.rb +88 -0
- data/lib/trycourier/send/types/brand_template_override.rb +112 -0
- data/lib/trycourier/send/types/channel.rb +113 -0
- data/lib/trycourier/send/types/channel_metadata.rb +53 -0
- data/lib/trycourier/send/types/channel_source.rb +11 -0
- data/lib/trycourier/send/types/content.rb +50 -0
- data/lib/trycourier/send/types/content_message.rb +177 -0
- data/lib/trycourier/send/types/criteria.rb +12 -0
- data/lib/trycourier/send/types/delay.rb +47 -0
- data/lib/trycourier/send/types/elemental_action_node.rb +116 -0
- data/lib/trycourier/send/types/elemental_base_node.rb +62 -0
- data/lib/trycourier/send/types/elemental_channel_node.rb +105 -0
- data/lib/trycourier/send/types/elemental_content.rb +61 -0
- data/lib/trycourier/send/types/elemental_content_sugar.rb +53 -0
- data/lib/trycourier/send/types/elemental_divider_node.rb +68 -0
- data/lib/trycourier/send/types/elemental_group_node.rb +72 -0
- data/lib/trycourier/send/types/elemental_image_node.rb +101 -0
- data/lib/trycourier/send/types/elemental_meta_node.rb +70 -0
- data/lib/trycourier/send/types/elemental_node.rb +170 -0
- data/lib/trycourier/send/types/elemental_quote_node.rb +104 -0
- data/lib/trycourier/send/types/elemental_text_node.rb +136 -0
- data/lib/trycourier/send/types/email_footer.rb +52 -0
- data/lib/trycourier/send/types/email_head.rb +52 -0
- data/lib/trycourier/send/types/email_header.rb +63 -0
- data/lib/trycourier/send/types/expires_in_type.rb +48 -0
- data/lib/trycourier/send/types/expiry.rb +58 -0
- data/lib/trycourier/send/types/i_action_button_style.rb +10 -0
- data/lib/trycourier/send/types/i_alignment.rb +12 -0
- data/lib/trycourier/send/types/i_preferences.rb +7 -0
- data/lib/trycourier/send/types/i_profile_preferences.rb +59 -0
- data/lib/trycourier/send/types/icons.rb +52 -0
- data/lib/trycourier/send/types/in_app_placement.rb +12 -0
- data/lib/trycourier/send/types/invalid_list_pattern_recipient.rb +52 -0
- data/lib/trycourier/send/types/invalid_list_recipient.rb +52 -0
- data/lib/trycourier/send/types/invalid_user_recipient.rb +52 -0
- data/lib/trycourier/send/types/list_filter.rb +57 -0
- data/lib/trycourier/send/types/list_pattern_recipient.rb +53 -0
- data/lib/trycourier/send/types/list_pattern_recipient_type.rb +41 -0
- data/lib/trycourier/send/types/list_recipient.rb +62 -0
- data/lib/trycourier/send/types/list_recipient_type.rb +41 -0
- data/lib/trycourier/send/types/locale.rb +47 -0
- data/lib/trycourier/send/types/locales.rb +7 -0
- data/lib/trycourier/send/types/logo.rb +52 -0
- data/lib/trycourier/send/types/message.rb +50 -0
- data/lib/trycourier/send/types/message_channel_email_override.rb +119 -0
- data/lib/trycourier/send/types/message_channels.rb +7 -0
- data/lib/trycourier/send/types/message_context.rb +49 -0
- data/lib/trycourier/send/types/message_data.rb +7 -0
- data/lib/trycourier/send/types/message_metadata.rb +68 -0
- data/lib/trycourier/send/types/message_providers.rb +7 -0
- data/lib/trycourier/send/types/message_providers_type.rb +72 -0
- data/lib/trycourier/send/types/message_recipient.rb +54 -0
- data/lib/trycourier/send/types/metadata.rb +53 -0
- data/lib/trycourier/send/types/ms_teams_recipient.rb +53 -0
- data/lib/trycourier/send/types/override.rb +10 -0
- data/lib/trycourier/send/types/preference.rb +73 -0
- data/lib/trycourier/send/types/preferences.rb +47 -0
- data/lib/trycourier/send/types/recipient.rb +98 -0
- data/lib/trycourier/send/types/routing.rb +64 -0
- data/lib/trycourier/send/types/routing_channel.rb +61 -0
- data/lib/trycourier/send/types/routing_method.rb +10 -0
- data/lib/trycourier/send/types/routing_strategy_channel.rb +70 -0
- data/lib/trycourier/send/types/routing_strategy_provider.rb +68 -0
- data/lib/trycourier/send/types/rule_type.rb +11 -0
- data/lib/trycourier/send/types/slack_recipient.rb +53 -0
- data/lib/trycourier/send/types/template_message.rb +169 -0
- data/lib/trycourier/send/types/text_align.rb +11 -0
- data/lib/trycourier/send/types/text_style.rb +12 -0
- data/lib/trycourier/send/types/timeout.rb +76 -0
- data/lib/trycourier/send/types/timeouts.rb +52 -0
- data/lib/trycourier/send/types/tracking_override.rb +47 -0
- data/lib/trycourier/send/types/user_recipient.rb +115 -0
- data/lib/trycourier/send/types/user_recipient_type.rb +41 -0
- data/lib/trycourier/send/types/utm.rb +68 -0
- data/lib/trycourier/send/types/widget_background.rb +52 -0
- data/lib/trycourier/templates/client.rb +67 -0
- data/lib/trycourier/templates/types/channel_identifier.rb +7 -0
- data/lib/trycourier/templates/types/list_templates_response.rb +62 -0
- data/lib/trycourier/templates/types/notification_templates.rb +90 -0
- data/lib/trycourier/templates/types/routing_strategy.rb +54 -0
- data/lib/trycourier/templates/types/routing_strategy_method.rb +10 -0
- data/lib/trycourier/templates/types/tag.rb +51 -0
- data/lib/trycourier/templates/types/tag_data.rb +52 -0
- data/lib/trycourier/tenants/client.rb +255 -0
- data/lib/trycourier/tenants/types/default_preferences.rb +51 -0
- data/lib/trycourier/tenants/types/list_users_for_tenant_response.rb +88 -0
- data/lib/trycourier/tenants/types/subscription_topic.rb +53 -0
- data/lib/trycourier/tenants/types/subscription_topic_status.rb +11 -0
- data/lib/trycourier/tenants/types/template_property.rb +7 -0
- data/lib/trycourier/tenants/types/tenant.rb +95 -0
- data/lib/trycourier/tenants/types/tenant_list_response.rb +86 -0
- data/lib/trycourier/translations/client.rb +106 -0
- data/lib/trycourier/types/send_message_response.rb +49 -0
- data/lib/trycourier/users/client.rb +34 -0
- data/lib/trycourier/users/preferences/client.rb +171 -0
- data/lib/trycourier/users/preferences/types/topic_preference.rb +86 -0
- data/lib/trycourier/users/preferences/types/user_preferences_get_response.rb +55 -0
- data/lib/trycourier/users/preferences/types/user_preferences_list_response.rb +64 -0
- data/lib/trycourier/users/preferences/types/user_preferences_update_response.rb +49 -0
- data/lib/trycourier/users/tenants/client.rb +267 -0
- data/lib/trycourier/users/tenants/types/add_user_to_single_tenants_params_profile.rb +76 -0
- data/lib/trycourier/users/tenants/types/list_tenants_for_user_response.rb +90 -0
- data/lib/trycourier/users/tokens/client.rb +264 -0
- data/lib/trycourier/users/tokens/types/delete_user_token_opts.rb +54 -0
- data/lib/trycourier/users/tokens/types/device.rb +83 -0
- data/lib/trycourier/users/tokens/types/expiry_date.rb +50 -0
- data/lib/trycourier/users/tokens/types/get_all_tokens_response.rb +11 -0
- data/lib/trycourier/users/tokens/types/get_user_token_opts.rb +54 -0
- data/lib/trycourier/users/tokens/types/get_user_token_response.rb +116 -0
- data/lib/trycourier/users/tokens/types/get_user_tokens_opts.rb +49 -0
- data/lib/trycourier/users/tokens/types/patch_op.rb +16 -0
- data/lib/trycourier/users/tokens/types/patch_operation.rb +59 -0
- data/lib/trycourier/users/tokens/types/patch_user_token_opts.rb +53 -0
- data/lib/trycourier/users/tokens/types/provider_key.rb +14 -0
- data/lib/trycourier/users/tokens/types/put_user_token_opts.rb +60 -0
- data/lib/trycourier/users/tokens/types/put_user_tokens_opts.rb +58 -0
- data/lib/trycourier/users/tokens/types/token_status.rb +14 -0
- data/lib/trycourier/users/tokens/types/tracking.rb +64 -0
- data/lib/trycourier/users/tokens/types/user_token.rb +102 -0
- data/lib/trycourier.rb +114 -138
- data/lib/types_export.rb +273 -0
- metadata +362 -50
- data/.github/ISSUE_TEMPLATE.md +0 -17
- data/.github/PULL_REQUEST_TEMPLATE.md +0 -27
- data/.github/workflows/gem-push.yml +0 -51
- data/.gitignore +0 -67
- data/.rspec +0 -3
- data/CHANGELOG.md +0 -126
- data/CONTRIBUTING.md +0 -28
- data/Gemfile +0 -8
- data/Gemfile.lock +0 -72
- data/LICENSE +0 -21
- data/README.md +0 -610
- data/Rakefile +0 -7
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/lib/trycourier/audiences.rb +0 -45
- data/lib/trycourier/audit_events.rb +0 -27
- data/lib/trycourier/auth_tokens.rb +0 -23
- data/lib/trycourier/automations.rb +0 -67
- data/lib/trycourier/brands.rb +0 -70
- data/lib/trycourier/bulk.rb +0 -79
- data/lib/trycourier/events.rb +0 -35
- data/lib/trycourier/exceptions.rb +0 -39
- data/lib/trycourier/lists.rb +0 -109
- data/lib/trycourier/messages.rb +0 -57
- data/lib/trycourier/profiles.rb +0 -64
- data/lib/trycourier/session.rb +0 -80
- data/lib/trycourier/tenants.rb +0 -43
- data/lib/trycourier/version.rb +0 -3
- data/trycourier.gemspec +0 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d6fc78d61e02ad7c369ebc96ffdf25f8bcc08e543edcedebebaa008ab4d19e7c
|
|
4
|
+
data.tar.gz: 87c2a103e25bb0dffdc0dba4e7bf019e5e6a525ceb7d3f6350bfce220db22e7a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4e35b5103acba7ae28197010a9f34dd2d0b4ac9d08523b4489554ff583dfeeca408e53a1d376d275ef11730cc350c7b7e675deadc01cd28e620a95c6faffa1cb
|
|
7
|
+
data.tar.gz: 4ffc7b152b08de3b3ca273036657253610de3a82266f1f7fed9880adb2bfb1128b756086784e7bece98ae8457a22da92d5ac62e72a006613617d9799e7b20a36
|
data/lib/environment.rb
ADDED
data/lib/gemconfig.rb
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Gemconfig
|
|
5
|
+
VERSION = ""
|
|
6
|
+
AUTHORS = ["Courier"].freeze
|
|
7
|
+
EMAIL = "support@courier.com"
|
|
8
|
+
SUMMARY = "Wraps calls to the Courier REST API"
|
|
9
|
+
DESCRIPTION = "Courier is the smartest way to design & deliver notifications. Design your notifications once, deliver them to any channel through one API."
|
|
10
|
+
HOMEPAGE = "https://github.com/trycourier/courier-ruby"
|
|
11
|
+
SOURCE_CODE_URI = "https://github.com/trycourier/courier-ruby"
|
|
12
|
+
CHANGELOG_URI = "https://github.com/trycourier/courier-ruby/blob/master/CHANGELOG.md"
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/requests.rb
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "environment"
|
|
4
|
+
require "faraday"
|
|
5
|
+
require "faraday/retry"
|
|
6
|
+
require "async/http/faraday"
|
|
7
|
+
|
|
8
|
+
module Courier
|
|
9
|
+
class RequestClient
|
|
10
|
+
attr_reader :headers, :base_url, :conn
|
|
11
|
+
|
|
12
|
+
# @param environment [Environment]
|
|
13
|
+
# @param max_retries [Long] The number of times to retry a failed request, defaults to 2.
|
|
14
|
+
# @param timeout_in_seconds [Long]
|
|
15
|
+
# @param authorization_token [String]
|
|
16
|
+
# @return [RequestClient]
|
|
17
|
+
def initialize(authorization_token:, environment: Environment::PRODUCTION, max_retries: nil,
|
|
18
|
+
timeout_in_seconds: nil)
|
|
19
|
+
@default_environment = environment
|
|
20
|
+
@base_url = environment
|
|
21
|
+
@headers = {
|
|
22
|
+
"X-Fern-Language": "Ruby",
|
|
23
|
+
"X-Fern-SDK-Name": "Courier",
|
|
24
|
+
"X-Fern-SDK-Version": "3.0.0-beta1",
|
|
25
|
+
"Authorization": %(Bearer #{authorization_token || ENV["COURIER_AUTH_TOKEN"]})
|
|
26
|
+
}
|
|
27
|
+
@conn = Faraday.new(@base_url, headers: @headers) do |faraday|
|
|
28
|
+
faraday.request :json
|
|
29
|
+
faraday.response :raise_error, include_request: true
|
|
30
|
+
faraday.request :retry, { max: max_retries } unless max_retries.nil?
|
|
31
|
+
faraday.options.timeout = timeout_in_seconds unless timeout_in_seconds.nil?
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class AsyncRequestClient
|
|
37
|
+
attr_reader :headers, :base_url, :conn
|
|
38
|
+
|
|
39
|
+
# @param environment [Environment]
|
|
40
|
+
# @param max_retries [Long] The number of times to retry a failed request, defaults to 2.
|
|
41
|
+
# @param timeout_in_seconds [Long]
|
|
42
|
+
# @param authorization_token [String]
|
|
43
|
+
# @return [AsyncRequestClient]
|
|
44
|
+
def initialize(authorization_token:, environment: Environment::PRODUCTION, max_retries: nil,
|
|
45
|
+
timeout_in_seconds: nil)
|
|
46
|
+
@default_environment = environment
|
|
47
|
+
@base_url = environment
|
|
48
|
+
@headers = {
|
|
49
|
+
"X-Fern-Language": "Ruby",
|
|
50
|
+
"X-Fern-SDK-Name": "Courier",
|
|
51
|
+
"X-Fern-SDK-Version": "3.0.0-beta1",
|
|
52
|
+
"Authorization": %(Bearer #{authorization_token || ENV["COURIER_AUTH_TOKEN"]})
|
|
53
|
+
}
|
|
54
|
+
@conn = Faraday.new(@base_url, headers: @headers) do |faraday|
|
|
55
|
+
faraday.request :json
|
|
56
|
+
faraday.response :raise_error, include_request: true
|
|
57
|
+
faraday.adapter :async_http
|
|
58
|
+
faraday.request :retry, { max: max_retries } unless max_retries.nil?
|
|
59
|
+
faraday.options.timeout = timeout_in_seconds unless timeout_in_seconds.nil?
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
# Additional options for request-specific configuration when calling APIs via the SDK.
|
|
65
|
+
class RequestOptions
|
|
66
|
+
attr_reader :authorization_token, :additional_headers, :additional_query_parameters, :additional_body_parameters,
|
|
67
|
+
:timeout_in_seconds
|
|
68
|
+
|
|
69
|
+
# @param authorization_token [String]
|
|
70
|
+
# @param additional_headers [Hash{String => Object}]
|
|
71
|
+
# @param additional_query_parameters [Hash{String => Object}]
|
|
72
|
+
# @param additional_body_parameters [Hash{String => Object}]
|
|
73
|
+
# @param timeout_in_seconds [Long]
|
|
74
|
+
# @return [RequestOptions]
|
|
75
|
+
def initialize(authorization_token: nil, additional_headers: nil, additional_query_parameters: nil,
|
|
76
|
+
additional_body_parameters: nil, timeout_in_seconds: nil)
|
|
77
|
+
# @type [String]
|
|
78
|
+
@authorization_token = authorization_token
|
|
79
|
+
# @type [Hash{String => Object}]
|
|
80
|
+
@additional_headers = additional_headers
|
|
81
|
+
# @type [Hash{String => Object}]
|
|
82
|
+
@additional_query_parameters = additional_query_parameters
|
|
83
|
+
# @type [Hash{String => Object}]
|
|
84
|
+
@additional_body_parameters = additional_body_parameters
|
|
85
|
+
# @type [Long]
|
|
86
|
+
@timeout_in_seconds = timeout_in_seconds
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
# Additional options for request-specific configuration when calling APIs via the SDK.
|
|
91
|
+
class IdempotencyRequestOptions
|
|
92
|
+
attr_reader :authorization_token, :additional_headers, :additional_query_parameters, :additional_body_parameters,
|
|
93
|
+
:timeout_in_seconds, :idempotency_key, :idempotency_expiry
|
|
94
|
+
|
|
95
|
+
# @param authorization_token [String]
|
|
96
|
+
# @param additional_headers [Hash{String => Object}]
|
|
97
|
+
# @param additional_query_parameters [Hash{String => Object}]
|
|
98
|
+
# @param additional_body_parameters [Hash{String => Object}]
|
|
99
|
+
# @param timeout_in_seconds [Long]
|
|
100
|
+
# @param idempotency_key [String]
|
|
101
|
+
# @param idempotency_expiry [Integer]
|
|
102
|
+
# @return [IdempotencyRequestOptions]
|
|
103
|
+
def initialize(authorization_token: nil, additional_headers: nil, additional_query_parameters: nil,
|
|
104
|
+
additional_body_parameters: nil, timeout_in_seconds: nil, idempotency_key: nil, idempotency_expiry: nil)
|
|
105
|
+
# @type [String]
|
|
106
|
+
@authorization_token = authorization_token
|
|
107
|
+
# @type [Hash{String => Object}]
|
|
108
|
+
@additional_headers = additional_headers
|
|
109
|
+
# @type [Hash{String => Object}]
|
|
110
|
+
@additional_query_parameters = additional_query_parameters
|
|
111
|
+
# @type [Hash{String => Object}]
|
|
112
|
+
@additional_body_parameters = additional_body_parameters
|
|
113
|
+
# @type [Long]
|
|
114
|
+
@timeout_in_seconds = timeout_in_seconds
|
|
115
|
+
# @type [String]
|
|
116
|
+
@idempotency_key = idempotency_key
|
|
117
|
+
# @type [Integer]
|
|
118
|
+
@idempotency_expiry = idempotency_expiry
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "../../requests"
|
|
4
|
+
require_relative "types/audience"
|
|
5
|
+
require_relative "types/filter"
|
|
6
|
+
require_relative "types/audience_update_response"
|
|
7
|
+
require_relative "types/audience_member_list_response"
|
|
8
|
+
require_relative "types/audience_list_response"
|
|
9
|
+
require "async"
|
|
10
|
+
|
|
11
|
+
module Courier
|
|
12
|
+
class AudiencesClient
|
|
13
|
+
attr_reader :request_client
|
|
14
|
+
|
|
15
|
+
# @param request_client [RequestClient]
|
|
16
|
+
# @return [AudiencesClient]
|
|
17
|
+
def initialize(request_client:)
|
|
18
|
+
# @type [RequestClient]
|
|
19
|
+
@request_client = request_client
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Returns the specified audience by id.
|
|
23
|
+
#
|
|
24
|
+
# @param audience_id [String] A unique identifier representing the audience_id
|
|
25
|
+
# @param request_options [RequestOptions]
|
|
26
|
+
# @return [Audiences::Audience]
|
|
27
|
+
def get(audience_id:, request_options: nil)
|
|
28
|
+
response = @request_client.conn.get("/audiences/#{audience_id}") do |req|
|
|
29
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
30
|
+
unless request_options&.authorization_token.nil?
|
|
31
|
+
req.headers["Authorization"] =
|
|
32
|
+
request_options.authorization_token
|
|
33
|
+
end
|
|
34
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
35
|
+
end
|
|
36
|
+
Audiences::Audience.from_json(json_object: response.body)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Creates or updates audience.
|
|
40
|
+
#
|
|
41
|
+
# @param audience_id [String] A unique identifier representing the audience id
|
|
42
|
+
# @param name [String] The name of the audience
|
|
43
|
+
# @param description [String] A description of the audience
|
|
44
|
+
# @param filter [Audiences::SingleFilterConfig, Audiences::NestedFilterConfig]
|
|
45
|
+
# @param request_options [RequestOptions]
|
|
46
|
+
# @return [Audiences::AudienceUpdateResponse]
|
|
47
|
+
def update(audience_id:, name: nil, description: nil, filter: nil, request_options: nil)
|
|
48
|
+
response = @request_client.conn.put("/audiences/#{audience_id}") do |req|
|
|
49
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
50
|
+
unless request_options&.authorization_token.nil?
|
|
51
|
+
req.headers["Authorization"] =
|
|
52
|
+
request_options.authorization_token
|
|
53
|
+
end
|
|
54
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
55
|
+
req.body = {
|
|
56
|
+
**(request_options&.additional_body_parameters || {}),
|
|
57
|
+
name: name,
|
|
58
|
+
description: description,
|
|
59
|
+
filter: filter
|
|
60
|
+
}.compact
|
|
61
|
+
end
|
|
62
|
+
Audiences::AudienceUpdateResponse.from_json(json_object: response.body)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Deletes the specified audience.
|
|
66
|
+
#
|
|
67
|
+
# @param audience_id [String] A unique identifier representing the audience id
|
|
68
|
+
# @param request_options [RequestOptions]
|
|
69
|
+
# @return [Void]
|
|
70
|
+
def delete(audience_id:, request_options: nil)
|
|
71
|
+
@request_client.conn.delete("/audiences/#{audience_id}") do |req|
|
|
72
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
73
|
+
unless request_options&.authorization_token.nil?
|
|
74
|
+
req.headers["Authorization"] =
|
|
75
|
+
request_options.authorization_token
|
|
76
|
+
end
|
|
77
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Get list of members of an audience.
|
|
82
|
+
#
|
|
83
|
+
# @param audience_id [String] A unique identifier representing the audience id
|
|
84
|
+
# @param cursor [String] A unique identifier that allows for fetching the next set of members
|
|
85
|
+
# @param request_options [RequestOptions]
|
|
86
|
+
# @return [Audiences::AudienceMemberListResponse]
|
|
87
|
+
def list_members(audience_id:, cursor: nil, request_options: nil)
|
|
88
|
+
response = @request_client.conn.get("/audiences/#{audience_id}/members") do |req|
|
|
89
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
90
|
+
unless request_options&.authorization_token.nil?
|
|
91
|
+
req.headers["Authorization"] =
|
|
92
|
+
request_options.authorization_token
|
|
93
|
+
end
|
|
94
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
95
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "cursor": cursor }.compact
|
|
96
|
+
end
|
|
97
|
+
Audiences::AudienceMemberListResponse.from_json(json_object: response.body)
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Get the audiences associated with the authorization token.
|
|
101
|
+
#
|
|
102
|
+
# @param cursor [String] A unique identifier that allows for fetching the next set of audiences
|
|
103
|
+
# @param request_options [RequestOptions]
|
|
104
|
+
# @return [Audiences::AudienceListResponse]
|
|
105
|
+
def list_audiences(cursor: nil, request_options: nil)
|
|
106
|
+
response = @request_client.conn.get("/audiences") do |req|
|
|
107
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
108
|
+
unless request_options&.authorization_token.nil?
|
|
109
|
+
req.headers["Authorization"] =
|
|
110
|
+
request_options.authorization_token
|
|
111
|
+
end
|
|
112
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
113
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "cursor": cursor }.compact
|
|
114
|
+
end
|
|
115
|
+
Audiences::AudienceListResponse.from_json(json_object: response.body)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
class AsyncAudiencesClient
|
|
120
|
+
attr_reader :request_client
|
|
121
|
+
|
|
122
|
+
# @param request_client [AsyncRequestClient]
|
|
123
|
+
# @return [AsyncAudiencesClient]
|
|
124
|
+
def initialize(request_client:)
|
|
125
|
+
# @type [AsyncRequestClient]
|
|
126
|
+
@request_client = request_client
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# Returns the specified audience by id.
|
|
130
|
+
#
|
|
131
|
+
# @param audience_id [String] A unique identifier representing the audience_id
|
|
132
|
+
# @param request_options [RequestOptions]
|
|
133
|
+
# @return [Audiences::Audience]
|
|
134
|
+
def get(audience_id:, request_options: nil)
|
|
135
|
+
Async do
|
|
136
|
+
response = @request_client.conn.get("/audiences/#{audience_id}") do |req|
|
|
137
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
138
|
+
unless request_options&.authorization_token.nil?
|
|
139
|
+
req.headers["Authorization"] =
|
|
140
|
+
request_options.authorization_token
|
|
141
|
+
end
|
|
142
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
143
|
+
end
|
|
144
|
+
Audiences::Audience.from_json(json_object: response.body)
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Creates or updates audience.
|
|
149
|
+
#
|
|
150
|
+
# @param audience_id [String] A unique identifier representing the audience id
|
|
151
|
+
# @param name [String] The name of the audience
|
|
152
|
+
# @param description [String] A description of the audience
|
|
153
|
+
# @param filter [Audiences::SingleFilterConfig, Audiences::NestedFilterConfig]
|
|
154
|
+
# @param request_options [RequestOptions]
|
|
155
|
+
# @return [Audiences::AudienceUpdateResponse]
|
|
156
|
+
def update(audience_id:, name: nil, description: nil, filter: nil, request_options: nil)
|
|
157
|
+
Async do
|
|
158
|
+
response = @request_client.conn.put("/audiences/#{audience_id}") do |req|
|
|
159
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
160
|
+
unless request_options&.authorization_token.nil?
|
|
161
|
+
req.headers["Authorization"] =
|
|
162
|
+
request_options.authorization_token
|
|
163
|
+
end
|
|
164
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
165
|
+
req.body = {
|
|
166
|
+
**(request_options&.additional_body_parameters || {}),
|
|
167
|
+
name: name,
|
|
168
|
+
description: description,
|
|
169
|
+
filter: filter
|
|
170
|
+
}.compact
|
|
171
|
+
end
|
|
172
|
+
Audiences::AudienceUpdateResponse.from_json(json_object: response.body)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Deletes the specified audience.
|
|
177
|
+
#
|
|
178
|
+
# @param audience_id [String] A unique identifier representing the audience id
|
|
179
|
+
# @param request_options [RequestOptions]
|
|
180
|
+
# @return [Void]
|
|
181
|
+
def delete(audience_id:, request_options: nil)
|
|
182
|
+
Async do
|
|
183
|
+
@request_client.conn.delete("/audiences/#{audience_id}") do |req|
|
|
184
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
185
|
+
unless request_options&.authorization_token.nil?
|
|
186
|
+
req.headers["Authorization"] =
|
|
187
|
+
request_options.authorization_token
|
|
188
|
+
end
|
|
189
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
# Get list of members of an audience.
|
|
195
|
+
#
|
|
196
|
+
# @param audience_id [String] A unique identifier representing the audience id
|
|
197
|
+
# @param cursor [String] A unique identifier that allows for fetching the next set of members
|
|
198
|
+
# @param request_options [RequestOptions]
|
|
199
|
+
# @return [Audiences::AudienceMemberListResponse]
|
|
200
|
+
def list_members(audience_id:, cursor: nil, request_options: nil)
|
|
201
|
+
Async do
|
|
202
|
+
response = @request_client.conn.get("/audiences/#{audience_id}/members") do |req|
|
|
203
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
204
|
+
unless request_options&.authorization_token.nil?
|
|
205
|
+
req.headers["Authorization"] =
|
|
206
|
+
request_options.authorization_token
|
|
207
|
+
end
|
|
208
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
209
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "cursor": cursor }.compact
|
|
210
|
+
end
|
|
211
|
+
Audiences::AudienceMemberListResponse.from_json(json_object: response.body)
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
# Get the audiences associated with the authorization token.
|
|
216
|
+
#
|
|
217
|
+
# @param cursor [String] A unique identifier that allows for fetching the next set of audiences
|
|
218
|
+
# @param request_options [RequestOptions]
|
|
219
|
+
# @return [Audiences::AudienceListResponse]
|
|
220
|
+
def list_audiences(cursor: nil, request_options: nil)
|
|
221
|
+
Async do
|
|
222
|
+
response = @request_client.conn.get("/audiences") do |req|
|
|
223
|
+
req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
|
|
224
|
+
unless request_options&.authorization_token.nil?
|
|
225
|
+
req.headers["Authorization"] =
|
|
226
|
+
request_options.authorization_token
|
|
227
|
+
end
|
|
228
|
+
req.headers = { **req.headers, **(request_options&.additional_headers || {}) }.compact
|
|
229
|
+
req.params = { **(request_options&.additional_query_parameters || {}), "cursor": cursor }.compact
|
|
230
|
+
end
|
|
231
|
+
Audiences::AudienceListResponse.from_json(json_object: response.body)
|
|
232
|
+
end
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "filter"
|
|
4
|
+
require "json"
|
|
5
|
+
|
|
6
|
+
module Courier
|
|
7
|
+
class Audiences
|
|
8
|
+
class Audience
|
|
9
|
+
attr_reader :id, :name, :description, :filter, :created_at, :updated_at, :additional_properties
|
|
10
|
+
|
|
11
|
+
# @param id [String] A unique identifier representing the audience_id
|
|
12
|
+
# @param name [String] The name of the audience
|
|
13
|
+
# @param description [String] A description of the audience
|
|
14
|
+
# @param filter [Audiences::Filter]
|
|
15
|
+
# @param created_at [String]
|
|
16
|
+
# @param updated_at [String]
|
|
17
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
18
|
+
# @return [Audiences::Audience]
|
|
19
|
+
def initialize(id:, name:, description:, filter:, created_at:, updated_at:, additional_properties: nil)
|
|
20
|
+
# @type [String] A unique identifier representing the audience_id
|
|
21
|
+
@id = id
|
|
22
|
+
# @type [String] The name of the audience
|
|
23
|
+
@name = name
|
|
24
|
+
# @type [String] A description of the audience
|
|
25
|
+
@description = description
|
|
26
|
+
# @type [Audiences::Filter]
|
|
27
|
+
@filter = filter
|
|
28
|
+
# @type [String]
|
|
29
|
+
@created_at = created_at
|
|
30
|
+
# @type [String]
|
|
31
|
+
@updated_at = updated_at
|
|
32
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
|
33
|
+
@additional_properties = additional_properties
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Deserialize a JSON object to an instance of Audience
|
|
37
|
+
#
|
|
38
|
+
# @param json_object [JSON]
|
|
39
|
+
# @return [Audiences::Audience]
|
|
40
|
+
def self.from_json(json_object:)
|
|
41
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
42
|
+
parsed_json = JSON.parse(json_object)
|
|
43
|
+
id = struct.id
|
|
44
|
+
name = struct.name
|
|
45
|
+
description = struct.description
|
|
46
|
+
if parsed_json["filter"].nil?
|
|
47
|
+
filter = nil
|
|
48
|
+
else
|
|
49
|
+
filter = parsed_json["filter"].to_json
|
|
50
|
+
filter = Audiences::Filter.from_json(json_object: filter)
|
|
51
|
+
end
|
|
52
|
+
created_at = struct.created_at
|
|
53
|
+
updated_at = struct.updated_at
|
|
54
|
+
new(id: id, name: name, description: description, filter: filter, created_at: created_at,
|
|
55
|
+
updated_at: updated_at, additional_properties: struct)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# Serialize an instance of Audience to a JSON object
|
|
59
|
+
#
|
|
60
|
+
# @return [JSON]
|
|
61
|
+
def to_json(*_args)
|
|
62
|
+
{
|
|
63
|
+
"id": @id,
|
|
64
|
+
"name": @name,
|
|
65
|
+
"description": @description,
|
|
66
|
+
"filter": @filter,
|
|
67
|
+
"created_at": @created_at,
|
|
68
|
+
"updated_at": @updated_at
|
|
69
|
+
}.to_json
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
|
73
|
+
#
|
|
74
|
+
# @param obj [Object]
|
|
75
|
+
# @return [Void]
|
|
76
|
+
def self.validate_raw(obj:)
|
|
77
|
+
obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
|
|
78
|
+
obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
|
|
79
|
+
obj.description.is_a?(String) != false || raise("Passed value for field obj.description is not the expected type, validation failed.")
|
|
80
|
+
Audiences::Filter.validate_raw(obj: obj.filter)
|
|
81
|
+
obj.created_at.is_a?(String) != false || raise("Passed value for field obj.created_at is not the expected type, validation failed.")
|
|
82
|
+
obj.updated_at.is_a?(String) != false || raise("Passed value for field obj.updated_at is not the expected type, validation failed.")
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "audience"
|
|
4
|
+
require_relative "../../commons/types/paging"
|
|
5
|
+
require "json"
|
|
6
|
+
|
|
7
|
+
module Courier
|
|
8
|
+
class Audiences
|
|
9
|
+
class AudienceListResponse
|
|
10
|
+
attr_reader :items, :paging, :additional_properties
|
|
11
|
+
|
|
12
|
+
# @param items [Array<Audiences::Audience>]
|
|
13
|
+
# @param paging [Commons::Paging]
|
|
14
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
15
|
+
# @return [Audiences::AudienceListResponse]
|
|
16
|
+
def initialize(items:, paging:, additional_properties: nil)
|
|
17
|
+
# @type [Array<Audiences::Audience>]
|
|
18
|
+
@items = items
|
|
19
|
+
# @type [Commons::Paging]
|
|
20
|
+
@paging = paging
|
|
21
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
|
22
|
+
@additional_properties = additional_properties
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Deserialize a JSON object to an instance of AudienceListResponse
|
|
26
|
+
#
|
|
27
|
+
# @param json_object [JSON]
|
|
28
|
+
# @return [Audiences::AudienceListResponse]
|
|
29
|
+
def self.from_json(json_object:)
|
|
30
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
31
|
+
parsed_json = JSON.parse(json_object)
|
|
32
|
+
items = parsed_json["items"]&.map do |v|
|
|
33
|
+
v = v.to_json
|
|
34
|
+
Audiences::Audience.from_json(json_object: v)
|
|
35
|
+
end
|
|
36
|
+
if parsed_json["paging"].nil?
|
|
37
|
+
paging = nil
|
|
38
|
+
else
|
|
39
|
+
paging = parsed_json["paging"].to_json
|
|
40
|
+
paging = Commons::Paging.from_json(json_object: paging)
|
|
41
|
+
end
|
|
42
|
+
new(items: items, paging: paging, additional_properties: struct)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Serialize an instance of AudienceListResponse to a JSON object
|
|
46
|
+
#
|
|
47
|
+
# @return [JSON]
|
|
48
|
+
def to_json(*_args)
|
|
49
|
+
{ "items": @items, "paging": @paging }.to_json
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
|
53
|
+
#
|
|
54
|
+
# @param obj [Object]
|
|
55
|
+
# @return [Void]
|
|
56
|
+
def self.validate_raw(obj:)
|
|
57
|
+
obj.items.is_a?(Array) != false || raise("Passed value for field obj.items is not the expected type, validation failed.")
|
|
58
|
+
Commons::Paging.validate_raw(obj: obj.paging)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "json"
|
|
4
|
+
|
|
5
|
+
module Courier
|
|
6
|
+
class Audiences
|
|
7
|
+
class AudienceMember
|
|
8
|
+
attr_reader :added_at, :audience_id, :audience_version, :member_id, :reason, :additional_properties
|
|
9
|
+
|
|
10
|
+
# @param added_at [String]
|
|
11
|
+
# @param audience_id [String]
|
|
12
|
+
# @param audience_version [Integer]
|
|
13
|
+
# @param member_id [String]
|
|
14
|
+
# @param reason [String]
|
|
15
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
16
|
+
# @return [Audiences::AudienceMember]
|
|
17
|
+
def initialize(added_at:, audience_id:, audience_version:, member_id:, reason:, additional_properties: nil)
|
|
18
|
+
# @type [String]
|
|
19
|
+
@added_at = added_at
|
|
20
|
+
# @type [String]
|
|
21
|
+
@audience_id = audience_id
|
|
22
|
+
# @type [Integer]
|
|
23
|
+
@audience_version = audience_version
|
|
24
|
+
# @type [String]
|
|
25
|
+
@member_id = member_id
|
|
26
|
+
# @type [String]
|
|
27
|
+
@reason = reason
|
|
28
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
|
29
|
+
@additional_properties = additional_properties
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Deserialize a JSON object to an instance of AudienceMember
|
|
33
|
+
#
|
|
34
|
+
# @param json_object [JSON]
|
|
35
|
+
# @return [Audiences::AudienceMember]
|
|
36
|
+
def self.from_json(json_object:)
|
|
37
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
38
|
+
JSON.parse(json_object)
|
|
39
|
+
added_at = struct.added_at
|
|
40
|
+
audience_id = struct.audience_id
|
|
41
|
+
audience_version = struct.audience_version
|
|
42
|
+
member_id = struct.member_id
|
|
43
|
+
reason = struct.reason
|
|
44
|
+
new(added_at: added_at, audience_id: audience_id, audience_version: audience_version, member_id: member_id,
|
|
45
|
+
reason: reason, additional_properties: struct)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Serialize an instance of AudienceMember to a JSON object
|
|
49
|
+
#
|
|
50
|
+
# @return [JSON]
|
|
51
|
+
def to_json(*_args)
|
|
52
|
+
{
|
|
53
|
+
"added_at": @added_at,
|
|
54
|
+
"audience_id": @audience_id,
|
|
55
|
+
"audience_version": @audience_version,
|
|
56
|
+
"member_id": @member_id,
|
|
57
|
+
"reason": @reason
|
|
58
|
+
}.to_json
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
|
62
|
+
#
|
|
63
|
+
# @param obj [Object]
|
|
64
|
+
# @return [Void]
|
|
65
|
+
def self.validate_raw(obj:)
|
|
66
|
+
obj.added_at.is_a?(String) != false || raise("Passed value for field obj.added_at is not the expected type, validation failed.")
|
|
67
|
+
obj.audience_id.is_a?(String) != false || raise("Passed value for field obj.audience_id is not the expected type, validation failed.")
|
|
68
|
+
obj.audience_version.is_a?(Integer) != false || raise("Passed value for field obj.audience_version is not the expected type, validation failed.")
|
|
69
|
+
obj.member_id.is_a?(String) != false || raise("Passed value for field obj.member_id is not the expected type, validation failed.")
|
|
70
|
+
obj.reason.is_a?(String) != false || raise("Passed value for field obj.reason is not the expected type, validation failed.")
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative "audience_member"
|
|
4
|
+
require "json"
|
|
5
|
+
|
|
6
|
+
module Courier
|
|
7
|
+
class Audiences
|
|
8
|
+
class AudienceMemberGetResponse
|
|
9
|
+
attr_reader :audience_member, :additional_properties
|
|
10
|
+
|
|
11
|
+
# @param audience_member [Audiences::AudienceMember]
|
|
12
|
+
# @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
|
|
13
|
+
# @return [Audiences::AudienceMemberGetResponse]
|
|
14
|
+
def initialize(audience_member:, additional_properties: nil)
|
|
15
|
+
# @type [Audiences::AudienceMember]
|
|
16
|
+
@audience_member = audience_member
|
|
17
|
+
# @type [OpenStruct] Additional properties unmapped to the current class definition
|
|
18
|
+
@additional_properties = additional_properties
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Deserialize a JSON object to an instance of AudienceMemberGetResponse
|
|
22
|
+
#
|
|
23
|
+
# @param json_object [JSON]
|
|
24
|
+
# @return [Audiences::AudienceMemberGetResponse]
|
|
25
|
+
def self.from_json(json_object:)
|
|
26
|
+
struct = JSON.parse(json_object, object_class: OpenStruct)
|
|
27
|
+
parsed_json = JSON.parse(json_object)
|
|
28
|
+
if parsed_json["audienceMember"].nil?
|
|
29
|
+
audience_member = nil
|
|
30
|
+
else
|
|
31
|
+
audience_member = parsed_json["audienceMember"].to_json
|
|
32
|
+
audience_member = Audiences::AudienceMember.from_json(json_object: audience_member)
|
|
33
|
+
end
|
|
34
|
+
new(audience_member: audience_member, additional_properties: struct)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Serialize an instance of AudienceMemberGetResponse to a JSON object
|
|
38
|
+
#
|
|
39
|
+
# @return [JSON]
|
|
40
|
+
def to_json(*_args)
|
|
41
|
+
{ "audienceMember": @audience_member }.to_json
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
|
|
45
|
+
#
|
|
46
|
+
# @param obj [Object]
|
|
47
|
+
# @return [Void]
|
|
48
|
+
def self.validate_raw(obj:)
|
|
49
|
+
Audiences::AudienceMember.validate_raw(obj: obj.audience_member)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|