daknode 0.3.8__tar.gz → 0.3.10__tar.gz
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.
- daknode-0.3.10/PKG-INFO +125 -0
- daknode-0.3.10/README.md +102 -0
- daknode-0.3.10/daknode/api/calendar/book_calendar_event.py +193 -0
- daknode-0.3.10/daknode/api/calendar/edit_calendar_series.py +222 -0
- daknode-0.3.10/daknode/api/calendar/get_calendar_availability.py +178 -0
- daknode-0.3.10/daknode/api/calendar/get_calendar_free_busy.py +178 -0
- daknode-0.3.10/daknode/api/calendar/get_calendar_reminders.py +169 -0
- daknode-0.3.10/daknode/api/calendar/set_calendar_reminders.py +206 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/__init__.py +22 -0
- daknode-0.3.10/daknode/models/availability_input.py +116 -0
- daknode-0.3.10/daknode/models/availability_out.py +95 -0
- daknode-0.3.10/daknode/models/booking_input.py +66 -0
- daknode-0.3.10/daknode/models/free_busy_out.py +86 -0
- daknode-0.3.10/daknode/models/interval_out.py +69 -0
- daknode-0.3.10/daknode/models/reminder_input.py +40 -0
- daknode-0.3.10/daknode/models/reminder_out.py +57 -0
- daknode-0.3.10/daknode/models/series_edit_input.py +110 -0
- daknode-0.3.10/daknode/models/series_edit_input_scope.py +10 -0
- daknode-0.3.10/daknode/models/subscription_change_event_types_type_0_item.py +16 -0
- daknode-0.3.10/daknode/models/subscription_create_event_types_item.py +16 -0
- daknode-0.3.10/daknode/models/subscription_out_event_types_item.py +16 -0
- daknode-0.3.10/daknode/models/window_input.py +50 -0
- daknode-0.3.10/daknode/models/working_hours.py +56 -0
- {daknode-0.3.8 → daknode-0.3.10}/pyproject.toml +8 -2
- daknode-0.3.8/PKG-INFO +0 -143
- daknode-0.3.8/README.md +0 -124
- daknode-0.3.8/daknode/models/subscription_change_event_types_type_0_item.py +0 -9
- daknode-0.3.8/daknode/models/subscription_create_event_types_item.py +0 -9
- daknode-0.3.8/daknode/models/subscription_out_event_types_item.py +0 -9
- {daknode-0.3.8 → daknode-0.3.10}/daknode/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/block_rules/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/block_rules/create_block_rule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/block_rules/create_inbox_block_rule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/block_rules/delete_block_rule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/block_rules/list_block_rules.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/block_rules/list_inbox_block_rules.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/cancel_calendar_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/create_calendar_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/delete_calendar_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/delete_calendar_exception.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/get_calendar_agenda.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/get_calendar_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/list_calendar_events.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/list_calendar_instances.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/list_calendar_invitations.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/poll_calendar_changes.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/put_calendar_exception.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/respond_calendar_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/send_calendar_invitations.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/calendar/update_calendar_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/consent/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/consent/create_consent.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/consent/revoke.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/control_plane/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/control_plane/close_workspace.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/control_plane/create_workspace.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/control_plane/list_workspaces.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/control_plane/read_workspace.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/control_plane/update_workspace.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/dead_letters/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/dead_letters/list_dead_letters.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/dead_letters/replay_dead_letter.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/domains/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/domains/disable_domain.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/domains/get_domain.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/domains/list_domains.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/domains/register_domain.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/domains/verify_domain.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/cancel_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/create_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/delete_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/get_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/list_drafts.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/schedule_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/send_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/drafts/update_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/events/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/events/poll_inbox_events.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/create_inbox.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/delete_inbox.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/get_inbox.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/list_inboxes.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/register_webhook.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/rotate_webhook_secret.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/inboxes/update_inbox.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/create_inbox_mail_policy_rule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/create_mail_policy_rule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/delete_mail_policy_rule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/get_inbox_mail_policy.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/get_mail_policy.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/list_inbox_mail_policy_rules.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/list_mail_policy_rules.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/update_inbox_mail_policy.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/mail_policy/update_mail_policy.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/download_raw_message.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/download_received_attachment.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/get_message.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/get_thread.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/list_messages.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/list_received_attachments.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/list_threads.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/messages/update_message_state.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/metrics/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/metrics/inbox_metrics.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/metrics/workspace_metrics.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/privacy/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/privacy/create_erasure_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/privacy/read_erasure_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/public/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/public/agent_signup.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/public/agent_verify.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/search/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/search/search.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/security/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/security/get_risk_feedback.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/security/list_audit_events.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/security/record_risk_feedback.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/send/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/send/forward_message.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/send/send.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/__init__.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/create_webhook_subscription.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/delete_webhook_subscription.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/get_webhook_subscription.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/list_webhook_subscriptions.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/rotate_webhook_subscription.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/api/webhook_subscriptions/update_webhook_subscription.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/client.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/errors.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/attachment_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/attendee_input.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/attendee_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/attendee_out_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/audit_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/audit_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/block_rule_create.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/block_rule_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/block_rule_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/calendar_fact.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/calendar_fact_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/check_domain_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/consent_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/consent_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/create_erasure_request_response_create_erasure_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/create_in.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/daily_usage.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/dead_letter_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/delivery_cohort.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/delivery_cohort_current_status.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/delivery_cohort_provider_outcomes.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/delivery_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/dns_record.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/domain_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/domain_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_create.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_edit.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_file_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_message_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_out_state.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/draft_schedule.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/erasure_request_body.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/event_create.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/event_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/event_out_source.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/event_out_status.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/event_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/event_patch.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/exception_put.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/feedback_change.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/feedback_change_assessment.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/feedback_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/feedback_out_assessment.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/forward_message_response_forward_message.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/forward_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/http_validation_error.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_create_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_deleted.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_event.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_event_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/inbox_update_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/instance_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/instance_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/invitation_input.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/invitation_input_method.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/list_drafts_state_type_0.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/message_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/message_out_spam_verdict_type_0.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/message_out_virus_verdict_type_0.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/message_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/message_state.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/metrics_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/metrics_window.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/outgoing_attachment.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/policy_change.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/policy_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/poll_inbox_events_start.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/read_erasure_request_response_read_erasure_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/register_domain_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/replay_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/respond_input.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/respond_input_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/revision.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/revoke_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/revoke_response_revoke.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_create.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_create_direction.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_create_effect.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_out_direction.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_out_effect.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/rule_out_kind.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/search_match.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/search_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/search_response.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/send_draft_response_send_draft.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/send_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/send_response_send.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/signup_in.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/signup_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/state_change.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/subscription_change.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/subscription_change_headers_type_0.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/subscription_create.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/subscription_create_headers.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/subscription_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/thread_detail_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/thread_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/thread_page.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/timeline_item_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/update_in.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/usage_counts.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/validation_error.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/validation_error_context.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/verify_in.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/verify_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/webhook_register_request.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/workspace_list_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/models/workspace_out.py +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/py.typed +0 -0
- {daknode-0.3.8 → daknode-0.3.10}/daknode/types.py +0 -0
daknode-0.3.10/PKG-INFO
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: daknode
|
|
3
|
+
Version: 0.3.10
|
|
4
|
+
Summary: Typed sync and async client for DakNode's email and inbox-calendar API
|
|
5
|
+
Keywords: daknode,email,calendar,sdk
|
|
6
|
+
Requires-Python: >=3.9,<4.0
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
15
|
+
Requires-Dist: attrs (>=22.2.0)
|
|
16
|
+
Requires-Dist: httpx (>=0.23.0,<0.29.0)
|
|
17
|
+
Requires-Dist: python-dateutil (>=2.8.0,<3.0.0)
|
|
18
|
+
Project-URL: Documentation, https://daknode.com/integrations/python/
|
|
19
|
+
Project-URL: Homepage, https://daknode.com
|
|
20
|
+
Project-URL: Security, https://daknode.com/security/reporting/
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
|
|
23
|
+
# DakNode Python SDK
|
|
24
|
+
|
|
25
|
+
Typed synchronous and asynchronous client for DakNode's public email and
|
|
26
|
+
inbox-calendar API. Keep credentials on your server, never in browser code.
|
|
27
|
+
|
|
28
|
+
## Install and configure
|
|
29
|
+
|
|
30
|
+
Use Python 3.10+ for this starter, in an isolated virtual environment.
|
|
31
|
+
|
|
32
|
+
```sh
|
|
33
|
+
python -m pip install 'daknode>=0.3.9,<0.4'
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Configure DAKNODE_API_KEY through your server's private secret settings and
|
|
37
|
+
DAKNODE_INBOX_ID with an inbox UUID you are authorized to read. Obtain both from
|
|
38
|
+
the console. Do not put keys in command arguments, chat, source control or logs.
|
|
39
|
+
The operation needs messages.read. Workspace boundaries apply; inbox-scoped
|
|
40
|
+
keys require an eligible plan. Do not add send permissions for this example.
|
|
41
|
+
|
|
42
|
+
## First operation: count one page
|
|
43
|
+
|
|
44
|
+
Save this tested starter as daknode_tools.py, then run
|
|
45
|
+
`python daknode_tools.py` in the configured environment. It makes one bounded
|
|
46
|
+
read and prints only a count. Importing the module performs no request.
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
"""Customer-side tools: one bounded SDK read, no mail contents or agent loop."""
|
|
50
|
+
import os
|
|
51
|
+
from uuid import UUID
|
|
52
|
+
|
|
53
|
+
from daknode import AuthenticatedClient
|
|
54
|
+
from daknode.api.messages import list_messages
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def count_recent_mail() -> int:
|
|
58
|
+
"""Count up to ten retained messages in the privately configured inbox."""
|
|
59
|
+
key = os.environ.get("DAKNODE_API_KEY", "").strip()
|
|
60
|
+
identifier = os.environ.get("DAKNODE_INBOX_ID", "")
|
|
61
|
+
if not key or not identifier:
|
|
62
|
+
raise RuntimeError("Configure DAKNODE_API_KEY and DAKNODE_INBOX_ID privately")
|
|
63
|
+
try:
|
|
64
|
+
inbox_id = UUID(identifier)
|
|
65
|
+
except ValueError:
|
|
66
|
+
raise RuntimeError("DAKNODE_INBOX_ID must be a valid inbox UUID") from None
|
|
67
|
+
try:
|
|
68
|
+
with AuthenticatedClient(base_url="https://api.daknode.com", token=key, timeout=10) as client:
|
|
69
|
+
response = list_messages.sync_detailed(inbox_id, client=client, limit=10)
|
|
70
|
+
except Exception:
|
|
71
|
+
# Do not propagate SDK/transport exceptions containing request headers.
|
|
72
|
+
raise RuntimeError("DakNode could not be reached; no mail was changed") from None
|
|
73
|
+
if response.status_code != 200 or response.parsed is None:
|
|
74
|
+
raise RuntimeError("DakNode refused the read; check permissions and inbox scope")
|
|
75
|
+
return len(response.parsed.items)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
if __name__ == "__main__":
|
|
79
|
+
print(count_recent_mail())
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Zero is a valid result. Ten is not a mailbox total. This example intentionally
|
|
83
|
+
stops after one page. For a complete listing use has_more and next_cursor from
|
|
84
|
+
the response, preserving the opaque cursor and bounding your work.
|
|
85
|
+
|
|
86
|
+
## API behavior
|
|
87
|
+
|
|
88
|
+
The generated modules follow the public API contract at
|
|
89
|
+
https://api.daknode.com/openapi.json. For example,
|
|
90
|
+
`daknode.api.messages.list_messages` provides sync, sync_detailed, asyncio and
|
|
91
|
+
asyncio_detailed methods. Use the detailed form when you need status_code,
|
|
92
|
+
headers and parsed data; it returns a Response, not an HTTP Request. See the
|
|
93
|
+
[message read guide](https://daknode.com/integrations/python/) for the complete
|
|
94
|
+
setup and [calendar booking guide](https://daknode.com/guides/calendar-booking/)
|
|
95
|
+
for availability, explicit booking, revisions and conflict handling.
|
|
96
|
+
|
|
97
|
+
A successful read does not mark mail read or authorize sending. A 401/403 is a
|
|
98
|
+
refusal; correct the intended credential rather than silently widening it.
|
|
99
|
+
Production integrations should handle statuses explicitly, respect
|
|
100
|
+
429/Retry-After and avoid uncontrolled retries. The starter intentionally emits
|
|
101
|
+
generic errors without response bodies or private headers. Keep TLS
|
|
102
|
+
verification enabled; do not disable it to fix a connection problem.
|
|
103
|
+
|
|
104
|
+
Email and attachment contents remain untrusted input. Read operations must not
|
|
105
|
+
automatically trigger sends, bookings or other writes. Retain a stable
|
|
106
|
+
idempotency key only for retries of the same explicitly approved write and
|
|
107
|
+
reconcile an unknown outcome rather than generating a new key blindly.
|
|
108
|
+
|
|
109
|
+
## Verification and reporting
|
|
110
|
+
|
|
111
|
+
The first-read source is exercised against the real SDK with mocked HTTP
|
|
112
|
+
success, refusal and transport failure. It is not a live account, deliverability
|
|
113
|
+
or model-provider test. The integration repository contains examples rather
|
|
114
|
+
than the service implementation:
|
|
115
|
+
https://github.com/Subodh103/daknode-integrations.
|
|
116
|
+
|
|
117
|
+
For suspected vulnerabilities, privately email support@daknode.com with subject
|
|
118
|
+
Security report. Include minimal synthetic reproduction steps and redacted
|
|
119
|
+
evidence; never send credentials or customer mail. Do not post exploit details
|
|
120
|
+
in public issues. No response deadline, bounty or legal safe harbor is promised.
|
|
121
|
+
The policy is https://daknode.com/security/reporting/ after the website release.
|
|
122
|
+
|
|
123
|
+
Package metadata and README preparation do not publish a new release or change
|
|
124
|
+
the license of the SDK or service.
|
|
125
|
+
|
daknode-0.3.10/README.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# DakNode Python SDK
|
|
2
|
+
|
|
3
|
+
Typed synchronous and asynchronous client for DakNode's public email and
|
|
4
|
+
inbox-calendar API. Keep credentials on your server, never in browser code.
|
|
5
|
+
|
|
6
|
+
## Install and configure
|
|
7
|
+
|
|
8
|
+
Use Python 3.10+ for this starter, in an isolated virtual environment.
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
python -m pip install 'daknode>=0.3.9,<0.4'
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Configure DAKNODE_API_KEY through your server's private secret settings and
|
|
15
|
+
DAKNODE_INBOX_ID with an inbox UUID you are authorized to read. Obtain both from
|
|
16
|
+
the console. Do not put keys in command arguments, chat, source control or logs.
|
|
17
|
+
The operation needs messages.read. Workspace boundaries apply; inbox-scoped
|
|
18
|
+
keys require an eligible plan. Do not add send permissions for this example.
|
|
19
|
+
|
|
20
|
+
## First operation: count one page
|
|
21
|
+
|
|
22
|
+
Save this tested starter as daknode_tools.py, then run
|
|
23
|
+
`python daknode_tools.py` in the configured environment. It makes one bounded
|
|
24
|
+
read and prints only a count. Importing the module performs no request.
|
|
25
|
+
|
|
26
|
+
```python
|
|
27
|
+
"""Customer-side tools: one bounded SDK read, no mail contents or agent loop."""
|
|
28
|
+
import os
|
|
29
|
+
from uuid import UUID
|
|
30
|
+
|
|
31
|
+
from daknode import AuthenticatedClient
|
|
32
|
+
from daknode.api.messages import list_messages
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def count_recent_mail() -> int:
|
|
36
|
+
"""Count up to ten retained messages in the privately configured inbox."""
|
|
37
|
+
key = os.environ.get("DAKNODE_API_KEY", "").strip()
|
|
38
|
+
identifier = os.environ.get("DAKNODE_INBOX_ID", "")
|
|
39
|
+
if not key or not identifier:
|
|
40
|
+
raise RuntimeError("Configure DAKNODE_API_KEY and DAKNODE_INBOX_ID privately")
|
|
41
|
+
try:
|
|
42
|
+
inbox_id = UUID(identifier)
|
|
43
|
+
except ValueError:
|
|
44
|
+
raise RuntimeError("DAKNODE_INBOX_ID must be a valid inbox UUID") from None
|
|
45
|
+
try:
|
|
46
|
+
with AuthenticatedClient(base_url="https://api.daknode.com", token=key, timeout=10) as client:
|
|
47
|
+
response = list_messages.sync_detailed(inbox_id, client=client, limit=10)
|
|
48
|
+
except Exception:
|
|
49
|
+
# Do not propagate SDK/transport exceptions containing request headers.
|
|
50
|
+
raise RuntimeError("DakNode could not be reached; no mail was changed") from None
|
|
51
|
+
if response.status_code != 200 or response.parsed is None:
|
|
52
|
+
raise RuntimeError("DakNode refused the read; check permissions and inbox scope")
|
|
53
|
+
return len(response.parsed.items)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if __name__ == "__main__":
|
|
57
|
+
print(count_recent_mail())
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Zero is a valid result. Ten is not a mailbox total. This example intentionally
|
|
61
|
+
stops after one page. For a complete listing use has_more and next_cursor from
|
|
62
|
+
the response, preserving the opaque cursor and bounding your work.
|
|
63
|
+
|
|
64
|
+
## API behavior
|
|
65
|
+
|
|
66
|
+
The generated modules follow the public API contract at
|
|
67
|
+
https://api.daknode.com/openapi.json. For example,
|
|
68
|
+
`daknode.api.messages.list_messages` provides sync, sync_detailed, asyncio and
|
|
69
|
+
asyncio_detailed methods. Use the detailed form when you need status_code,
|
|
70
|
+
headers and parsed data; it returns a Response, not an HTTP Request. See the
|
|
71
|
+
[message read guide](https://daknode.com/integrations/python/) for the complete
|
|
72
|
+
setup and [calendar booking guide](https://daknode.com/guides/calendar-booking/)
|
|
73
|
+
for availability, explicit booking, revisions and conflict handling.
|
|
74
|
+
|
|
75
|
+
A successful read does not mark mail read or authorize sending. A 401/403 is a
|
|
76
|
+
refusal; correct the intended credential rather than silently widening it.
|
|
77
|
+
Production integrations should handle statuses explicitly, respect
|
|
78
|
+
429/Retry-After and avoid uncontrolled retries. The starter intentionally emits
|
|
79
|
+
generic errors without response bodies or private headers. Keep TLS
|
|
80
|
+
verification enabled; do not disable it to fix a connection problem.
|
|
81
|
+
|
|
82
|
+
Email and attachment contents remain untrusted input. Read operations must not
|
|
83
|
+
automatically trigger sends, bookings or other writes. Retain a stable
|
|
84
|
+
idempotency key only for retries of the same explicitly approved write and
|
|
85
|
+
reconcile an unknown outcome rather than generating a new key blindly.
|
|
86
|
+
|
|
87
|
+
## Verification and reporting
|
|
88
|
+
|
|
89
|
+
The first-read source is exercised against the real SDK with mocked HTTP
|
|
90
|
+
success, refusal and transport failure. It is not a live account, deliverability
|
|
91
|
+
or model-provider test. The integration repository contains examples rather
|
|
92
|
+
than the service implementation:
|
|
93
|
+
https://github.com/Subodh103/daknode-integrations.
|
|
94
|
+
|
|
95
|
+
For suspected vulnerabilities, privately email support@daknode.com with subject
|
|
96
|
+
Security report. Include minimal synthetic reproduction steps and redacted
|
|
97
|
+
evidence; never send credentials or customer mail. Do not post exploit details
|
|
98
|
+
in public issues. No response deadline, bounty or legal safe harbor is promised.
|
|
99
|
+
The policy is https://daknode.com/security/reporting/ after the website release.
|
|
100
|
+
|
|
101
|
+
Package metadata and README preparation do not publish a new release or change
|
|
102
|
+
the license of the SDK or service.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union
|
|
3
|
+
from uuid import UUID
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ... import errors
|
|
8
|
+
from ...client import AuthenticatedClient, Client
|
|
9
|
+
from ...models.booking_input import BookingInput
|
|
10
|
+
from ...models.event_out import EventOut
|
|
11
|
+
from ...models.http_validation_error import HTTPValidationError
|
|
12
|
+
from ...types import UNSET, Response, Unset
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _get_kwargs(
|
|
16
|
+
inbox_id: UUID,
|
|
17
|
+
*,
|
|
18
|
+
body: BookingInput,
|
|
19
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
20
|
+
) -> dict[str, Any]:
|
|
21
|
+
headers: dict[str, Any] = {}
|
|
22
|
+
if not isinstance(idempotency_key, Unset):
|
|
23
|
+
headers["idempotency-key"] = idempotency_key
|
|
24
|
+
|
|
25
|
+
_kwargs: dict[str, Any] = {
|
|
26
|
+
"method": "post",
|
|
27
|
+
"url": f"/v1/inboxes/{inbox_id}/calendar/bookings",
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
_kwargs["json"] = body.to_dict()
|
|
31
|
+
|
|
32
|
+
headers["Content-Type"] = "application/json"
|
|
33
|
+
|
|
34
|
+
_kwargs["headers"] = headers
|
|
35
|
+
return _kwargs
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def _parse_response(
|
|
39
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
40
|
+
) -> Optional[Union[EventOut, HTTPValidationError]]:
|
|
41
|
+
if response.status_code == 201:
|
|
42
|
+
response_201 = EventOut.from_dict(response.json())
|
|
43
|
+
|
|
44
|
+
return response_201
|
|
45
|
+
if response.status_code == 422:
|
|
46
|
+
response_422 = HTTPValidationError.from_dict(response.json())
|
|
47
|
+
|
|
48
|
+
return response_422
|
|
49
|
+
if client.raise_on_unexpected_status:
|
|
50
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
51
|
+
else:
|
|
52
|
+
return None
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _build_response(
|
|
56
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
57
|
+
) -> Response[Union[EventOut, HTTPValidationError]]:
|
|
58
|
+
return Response(
|
|
59
|
+
status_code=HTTPStatus(response.status_code),
|
|
60
|
+
content=response.content,
|
|
61
|
+
headers=response.headers,
|
|
62
|
+
parsed=_parse_response(client=client, response=response),
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
def sync_detailed(
|
|
67
|
+
inbox_id: UUID,
|
|
68
|
+
*,
|
|
69
|
+
client: AuthenticatedClient,
|
|
70
|
+
body: BookingInput,
|
|
71
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
72
|
+
) -> Response[Union[EventOut, HTTPValidationError]]:
|
|
73
|
+
"""Book Calendar Event
|
|
74
|
+
|
|
75
|
+
Args:
|
|
76
|
+
inbox_id (UUID):
|
|
77
|
+
idempotency_key (Union[None, Unset, str]):
|
|
78
|
+
body (BookingInput):
|
|
79
|
+
|
|
80
|
+
Raises:
|
|
81
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
82
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
Response[Union[EventOut, HTTPValidationError]]
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
kwargs = _get_kwargs(
|
|
89
|
+
inbox_id=inbox_id,
|
|
90
|
+
body=body,
|
|
91
|
+
idempotency_key=idempotency_key,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
response = client.get_httpx_client().request(
|
|
95
|
+
**kwargs,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
return _build_response(client=client, response=response)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def sync(
|
|
102
|
+
inbox_id: UUID,
|
|
103
|
+
*,
|
|
104
|
+
client: AuthenticatedClient,
|
|
105
|
+
body: BookingInput,
|
|
106
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
107
|
+
) -> Optional[Union[EventOut, HTTPValidationError]]:
|
|
108
|
+
"""Book Calendar Event
|
|
109
|
+
|
|
110
|
+
Args:
|
|
111
|
+
inbox_id (UUID):
|
|
112
|
+
idempotency_key (Union[None, Unset, str]):
|
|
113
|
+
body (BookingInput):
|
|
114
|
+
|
|
115
|
+
Raises:
|
|
116
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
117
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
118
|
+
|
|
119
|
+
Returns:
|
|
120
|
+
Union[EventOut, HTTPValidationError]
|
|
121
|
+
"""
|
|
122
|
+
|
|
123
|
+
return sync_detailed(
|
|
124
|
+
inbox_id=inbox_id,
|
|
125
|
+
client=client,
|
|
126
|
+
body=body,
|
|
127
|
+
idempotency_key=idempotency_key,
|
|
128
|
+
).parsed
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
async def asyncio_detailed(
|
|
132
|
+
inbox_id: UUID,
|
|
133
|
+
*,
|
|
134
|
+
client: AuthenticatedClient,
|
|
135
|
+
body: BookingInput,
|
|
136
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
137
|
+
) -> Response[Union[EventOut, HTTPValidationError]]:
|
|
138
|
+
"""Book Calendar Event
|
|
139
|
+
|
|
140
|
+
Args:
|
|
141
|
+
inbox_id (UUID):
|
|
142
|
+
idempotency_key (Union[None, Unset, str]):
|
|
143
|
+
body (BookingInput):
|
|
144
|
+
|
|
145
|
+
Raises:
|
|
146
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
147
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
148
|
+
|
|
149
|
+
Returns:
|
|
150
|
+
Response[Union[EventOut, HTTPValidationError]]
|
|
151
|
+
"""
|
|
152
|
+
|
|
153
|
+
kwargs = _get_kwargs(
|
|
154
|
+
inbox_id=inbox_id,
|
|
155
|
+
body=body,
|
|
156
|
+
idempotency_key=idempotency_key,
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
160
|
+
|
|
161
|
+
return _build_response(client=client, response=response)
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
async def asyncio(
|
|
165
|
+
inbox_id: UUID,
|
|
166
|
+
*,
|
|
167
|
+
client: AuthenticatedClient,
|
|
168
|
+
body: BookingInput,
|
|
169
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
170
|
+
) -> Optional[Union[EventOut, HTTPValidationError]]:
|
|
171
|
+
"""Book Calendar Event
|
|
172
|
+
|
|
173
|
+
Args:
|
|
174
|
+
inbox_id (UUID):
|
|
175
|
+
idempotency_key (Union[None, Unset, str]):
|
|
176
|
+
body (BookingInput):
|
|
177
|
+
|
|
178
|
+
Raises:
|
|
179
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
180
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
Union[EventOut, HTTPValidationError]
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
return (
|
|
187
|
+
await asyncio_detailed(
|
|
188
|
+
inbox_id=inbox_id,
|
|
189
|
+
client=client,
|
|
190
|
+
body=body,
|
|
191
|
+
idempotency_key=idempotency_key,
|
|
192
|
+
)
|
|
193
|
+
).parsed
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
from http import HTTPStatus
|
|
2
|
+
from typing import Any, Optional, Union
|
|
3
|
+
from uuid import UUID
|
|
4
|
+
|
|
5
|
+
import httpx
|
|
6
|
+
|
|
7
|
+
from ... import errors
|
|
8
|
+
from ...client import AuthenticatedClient, Client
|
|
9
|
+
from ...models.event_out import EventOut
|
|
10
|
+
from ...models.http_validation_error import HTTPValidationError
|
|
11
|
+
from ...models.series_edit_input import SeriesEditInput
|
|
12
|
+
from ...types import UNSET, Response, Unset
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def _get_kwargs(
|
|
16
|
+
inbox_id: UUID,
|
|
17
|
+
event_id: UUID,
|
|
18
|
+
*,
|
|
19
|
+
body: SeriesEditInput,
|
|
20
|
+
if_match: Union[None, Unset, str] = UNSET,
|
|
21
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
22
|
+
) -> dict[str, Any]:
|
|
23
|
+
headers: dict[str, Any] = {}
|
|
24
|
+
if not isinstance(if_match, Unset):
|
|
25
|
+
headers["if-match"] = if_match
|
|
26
|
+
|
|
27
|
+
if not isinstance(idempotency_key, Unset):
|
|
28
|
+
headers["idempotency-key"] = idempotency_key
|
|
29
|
+
|
|
30
|
+
_kwargs: dict[str, Any] = {
|
|
31
|
+
"method": "post",
|
|
32
|
+
"url": f"/v1/inboxes/{inbox_id}/calendar/events/{event_id}/series-edit",
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
_kwargs["json"] = body.to_dict()
|
|
36
|
+
|
|
37
|
+
headers["Content-Type"] = "application/json"
|
|
38
|
+
|
|
39
|
+
_kwargs["headers"] = headers
|
|
40
|
+
return _kwargs
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _parse_response(
|
|
44
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
45
|
+
) -> Optional[Union[EventOut, HTTPValidationError]]:
|
|
46
|
+
if response.status_code == 200:
|
|
47
|
+
response_200 = EventOut.from_dict(response.json())
|
|
48
|
+
|
|
49
|
+
return response_200
|
|
50
|
+
if response.status_code == 422:
|
|
51
|
+
response_422 = HTTPValidationError.from_dict(response.json())
|
|
52
|
+
|
|
53
|
+
return response_422
|
|
54
|
+
if client.raise_on_unexpected_status:
|
|
55
|
+
raise errors.UnexpectedStatus(response.status_code, response.content)
|
|
56
|
+
else:
|
|
57
|
+
return None
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def _build_response(
|
|
61
|
+
*, client: Union[AuthenticatedClient, Client], response: httpx.Response
|
|
62
|
+
) -> Response[Union[EventOut, HTTPValidationError]]:
|
|
63
|
+
return Response(
|
|
64
|
+
status_code=HTTPStatus(response.status_code),
|
|
65
|
+
content=response.content,
|
|
66
|
+
headers=response.headers,
|
|
67
|
+
parsed=_parse_response(client=client, response=response),
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def sync_detailed(
|
|
72
|
+
inbox_id: UUID,
|
|
73
|
+
event_id: UUID,
|
|
74
|
+
*,
|
|
75
|
+
client: AuthenticatedClient,
|
|
76
|
+
body: SeriesEditInput,
|
|
77
|
+
if_match: Union[None, Unset, str] = UNSET,
|
|
78
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
79
|
+
) -> Response[Union[EventOut, HTTPValidationError]]:
|
|
80
|
+
"""Edit Calendar Series
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
inbox_id (UUID):
|
|
84
|
+
event_id (UUID):
|
|
85
|
+
if_match (Union[None, Unset, str]):
|
|
86
|
+
idempotency_key (Union[None, Unset, str]):
|
|
87
|
+
body (SeriesEditInput):
|
|
88
|
+
|
|
89
|
+
Raises:
|
|
90
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
91
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
92
|
+
|
|
93
|
+
Returns:
|
|
94
|
+
Response[Union[EventOut, HTTPValidationError]]
|
|
95
|
+
"""
|
|
96
|
+
|
|
97
|
+
kwargs = _get_kwargs(
|
|
98
|
+
inbox_id=inbox_id,
|
|
99
|
+
event_id=event_id,
|
|
100
|
+
body=body,
|
|
101
|
+
if_match=if_match,
|
|
102
|
+
idempotency_key=idempotency_key,
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
response = client.get_httpx_client().request(
|
|
106
|
+
**kwargs,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
return _build_response(client=client, response=response)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def sync(
|
|
113
|
+
inbox_id: UUID,
|
|
114
|
+
event_id: UUID,
|
|
115
|
+
*,
|
|
116
|
+
client: AuthenticatedClient,
|
|
117
|
+
body: SeriesEditInput,
|
|
118
|
+
if_match: Union[None, Unset, str] = UNSET,
|
|
119
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
120
|
+
) -> Optional[Union[EventOut, HTTPValidationError]]:
|
|
121
|
+
"""Edit Calendar Series
|
|
122
|
+
|
|
123
|
+
Args:
|
|
124
|
+
inbox_id (UUID):
|
|
125
|
+
event_id (UUID):
|
|
126
|
+
if_match (Union[None, Unset, str]):
|
|
127
|
+
idempotency_key (Union[None, Unset, str]):
|
|
128
|
+
body (SeriesEditInput):
|
|
129
|
+
|
|
130
|
+
Raises:
|
|
131
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
132
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
133
|
+
|
|
134
|
+
Returns:
|
|
135
|
+
Union[EventOut, HTTPValidationError]
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
return sync_detailed(
|
|
139
|
+
inbox_id=inbox_id,
|
|
140
|
+
event_id=event_id,
|
|
141
|
+
client=client,
|
|
142
|
+
body=body,
|
|
143
|
+
if_match=if_match,
|
|
144
|
+
idempotency_key=idempotency_key,
|
|
145
|
+
).parsed
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
async def asyncio_detailed(
|
|
149
|
+
inbox_id: UUID,
|
|
150
|
+
event_id: UUID,
|
|
151
|
+
*,
|
|
152
|
+
client: AuthenticatedClient,
|
|
153
|
+
body: SeriesEditInput,
|
|
154
|
+
if_match: Union[None, Unset, str] = UNSET,
|
|
155
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
156
|
+
) -> Response[Union[EventOut, HTTPValidationError]]:
|
|
157
|
+
"""Edit Calendar Series
|
|
158
|
+
|
|
159
|
+
Args:
|
|
160
|
+
inbox_id (UUID):
|
|
161
|
+
event_id (UUID):
|
|
162
|
+
if_match (Union[None, Unset, str]):
|
|
163
|
+
idempotency_key (Union[None, Unset, str]):
|
|
164
|
+
body (SeriesEditInput):
|
|
165
|
+
|
|
166
|
+
Raises:
|
|
167
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
168
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
169
|
+
|
|
170
|
+
Returns:
|
|
171
|
+
Response[Union[EventOut, HTTPValidationError]]
|
|
172
|
+
"""
|
|
173
|
+
|
|
174
|
+
kwargs = _get_kwargs(
|
|
175
|
+
inbox_id=inbox_id,
|
|
176
|
+
event_id=event_id,
|
|
177
|
+
body=body,
|
|
178
|
+
if_match=if_match,
|
|
179
|
+
idempotency_key=idempotency_key,
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
response = await client.get_async_httpx_client().request(**kwargs)
|
|
183
|
+
|
|
184
|
+
return _build_response(client=client, response=response)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
async def asyncio(
|
|
188
|
+
inbox_id: UUID,
|
|
189
|
+
event_id: UUID,
|
|
190
|
+
*,
|
|
191
|
+
client: AuthenticatedClient,
|
|
192
|
+
body: SeriesEditInput,
|
|
193
|
+
if_match: Union[None, Unset, str] = UNSET,
|
|
194
|
+
idempotency_key: Union[None, Unset, str] = UNSET,
|
|
195
|
+
) -> Optional[Union[EventOut, HTTPValidationError]]:
|
|
196
|
+
"""Edit Calendar Series
|
|
197
|
+
|
|
198
|
+
Args:
|
|
199
|
+
inbox_id (UUID):
|
|
200
|
+
event_id (UUID):
|
|
201
|
+
if_match (Union[None, Unset, str]):
|
|
202
|
+
idempotency_key (Union[None, Unset, str]):
|
|
203
|
+
body (SeriesEditInput):
|
|
204
|
+
|
|
205
|
+
Raises:
|
|
206
|
+
errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
|
|
207
|
+
httpx.TimeoutException: If the request takes longer than Client.timeout.
|
|
208
|
+
|
|
209
|
+
Returns:
|
|
210
|
+
Union[EventOut, HTTPValidationError]
|
|
211
|
+
"""
|
|
212
|
+
|
|
213
|
+
return (
|
|
214
|
+
await asyncio_detailed(
|
|
215
|
+
inbox_id=inbox_id,
|
|
216
|
+
event_id=event_id,
|
|
217
|
+
client=client,
|
|
218
|
+
body=body,
|
|
219
|
+
if_match=if_match,
|
|
220
|
+
idempotency_key=idempotency_key,
|
|
221
|
+
)
|
|
222
|
+
).parsed
|