├── .frontmatter └── content │ └── mediaDb.json ├── .github ├── CODEOWNERS ├── dependabot.yml └── workflows │ ├── dependabot-auto-merge.yml │ ├── github-repo-stats.yml │ ├── pages.yml │ ├── publish.yml │ └── test.yml ├── .gitignore ├── .husky └── pre-commit ├── .prettierignore ├── CHANGELOG.md ├── CODEOWNERS ├── CONTRIBUTING.md ├── LICENSE ├── MODELS.md ├── README.md ├── apps ├── client-test-app │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── img.png │ ├── index.js │ ├── package.json │ └── views │ │ ├── board.ejs │ │ └── boardItem.ejs └── fastify │ ├── fastify.js │ └── package.json ├── package.json ├── packages ├── generator │ ├── __tests__ │ │ ├── highlevelModelGenerator.test.ts │ │ └── modelDefinition.test.ts │ ├── generate_mermaid.ts │ ├── highlevelModelGenerator.ts │ ├── modelDefinition.ts │ ├── openapitools.json │ ├── package.json │ ├── python-docs-template │ │ └── module.html.jinja2 │ ├── python-template │ │ ├── __init__api.mustache │ │ └── model_oneof.mustache │ ├── scripts │ │ ├── generate-node-client.sh │ │ ├── generate-python-client.sh │ │ ├── generate_node_highlevel_models.ts │ │ └── remove_duplicate_imports.sh │ ├── spec.json │ ├── test │ │ └── generator_test.sh │ └── typescript-node-template │ │ ├── api-all.mustache │ │ ├── api-single.mustache │ │ ├── api.mustache │ │ ├── licenseInfo.mustache │ │ ├── model.mustache │ │ └── models.mustache ├── miro-api-python │ ├── .gitignore │ ├── .openapi-generator-ignore │ ├── .openapi-generator │ │ ├── FILES │ │ └── VERSION │ ├── CONTRIBUTING.md │ ├── README.md │ ├── docs-template │ │ └── custom.css │ ├── example │ │ ├── .sample.env │ │ ├── README.md │ │ └── app.py │ ├── miro_api │ │ ├── __init__.py │ │ ├── api │ │ │ └── __init__.py │ │ ├── api_client.py │ │ ├── api_extended.py │ │ ├── api_response.py │ │ ├── configuration.py │ │ ├── exceptions.py │ │ ├── miro_api_wrapper.py │ │ ├── models │ │ │ ├── __init__.py │ │ │ ├── actor.py │ │ │ ├── add_project_member_request.py │ │ │ ├── admin_role.py │ │ │ ├── app_card_create_request.py │ │ │ ├── app_card_data.py │ │ │ ├── app_card_data_changes.py │ │ │ ├── app_card_data_platform.py │ │ │ ├── app_card_data_response.py │ │ │ ├── app_card_data_response_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── app_card_data_response_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── app_card_item.py │ │ │ ├── app_card_style.py │ │ │ ├── app_card_style_platform_bulk_create_operation_experimental_release.py │ │ │ ├── app_card_style_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── app_card_style_platformbulkcreateoperation.py │ │ │ ├── app_card_style_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── app_card_update_request.py │ │ │ ├── attach_tag_to_item400_response.py │ │ │ ├── audit_context.py │ │ │ ├── audit_created_by.py │ │ │ ├── audit_event.py │ │ │ ├── audit_object.py │ │ │ ├── audit_organization.py │ │ │ ├── audit_page.py │ │ │ ├── audit_team.py │ │ │ ├── basic_error.py │ │ │ ├── basic_error_enterprise_user_session_reset_enterprise_plan.py │ │ │ ├── basic_error_organizations_enterprise_plan.py │ │ │ ├── basic_error_teams_enterprise_plan.py │ │ │ ├── board.py │ │ │ ├── board_changes.py │ │ │ ├── board_content_log_data.py │ │ │ ├── board_data_classification_label.py │ │ │ ├── board_export_job_id.py │ │ │ ├── board_export_job_status.py │ │ │ ├── board_export_result.py │ │ │ ├── board_export_task_result.py │ │ │ ├── board_item_content_log.py │ │ │ ├── board_links.py │ │ │ ├── board_member.py │ │ │ ├── board_member_changes.py │ │ │ ├── board_member_with_links.py │ │ │ ├── board_members_invite.py │ │ │ ├── board_members_paged_response.py │ │ │ ├── board_permissions_policy.py │ │ │ ├── board_policy.py │ │ │ ├── board_policy_change.py │ │ │ ├── board_project.py │ │ │ ├── board_sharing_policy.py │ │ │ ├── board_sharing_policy_change.py │ │ │ ├── board_subscription.py │ │ │ ├── board_subscription_data.py │ │ │ ├── board_with_links.py │ │ │ ├── board_with_links_and_last_opened.py │ │ │ ├── board_with_links_and_without_project.py │ │ │ ├── boards_paged_response.py │ │ │ ├── bulk_operation_error.py │ │ │ ├── bulk_operation_error_context.py │ │ │ ├── bulk_sub_operation_error.py │ │ │ ├── caption.py │ │ │ ├── card_create_request.py │ │ │ ├── card_data.py │ │ │ ├── card_data_platform_bulk_create_operation_experimental_release.py │ │ │ ├── card_data_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── card_data_platformbulkcreateoperation.py │ │ │ ├── card_data_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── card_item.py │ │ │ ├── card_style.py │ │ │ ├── card_style_platform_bulk_create_operation_experimental_release.py │ │ │ ├── card_style_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── card_style_platformbulkcreateoperation.py │ │ │ ├── card_style_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── card_update_request.py │ │ │ ├── case_request.py │ │ │ ├── case_response.py │ │ │ ├── connector_changes_data.py │ │ │ ├── connector_creation_data.py │ │ │ ├── connector_style.py │ │ │ ├── connector_with_links.py │ │ │ ├── connectors_cursor_paged.py │ │ │ ├── copy_board_changes.py │ │ │ ├── create_board_export_request.py │ │ │ ├── create_board_subscription_request.py │ │ │ ├── create_document_item_using_file_from_device_request_data.py │ │ │ ├── create_frame_item400_response.py │ │ │ ├── create_project_request.py │ │ │ ├── create_team_request.py │ │ │ ├── created_by.py │ │ │ ├── created_by_platform.py │ │ │ ├── created_by_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── created_by_platform_containers.py │ │ │ ├── created_by_platform_experimental_features.py │ │ │ ├── created_by_platform_file_upload.py │ │ │ ├── created_by_platform_tags.py │ │ │ ├── created_by_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── created_by_platformgroups.py │ │ │ ├── custom_field.py │ │ │ ├── custom_field_platform.py │ │ │ ├── custom_field_platform_bulk_create_operation_experimental_release.py │ │ │ ├── custom_field_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── custom_field_platform_tags.py │ │ │ ├── custom_field_platformbulkcreateoperation.py │ │ │ ├── custom_field_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── data_classification_label.py │ │ │ ├── data_classification_label_id.py │ │ │ ├── data_classification_organization_settings.py │ │ │ ├── data_classification_team_settings.py │ │ │ ├── document_create_request.py │ │ │ ├── document_data.py │ │ │ ├── document_data_platform.py │ │ │ ├── document_data_platform_file_upload.py │ │ │ ├── document_data_platform_tags.py │ │ │ ├── document_data_response.py │ │ │ ├── document_data_response_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── document_data_response_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── document_item.py │ │ │ ├── document_item_platform_file_upload.py │ │ │ ├── document_update_request.py │ │ │ ├── document_url_data.py │ │ │ ├── document_url_data_changes.py │ │ │ ├── document_url_data_platform_bulk_create_operation_experimental_release.py │ │ │ ├── document_url_data_platformbulkcreateoperation.py │ │ │ ├── embed_create_request.py │ │ │ ├── embed_data.py │ │ │ ├── embed_data_response.py │ │ │ ├── embed_data_response_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── embed_data_response_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── embed_item.py │ │ │ ├── embed_update_request.py │ │ │ ├── embed_url_data.py │ │ │ ├── embed_url_data_changes.py │ │ │ ├── embed_url_data_platform_bulk_create_operation_experimental_release.py │ │ │ ├── embed_url_data_platformbulkcreateoperation.py │ │ │ ├── enterprise_get_organization_members200_response.py │ │ │ ├── error.py │ │ │ ├── error400.py │ │ │ ├── error401.py │ │ │ ├── error403.py │ │ │ ├── error404.py │ │ │ ├── error409.py │ │ │ ├── error429.py │ │ │ ├── error_response.py │ │ │ ├── fixed_ratio_geometry.py │ │ │ ├── fixed_ratio_geometry_platform_file_upload.py │ │ │ ├── fixed_ratio_no_rotation_geometry.py │ │ │ ├── frame_changes.py │ │ │ ├── frame_create_request.py │ │ │ ├── frame_data.py │ │ │ ├── frame_data_platform.py │ │ │ ├── frame_data_platform_containers.py │ │ │ ├── frame_item.py │ │ │ ├── frame_style.py │ │ │ ├── frame_update_request.py │ │ │ ├── generic_item.py │ │ │ ├── generic_item_cursor_paged.py │ │ │ ├── generic_item_cursor_paged_platform_containers.py │ │ │ ├── generic_item_platform_tags.py │ │ │ ├── generic_item_update.py │ │ │ ├── generic_subscription.py │ │ │ ├── generic_subscriptions_cursor_paged.py │ │ │ ├── geometry.py │ │ │ ├── geometry_no_rotation.py │ │ │ ├── geometry_platform.py │ │ │ ├── geometry_platform_bulk_create_operation_experimental_release.py │ │ │ ├── geometry_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── geometry_platform_containers.py │ │ │ ├── geometry_platform_experimental_features.py │ │ │ ├── geometry_platform_file_upload.py │ │ │ ├── geometry_platform_tags.py │ │ │ ├── geometry_platformbulkcreateoperation.py │ │ │ ├── geometry_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── geometry_platformgroups.py │ │ │ ├── get_all_groups200_response.py │ │ │ ├── get_all_groups400_response.py │ │ │ ├── get_all_groups404_response.py │ │ │ ├── get_all_groups429_response.py │ │ │ ├── get_board_item_content_logs_response.py │ │ │ ├── get_board_user_info_last_opened_by.py │ │ │ ├── get_boards400_response.py │ │ │ ├── get_items_by_group_id200_response.py │ │ │ ├── get_items_by_group_id200_response_data.py │ │ │ ├── get_metrics200_response_inner.py │ │ │ ├── get_metrics404_response.py │ │ │ ├── get_metrics_total200_response.py │ │ │ ├── get_metrics_total404_response.py │ │ │ ├── get_tags_from_item400_response.py │ │ │ ├── get_tags_response.py │ │ │ ├── group.py │ │ │ ├── group_data.py │ │ │ ├── group_response_short.py │ │ │ ├── image_create_request.py │ │ │ ├── image_data.py │ │ │ ├── image_data_platform.py │ │ │ ├── image_data_platform_file_upload.py │ │ │ ├── image_data_platform_tags.py │ │ │ ├── image_data_response.py │ │ │ ├── image_data_response_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── image_data_response_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── image_item.py │ │ │ ├── image_item_platform_file_upload.py │ │ │ ├── image_update_request.py │ │ │ ├── image_url_data.py │ │ │ ├── image_url_data_changes.py │ │ │ ├── image_url_data_changes_platform_bulk_create_operation_experimental_release.py │ │ │ ├── image_url_data_changes_platformbulkcreateoperation.py │ │ │ ├── image_url_data_platform_bulk_create_operation_experimental_release.py │ │ │ ├── image_url_data_platformbulkcreateoperation.py │ │ │ ├── invitation_error.py │ │ │ ├── invitation_result.py │ │ │ ├── item.py │ │ │ ├── item_changes.py │ │ │ ├── item_connection_changes_data.py │ │ │ ├── item_connection_creation_data.py │ │ │ ├── item_connection_with_links.py │ │ │ ├── item_create.py │ │ │ ├── item_data.py │ │ │ ├── item_data_changes.py │ │ │ ├── item_data_create.py │ │ │ ├── item_data_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── item_data_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── item_paged_response.py │ │ │ ├── item_paged_response_platform_tags.py │ │ │ ├── item_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── item_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── item_style.py │ │ │ ├── item_style_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── item_style_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── item_type_change.py │ │ │ ├── items.py │ │ │ ├── items_page.py │ │ │ ├── items_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── items_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── legal_hold_content_items_response.py │ │ │ ├── legal_hold_request.py │ │ │ ├── legal_hold_request_scope.py │ │ │ ├── legal_hold_request_scope_users.py │ │ │ ├── legal_hold_request_scope_users_users_inner.py │ │ │ ├── legal_hold_response.py │ │ │ ├── legal_hold_response_scope.py │ │ │ ├── legal_hold_response_scope_users.py │ │ │ ├── legal_hold_state.py │ │ │ ├── mind_map_node_geometry.py │ │ │ ├── mindmap_create_request.py │ │ │ ├── mindmap_cursor_paged.py │ │ │ ├── mindmap_data.py │ │ │ ├── mindmap_data_for_create.py │ │ │ ├── mindmap_item.py │ │ │ ├── mindmap_node.py │ │ │ ├── mindmap_node_style.py │ │ │ ├── mindmap_node_text_data.py │ │ │ ├── mindmap_node_view.py │ │ │ ├── mindmap_style.py │ │ │ ├── mindmap_widget_data_output.py │ │ │ ├── modified_by.py │ │ │ ├── modified_by_platform.py │ │ │ ├── modified_by_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── modified_by_platform_containers.py │ │ │ ├── modified_by_platform_experimental_features.py │ │ │ ├── modified_by_platform_file_upload.py │ │ │ ├── modified_by_platform_tags.py │ │ │ ├── modified_by_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── modified_by_platformgroups.py │ │ │ ├── organization.py │ │ │ ├── organization_information.py │ │ │ ├── organization_member.py │ │ │ ├── organization_members_search_response.py │ │ │ ├── page_links.py │ │ │ ├── page_links_platform.py │ │ │ ├── page_links_platform_experimental_features.py │ │ │ ├── page_links_platform_tags.py │ │ │ ├── paginated_case_response.py │ │ │ ├── paginated_legal_hold_content_items_response.py │ │ │ ├── paginated_legal_hold_response.py │ │ │ ├── pagination.py │ │ │ ├── parent.py │ │ │ ├── parent_links_envelope.py │ │ │ ├── parent_links_envelope_platform_containers.py │ │ │ ├── parent_with_links.py │ │ │ ├── parent_with_links_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── parent_with_links_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── picture.py │ │ │ ├── position.py │ │ │ ├── position_change.py │ │ │ ├── position_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── position_platform_file_upload.py │ │ │ ├── position_platformgroups.py │ │ │ ├── project.py │ │ │ ├── project_member.py │ │ │ ├── project_member_page.py │ │ │ ├── project_page.py │ │ │ ├── project_role.py │ │ │ ├── project_role_to_add.py │ │ │ ├── project_settings.py │ │ │ ├── relative_offset.py │ │ │ ├── revoke_token_request.py │ │ │ ├── self_link.py │ │ │ ├── self_link_platform.py │ │ │ ├── self_link_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── self_link_platform_experimental_features.py │ │ │ ├── self_link_platform_file_upload.py │ │ │ ├── self_link_platform_tags.py │ │ │ ├── shape_create_request.py │ │ │ ├── shape_data.py │ │ │ ├── shape_data_for_create.py │ │ │ ├── shape_data_for_update.py │ │ │ ├── shape_data_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── shape_data_platform_tags.py │ │ │ ├── shape_data_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── shape_item.py │ │ │ ├── shape_style.py │ │ │ ├── shape_style_for_create.py │ │ │ ├── shape_style_for_update.py │ │ │ ├── shape_style_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── shape_style_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── shape_update_request.py │ │ │ ├── sharing_policy_settings.py │ │ │ ├── sticky_note_create_request.py │ │ │ ├── sticky_note_data.py │ │ │ ├── sticky_note_data_platform.py │ │ │ ├── sticky_note_data_platform_bulk_create_operation_experimental_release.py │ │ │ ├── sticky_note_data_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── sticky_note_data_platform_tags.py │ │ │ ├── sticky_note_data_platformbulkcreateoperation.py │ │ │ ├── sticky_note_data_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── sticky_note_item.py │ │ │ ├── sticky_note_style.py │ │ │ ├── sticky_note_style_platform_bulk_create_operation_experimental_release.py │ │ │ ├── sticky_note_style_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── sticky_note_style_platformbulkcreateoperation.py │ │ │ ├── sticky_note_style_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── sticky_note_update_request.py │ │ │ ├── subscription_data.py │ │ │ ├── tag.py │ │ │ ├── tag_create_request.py │ │ │ ├── tag_update_request.py │ │ │ ├── tag_with_links.py │ │ │ ├── tags_paged_response.py │ │ │ ├── team.py │ │ │ ├── team_access.py │ │ │ ├── team_account_discovery_settings.py │ │ │ ├── team_account_discovery_settings_changes.py │ │ │ ├── team_changes.py │ │ │ ├── team_collaboration_settings.py │ │ │ ├── team_collaboration_settings_changes.py │ │ │ ├── team_copy_access_level_settings.py │ │ │ ├── team_copy_access_level_settings_changes.py │ │ │ ├── team_information.py │ │ │ ├── team_invitation_settings.py │ │ │ ├── team_invitation_settings_changes.py │ │ │ ├── team_member.py │ │ │ ├── team_member_changes.py │ │ │ ├── team_member_invite.py │ │ │ ├── team_members_page.py │ │ │ ├── team_settings.py │ │ │ ├── team_settings_changes.py │ │ │ ├── team_sharing_policy_settings.py │ │ │ ├── team_sharing_policy_settings_changes.py │ │ │ ├── teams_page.py │ │ │ ├── text_create_request.py │ │ │ ├── text_data.py │ │ │ ├── text_data_platform.py │ │ │ ├── text_data_platform_bulk_create_operation_experimental_release.py │ │ │ ├── text_data_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── text_data_platform_tags.py │ │ │ ├── text_data_platformbulkcreateoperation.py │ │ │ ├── text_data_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── text_item.py │ │ │ ├── text_style.py │ │ │ ├── text_style_platform_bulk_create_operation_experimental_release_using_file_from_device.py │ │ │ ├── text_style_platformcreateitemsinbulkusingfilefromdevice.py │ │ │ ├── text_update_request.py │ │ │ ├── token_information.py │ │ │ ├── un_group400_response.py │ │ │ ├── un_group404_response.py │ │ │ ├── un_group429_response.py │ │ │ ├── update_app_card_style.py │ │ │ ├── update_board_subscription_request.py │ │ │ ├── update_boards_data_classification_label.py │ │ │ ├── update_boards_data_classification_label_request.py │ │ │ ├── update_card_style.py │ │ │ ├── update_connector_style.py │ │ │ ├── update_frame_item409_response.py │ │ │ ├── update_frame_style.py │ │ │ ├── update_project_member_request.py │ │ │ ├── update_project_request.py │ │ │ ├── update_project_settings_request.py │ │ │ ├── update_shape_style.py │ │ │ ├── update_sticky_note_style.py │ │ │ ├── update_team_settings_request.py │ │ │ ├── update_text_style.py │ │ │ ├── upload_file_from_device_data.py │ │ │ ├── user.py │ │ │ ├── user_info_last_opened_by.py │ │ │ ├── user_info_short.py │ │ │ ├── user_information.py │ │ │ ├── widget_data_output.py │ │ │ ├── widget_data_output_platform.py │ │ │ ├── widget_links.py │ │ │ ├── widget_links_platform.py │ │ │ ├── widget_links_platform_containers.py │ │ │ ├── widget_links_platform_experimental_features.py │ │ │ ├── widget_links_platform_file_upload.py │ │ │ └── width_only_adjustable_geometry.py │ │ ├── rest.py │ │ ├── storage.py │ │ └── test_miro_api_wrapper.py │ ├── poetry.lock │ ├── pyproject.toml │ └── scripts │ │ ├── build-docs.sh │ │ └── update-version.sh └── miro-api │ ├── .gitignore │ ├── .npmignore │ ├── .openapi-generator-ignore │ ├── .openapi-generator │ ├── FILES │ └── VERSION │ ├── README.md │ ├── __tests__ │ └── index.test.ts │ ├── api.ts │ ├── api │ └── apis.ts │ ├── catalog-info.yaml │ ├── docs-theme │ └── index.tsx │ ├── docs │ ├── implement-storage.md │ ├── quickstart-auth.md │ └── quickstart.md │ ├── highlevel │ ├── Api.ts │ ├── AppCardItem.ts │ ├── Board.ts │ ├── CardItem.ts │ ├── DocumentItem.ts │ ├── EmbedItem.ts │ ├── FrameItem.ts │ ├── ImageItem.ts │ ├── Item.ts │ ├── Organization.ts │ ├── ShapeItem.ts │ ├── StickyNoteItem.ts │ ├── Tag.ts │ ├── Team.ts │ ├── TextItem.ts │ ├── __tests__ │ │ ├── Api.test.ts │ │ ├── Board.test.ts │ │ ├── FrameItem.test.ts │ │ ├── Item.test.ts │ │ └── Tag.test.ts │ ├── helpers.ts │ └── index.ts │ ├── index.ts │ ├── interfaces │ └── WidgetTypes.ts │ ├── model │ ├── actor.ts │ ├── addProjectMemberRequest.ts │ ├── adminRole.ts │ ├── appCardCreateRequest.ts │ ├── appCardData.ts │ ├── appCardDataChanges.ts │ ├── appCardDataResponse.ts │ ├── appCardItem.ts │ ├── appCardStyle.ts │ ├── appCardStylePlatformbulkcreateoperation.ts │ ├── appCardUpdateRequest.ts │ ├── auditContext.ts │ ├── auditCreatedBy.ts │ ├── auditEvent.ts │ ├── auditObject.ts │ ├── auditOrganization.ts │ ├── auditPage.ts │ ├── auditTeam.ts │ ├── basicError.ts │ ├── basicErrorEnterpriseUserSessionResetEnterprisePlan.ts │ ├── basicErrorOrganizationsEnterprisePlan.ts │ ├── board.ts │ ├── boardChanges.ts │ ├── boardDataClassificationLabel.ts │ ├── boardExportJobId.ts │ ├── boardExportJobStatus.ts │ ├── boardExportResult.ts │ ├── boardExportTaskResult.ts │ ├── boardItemContentLog.ts │ ├── boardLinks.ts │ ├── boardMember.ts │ ├── boardMemberChanges.ts │ ├── boardMemberWithLinks.ts │ ├── boardMembersInvite.ts │ ├── boardMembersPagedResponse.ts │ ├── boardPermissionsPolicy.ts │ ├── boardPolicy.ts │ ├── boardPolicyChange.ts │ ├── boardProject.ts │ ├── boardSharingPolicy.ts │ ├── boardSharingPolicyChange.ts │ ├── boardSubscription.ts │ ├── boardSubscriptionData.ts │ ├── boardWithLinks.ts │ ├── boardWithLinksAndLastOpened.ts │ ├── boardWithLinksAndWithoutProject.ts │ ├── boardsPagedResponse.ts │ ├── bulkOperationError.ts │ ├── bulkOperationErrorContext.ts │ ├── bulkSubOperationError.ts │ ├── caption.ts │ ├── cardCreateRequest.ts │ ├── cardData.ts │ ├── cardDataPlatformbulkcreateoperation.ts │ ├── cardItem.ts │ ├── cardStyle.ts │ ├── cardStylePlatformbulkcreateoperation.ts │ ├── cardUpdateRequest.ts │ ├── caseRequest.ts │ ├── caseResponse.ts │ ├── connectorChangesData.ts │ ├── connectorCreationData.ts │ ├── connectorStyle.ts │ ├── connectorWithLinks.ts │ ├── connectorsCursorPaged.ts │ ├── copyBoardChanges.ts │ ├── createBoardExportRequest.ts │ ├── createBoardSubscriptionRequest.ts │ ├── createDocumentItemUsingFileFromDeviceRequestData.ts │ ├── createFrameItem400Response.ts │ ├── createProjectRequest.ts │ ├── createTeamRequest.ts │ ├── createdBy.ts │ ├── createdByPlatformContainers.ts │ ├── createdByPlatformExperimentalFeatures.ts │ ├── createdByPlatformFileUpload.ts │ ├── createdByPlatformTags.ts │ ├── createdByPlatformcreateitemsinbulkusingfilefromdevice.ts │ ├── createdByPlatformgroups.ts │ ├── customField.ts │ ├── customFieldPlatformTags.ts │ ├── customFieldPlatformbulkcreateoperation.ts │ ├── dataClassificationLabel.ts │ ├── dataClassificationLabelId.ts │ ├── dataClassificationOrganizationSettings.ts │ ├── dataClassificationTeamSettings.ts │ ├── documentCreateRequest.ts │ ├── documentData.ts │ ├── documentDataResponse.ts │ ├── documentDataResponsePlatformcreateitemsinbulkusingfilefromdevice.ts │ ├── documentItem.ts │ ├── documentItemPlatformFileUpload.ts │ ├── documentUpdateRequest.ts │ ├── documentUrlData.ts │ ├── documentUrlDataChanges.ts │ ├── documentUrlDataPlatformbulkcreateoperation.ts │ ├── embedCreateRequest.ts │ ├── embedData.ts │ ├── embedDataResponse.ts │ ├── embedItem.ts │ ├── embedUpdateRequest.ts │ ├── embedUrlData.ts │ ├── embedUrlDataChanges.ts │ ├── embedUrlDataPlatformbulkcreateoperation.ts │ ├── enterpriseGetOrganizationMembers200Response.ts │ ├── error400.ts │ ├── error401.ts │ ├── error403.ts │ ├── error404.ts │ ├── error409.ts │ ├── error429.ts │ ├── errorResponse.ts │ ├── fixedRatioGeometry.ts │ ├── fixedRatioGeometryPlatformFileUpload.ts │ ├── fixedRatioNoRotationGeometry.ts │ ├── frameChanges.ts │ ├── frameCreateRequest.ts │ ├── frameData.ts │ ├── frameDataPlatformContainers.ts │ ├── frameItem.ts │ ├── frameStyle.ts │ ├── frameUpdateRequest.ts │ ├── genericItem.ts │ ├── genericItemCursorPaged.ts │ ├── genericItemCursorPagedPlatformContainers.ts │ ├── genericItemPlatformTags.ts │ ├── genericItemUpdate.ts │ ├── genericSubscription.ts │ ├── genericSubscriptionsCursorPaged.ts │ ├── geometry.ts │ ├── geometryNoRotation.ts │ ├── geometryPlatformContainers.ts │ ├── geometryPlatformExperimentalFeatures.ts │ ├── geometryPlatformFileUpload.ts │ ├── geometryPlatformTags.ts │ ├── geometryPlatformbulkcreateoperation.ts │ ├── geometryPlatformcreateitemsinbulkusingfilefromdevice.ts │ ├── geometryPlatformgroups.ts │ ├── getAllGroups200Response.ts │ ├── getAllGroups400Response.ts │ ├── getAllGroups404Response.ts │ ├── getAllGroups429Response.ts │ ├── getBoardItemContentLogsResponse.ts │ ├── getBoardUserInfoLastOpenedBy.ts │ ├── getItemsByGroupId200Response.ts │ ├── getItemsByGroupId200ResponseData.ts │ ├── getMetrics200ResponseInner.ts │ ├── getMetrics404Response.ts │ ├── getMetricsTotal200Response.ts │ ├── getMetricsTotal404Response.ts │ ├── getTagsFromItem400Response.ts │ ├── getTagsResponse.ts │ ├── group.ts │ ├── groupData.ts │ ├── groupResponseShort.ts │ ├── imageCreateRequest.ts │ ├── imageData.ts │ ├── imageDataResponse.ts │ ├── imageDataResponsePlatformcreateitemsinbulkusingfilefromdevice.ts │ ├── imageItem.ts │ ├── imageItemPlatformFileUpload.ts │ ├── imageUpdateRequest.ts │ ├── imageUrlData.ts │ ├── imageUrlDataChanges.ts │ ├── invitationError.ts │ ├── invitationResult.ts │ ├── item.ts │ ├── itemChanges.ts │ ├── itemConnectionChangesData.ts │ ├── itemConnectionCreationData.ts │ ├── itemConnectionWithLinks.ts │ ├── itemCreate.ts │ ├── itemData.ts │ ├── itemDataChanges.ts │ ├── itemDataCreate.ts │ ├── itemPagedResponse.ts │ ├── itemPagedResponsePlatformTags.ts │ ├── itemStyle.ts │ ├── itemTypeChange.ts │ ├── items.ts │ ├── itemsPage.ts │ ├── legalHoldContentItemsResponse.ts │ ├── legalHoldRequest.ts │ ├── legalHoldRequestScope.ts │ ├── legalHoldRequestScopeUsers.ts │ ├── legalHoldRequestScopeUsersUsersInner.ts │ ├── legalHoldResponse.ts │ ├── legalHoldResponseScope.ts │ ├── legalHoldResponseScopeUsers.ts │ ├── legalHoldState.ts │ ├── mindMapNodeGeometry.ts │ ├── mindmapCreateRequest.ts │ ├── mindmapCursorPaged.ts │ ├── mindmapData.ts │ ├── mindmapDataForCreate.ts │ ├── mindmapItem.ts │ ├── mindmapNode.ts │ ├── mindmapNodeStyle.ts │ ├── mindmapNodeTextData.ts │ ├── mindmapNodeView.ts │ ├── mindmapStyle.ts │ ├── mindmapWidgetDataOutput.ts │ ├── modelError.ts │ ├── models.ts │ ├── modifiedBy.ts │ ├── modifiedByPlatformContainers.ts │ ├── modifiedByPlatformExperimentalFeatures.ts │ ├── modifiedByPlatformFileUpload.ts │ ├── modifiedByPlatformTags.ts │ ├── modifiedByPlatformcreateitemsinbulkusingfilefromdevice.ts │ ├── modifiedByPlatformgroups.ts │ ├── organization.ts │ ├── organizationInformation.ts │ ├── organizationMember.ts │ ├── organizationMembersSearchResponse.ts │ ├── pageLinks.ts │ ├── pageLinksPlatformExperimentalFeatures.ts │ ├── paginatedCaseResponse.ts │ ├── paginatedLegalHoldContentItemsResponse.ts │ ├── paginatedLegalHoldResponse.ts │ ├── pagination.ts │ ├── parent.ts │ ├── parentLinksEnvelope.ts │ ├── parentLinksEnvelopePlatformContainers.ts │ ├── parentWithLinks.ts │ ├── parentWithLinksPlatformcreateitemsinbulkusingfilefromdevice.ts │ ├── picture.ts │ ├── position.ts │ ├── positionChange.ts │ ├── project.ts │ ├── projectMember.ts │ ├── projectMemberPage.ts │ ├── projectPage.ts │ ├── projectRole.ts │ ├── projectRoleToAdd.ts │ ├── projectSettings.ts │ ├── relativeOffset.ts │ ├── revokeTokenRequest.ts │ ├── selfLink.ts │ ├── selfLinkPlatformFileUpload.ts │ ├── selfLinkPlatformTags.ts │ ├── shapeCreateRequest.ts │ ├── shapeData.ts │ ├── shapeDataForCreate.ts │ ├── shapeDataForUpdate.ts │ ├── shapeDataPlatformTags.ts │ ├── shapeItem.ts │ ├── shapeStyle.ts │ ├── shapeStyleForCreate.ts │ ├── shapeStyleForUpdate.ts │ ├── shapeUpdateRequest.ts │ ├── sharingPolicySettings.ts │ ├── stickyNoteCreateRequest.ts │ ├── stickyNoteData.ts │ ├── stickyNoteDataPlatformTags.ts │ ├── stickyNoteDataPlatformbulkcreateoperation.ts │ ├── stickyNoteItem.ts │ ├── stickyNoteStyle.ts │ ├── stickyNoteStylePlatformbulkcreateoperation.ts │ ├── stickyNoteUpdateRequest.ts │ ├── subscriptionData.ts │ ├── tag.ts │ ├── tagCreateRequest.ts │ ├── tagUpdateRequest.ts │ ├── tagWithLinks.ts │ ├── tagsPagedResponse.ts │ ├── team.ts │ ├── teamAccess.ts │ ├── teamAccountDiscoverySettings.ts │ ├── teamAccountDiscoverySettingsChanges.ts │ ├── teamChanges.ts │ ├── teamCollaborationSettings.ts │ ├── teamCollaborationSettingsChanges.ts │ ├── teamCopyAccessLevelSettings.ts │ ├── teamCopyAccessLevelSettingsChanges.ts │ ├── teamInformation.ts │ ├── teamInvitationSettings.ts │ ├── teamInvitationSettingsChanges.ts │ ├── teamMember.ts │ ├── teamMemberChanges.ts │ ├── teamMemberInvite.ts │ ├── teamMembersPage.ts │ ├── teamSettings.ts │ ├── teamSettingsChanges.ts │ ├── teamSharingPolicySettings.ts │ ├── teamSharingPolicySettingsChanges.ts │ ├── teamsPage.ts │ ├── textCreateRequest.ts │ ├── textData.ts │ ├── textDataPlatformTags.ts │ ├── textDataPlatformbulkcreateoperation.ts │ ├── textItem.ts │ ├── textStyle.ts │ ├── textUpdateRequest.ts │ ├── tokenInformation.ts │ ├── unGroup400Response.ts │ ├── unGroup404Response.ts │ ├── unGroup429Response.ts │ ├── updateAppCardStyle.ts │ ├── updateBoardSubscriptionRequest.ts │ ├── updateBoardsDataClassificationLabel.ts │ ├── updateBoardsDataClassificationLabelRequest.ts │ ├── updateCardStyle.ts │ ├── updateConnectorStyle.ts │ ├── updateFrameItem409Response.ts │ ├── updateFrameStyle.ts │ ├── updateProjectMemberRequest.ts │ ├── updateProjectRequest.ts │ ├── updateProjectSettingsRequest.ts │ ├── updateShapeStyle.ts │ ├── updateStickyNoteStyle.ts │ ├── updateTeamSettingsRequest.ts │ ├── updateTextStyle.ts │ ├── uploadFileFromDeviceData.ts │ ├── user.ts │ ├── userInfoLastOpenedBy.ts │ ├── userInfoShort.ts │ ├── userInformation.ts │ ├── widgetDataOutput.ts │ ├── widgetLinks.ts │ ├── widgetLinksPlatformContainers.ts │ ├── widgetLinksPlatformExperimentalFeatures.ts │ ├── widgetLinksPlatformFileUpload.ts │ └── widthOnlyAdjustableGeometry.ts │ ├── package.json │ ├── storage.ts │ ├── tsconfig.json │ └── typedoc.json ├── prettier.config.cjs ├── scripts └── upload-docs-to-readme.mjs ├── tsconfig.json └── yarn.lock /.frontmatter/content/mediaDb.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @miroapp/devx 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # Please see the documentation for all configuration options: 2 | # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates 3 | 4 | version: 2 5 | updates: 6 | - package-ecosystem: "npm" 7 | directory: "/" 8 | schedule: 9 | interval: "weekly" 10 | # The rule disables major version updates for all dependencies 11 | # ignore: 12 | # - dependency-name: "*" 13 | # update-types: [ "version-update:semver-major" ] 14 | 15 | - package-ecosystem: "github-actions" 16 | directory: "/" 17 | schedule: 18 | interval: "weekly" 19 | -------------------------------------------------------------------------------- /.github/workflows/dependabot-auto-merge.yml: -------------------------------------------------------------------------------- 1 | name: Dependabot 2 | on: pull_request 3 | 4 | permissions: 5 | pull-requests: write 6 | contents: write 7 | 8 | jobs: 9 | Auto-merge: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: fastify/github-action-merge-dependabot@v3 13 | with: 14 | target: minor 15 | use-github-auto-merge: true 16 | -------------------------------------------------------------------------------- /.github/workflows/github-repo-stats.yml: -------------------------------------------------------------------------------- 1 | name: github-repo-stats 2 | 3 | on: 4 | schedule: 5 | # Run this once per day, towards the end of the day for keeping the most 6 | # recent data point most meaningful (hours are interpreted in UTC). 7 | - cron: "0 23 * * *" 8 | workflow_dispatch: # Allow for running this manually. 9 | 10 | jobs: 11 | j1: 12 | name: github-repo-stats 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: run-ghrs 16 | # Use latest release. 17 | uses: jgehrcke/github-repo-stats@RELEASE 18 | with: 19 | ghtoken: ${{ secrets.ghrs_github_api_token }} 20 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish @mirohq/miro-api package to npm 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | paths: 8 | - .github/workflows/publish.yml 9 | - packages/miro-api/package.json 10 | - packages/miro-api-python/pyproject.toml 11 | 12 | jobs: 13 | publish-node-to-npm: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v4 17 | 18 | - uses: actions/setup-node@v3 19 | with: 20 | node-version: 20 21 | cache: 'yarn' 22 | 23 | - run: yarn 24 | working-directory: packages/miro-api 25 | 26 | - run: yarn build 27 | working-directory: packages/miro-api 28 | 29 | # This step will look at version in package.json, compare it to NPM version and 30 | # if the versions are different it will publish the package 31 | - id: publish_miro_node 32 | name: Publish miro-api package to NPM 33 | uses: JS-DevTools/npm-publish@v3.1.1 34 | with: 35 | token: ${{ secrets.NPM_PUBLISH_TOKEN }} 36 | package: packages/miro-api/package.json 37 | publish-python-to-pypi: 38 | runs-on: ubuntu-latest 39 | steps: 40 | - uses: actions/checkout@v4 41 | - uses: actions/setup-python@v5 42 | with: 43 | python-version: '3.9' 44 | 45 | - run: pip install poetry~=1.8.5 46 | 47 | - name: Build the packages 48 | run: poetry build 49 | working-directory: packages/miro-api-python 50 | 51 | - name: Publish to pypi 52 | run: | 53 | poetry install 54 | poetry run twine upload dist/* 55 | working-directory: packages/miro-api-python 56 | env: 57 | TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} 58 | TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} 59 | 60 | -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test the client library 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | workflow_dispatch: 9 | 10 | pull_request: 11 | branches: [ main ] 12 | 13 | permissions: 14 | pull-requests: write 15 | 16 | jobs: 17 | test: 18 | runs-on: ubuntu-latest 19 | 20 | steps: 21 | - uses: actions/checkout@v4 22 | 23 | - uses: actions/setup-node@v3 24 | with: 25 | node-version: 20 26 | cache: 'yarn' 27 | 28 | - name: Install dependencies 29 | run: yarn 30 | 31 | - name: Run tests 32 | run: yarn coverage 33 | 34 | - name: Coverage Report as Comment (Clover) 35 | # Skip the step for PRs from forks, because GitHub doesn't 36 | # provide `write` permissions for changes from forks 37 | if: ${{ github.actor != 'dependabot[bot]' && github.repository_owner == 'miroapp' }} 38 | uses: lucassabreu/comment-coverage-clover@main 39 | with: 40 | file: packages/miro-api/coverage/clover.xml 41 | 42 | - name: Test generator 43 | run: yarn workspace generator run validate_commited 44 | 45 | - name: Test build 46 | run: yarn && yarn build 47 | working-directory: packages/miro-api 48 | 49 | - name: Test build docs 50 | run: yarn build:docs 51 | working-directory: packages/miro-api 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .idea 3 | .DS_Store 4 | Thumbs.db 5 | /packages/**/coverage/ 6 | .turbo 7 | build/** 8 | dist/** 9 | yarn-error.log 10 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | . "$(dirname -- "$0")/_/husky.sh" 3 | 4 | yarn format 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | dist 2 | docs-out 3 | coverage 4 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## [2.2.2] 2 | 3 | - fixed `createdAfter` and `createdBefore` parameters format in `/v2/audit/logs` 4 | 5 | ## [2.2.1] 6 | 7 | - fixed `organization` property in `/v1/oauth-token` response is optional 8 | 9 | ## [2.2.0] 10 | 11 | - update api specification to latest version 12 | 13 | ## [2.1.0] 14 | 15 | - added option to change base URL for API requests 16 | 17 | ## [2.0.2] 18 | 19 | - fixed cursor pagination for `getAllTeamMembers` ([#224](https://github.com/miroapp/api-clients/issues/224) by [Mahito](https://github.com/Mahito)) 20 | 21 | ## [2.0.1] 22 | 23 | - fixed cursor pagination for `getAllOrganizationMembers` ([#209](https://github.com/miroapp/api-clients/pull/209) by [Mahito](https://github.com/Mahito)) 24 | 25 | ## [2.0.0] 26 | 27 | - added new experimental API endpoints and updated based on latest specification: 28 | - https://developers.miro.com/changelog/2023-05-04-changelog 29 | - https://developers.miro.com/changelog/2023-05-24-changelog#flowchart 30 | - https://developers.miro.com/changelog/2023-06-12 31 | - https://developers.miro.com/changelog/2023-02-06-changelog 32 | 33 | ## [1.0.4] 34 | 35 | - added export board API 36 | - updated documentation 37 | - updated dependencies 38 | 39 | ## [1.0.3] 40 | 41 | - updated dependencies 42 | - updated isAuthorized to check if the access token is available, not only if the state is in storage 43 | 44 | ## [1.0.2] 45 | 46 | - Remove the need to have esModuleInterop and allowSyntheticDefaultImports flags enabled in tsconfig.json 47 | 48 | ## [1.0.1] 49 | 50 | - Updates to documentation 51 | 52 | ## [1.0.0] 53 | 54 | - Initial release 55 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @miroapp/dev-ecosystem 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Miro 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Miro API clients 2 | 3 | This repository contains Miro API clients and the tools needed to generate them, based on the OpenAPI specification (OAS). 4 | Currently, we have a [Node.js client](./packages/miro-api), written in [TypeScript](https://www.typescriptlang.org/) and a [Python client](https://github.com/miroapp/api-clients/tree/main/packages/miro-api-python) 5 | 6 | Contribution to this project is open and welcome! Read our [CONTRIBUTING.md](./CONTRIBUTING.md) guidelines to get started. Thank you for your help! 7 | 8 | ### Miro Node.js client 9 | 10 | - [Miro Node.js client reference documentation](https://miroapp.github.io/api-clients/node/index.html) 11 | 12 | - [Miro Python client reference documentation](https://miroapp.github.io/api-clients/python/miro_api.html) 13 | -------------------------------------------------------------------------------- /apps/client-test-app/.env.example: -------------------------------------------------------------------------------- 1 | CLIENT_ID: 2 | CLIENT_SECRET: 3 | TUNNEL: -------------------------------------------------------------------------------- /apps/client-test-app/.gitignore: -------------------------------------------------------------------------------- 1 | state-*.json 2 | .env -------------------------------------------------------------------------------- /apps/client-test-app/README.md: -------------------------------------------------------------------------------- 1 | _This app is used to try out apis we develop. Its not meant for public release or to be any good_ 2 | 3 | # Development 4 | Add your app ID and SECRET to a `.env` file in the root. 5 | 6 | 7 | You need to visit the app through a [localtunnel](https://www.npmjs.com/package/localtunnel), since localhost doesnt work as a callback url for the authentication api. 8 | Save that URL in the same `.env file`. You can pass a preferred localtunnel subdomain to the start command: 9 | 10 | So lets say you want to have the subdomain: `mettins-node-test-app` 11 | ```shell 12 | npx localtunnel --port 3000 --subdomain mettins-node-test-app 13 | ``` 14 | This will forward your `http://localhost:3000` -> `https://mettins-node-test-app.loca.lt`. 15 | 16 | Add this url to your app in the Miro interface (Redirect URI for OAuth2.0): `https://YOUR_SUBDOMAIN.loca.lt/auth/miro/callback/` 17 | 18 | Then, in another tab: 19 | ```shell 20 | yarn && yarn dev 21 | ``` 22 | 23 | The server will auto-reload, the webpage will NOT. 24 | 25 | -------------------------------------------------------------------------------- /apps/client-test-app/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miroapp/api-clients/98cacb42c7dcfc0bb60be33eb01da071a04b1a52/apps/client-test-app/img.png -------------------------------------------------------------------------------- /apps/client-test-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client-test-app", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "author": "Miro", 6 | "license": "MIT", 7 | "type": "module", 8 | "private": true, 9 | "scripts": { 10 | "dev": "nodemon -e js,ejs index.js" 11 | }, 12 | "dependencies": { 13 | "dotenv": "^16.4.5", 14 | "express": "^4.21.2" 15 | }, 16 | "peerDependencies": { 17 | "@mirohq/miro-api": "*" 18 | }, 19 | "devDependencies": { 20 | "ejs": "^3.1.10", 21 | "nodemon": "^3.1.3" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /apps/client-test-app/views/board.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | Board <%= locals.board.name %> / <%= board.id %> 4 | 5 | 6 | 7 |

<%= locals.board.name %> / <%= locals.boardId %>

8 | Back to all boards 9 |

Items on this board:

10 | 15 | 16 |
17 | 20 |
21 | 22 | 23 | -------------------------------------------------------------------------------- /apps/client-test-app/views/boardItem.ejs: -------------------------------------------------------------------------------- 1 | 2 | 3 | Item <%= locals.item.id %> / Board <%= locals.board.name %> / <%= board.id %> 4 | 5 | 6 | 7 | <% if (locals.connectedTo) { %> 8 | Successfully connected this item to <%= locals.connectedTo %> 9 | <% } %> 10 | 11 |

<%= board.name %> / <%= item.id %>

12 |
13 |
id:
14 |
<%= item.id %>
15 |
type:
16 |
<%= item.type %>
17 |
Board id:
18 |
<%= item.boardId %>
19 |
data.content:
20 |
<%= item.data?.content%>
21 |
geometry:
22 |
<%=JSON.stringify(item.geometry, null, 2)%>
23 |
modifiedAt:
24 |
<%= item.modifiedAt%>
25 |
modifiedBy:
26 |
<%=JSON.stringify(item.modifiedBy, null, 2)%>
27 |
position:
28 |
<%=JSON.stringify(item.position, null, 2)%>
29 |
30 |

Actions:

31 |

Connect to other item on board:

32 |
33 | 41 |
42 | 43 | -------------------------------------------------------------------------------- /apps/fastify/fastify.js: -------------------------------------------------------------------------------- 1 | import {Miro} from '@mirohq/miro-api' 2 | import Fastify from 'fastify' 3 | import fastifyCookie from '@fastify/cookie' 4 | 5 | const miro = new Miro() 6 | 7 | const app = Fastify() 8 | app.register(fastifyCookie) 9 | 10 | // Generate user ids for new sessions 11 | app.addHook('preHandler', (request, reply, next) => { 12 | if (!request.cookies.userId) { 13 | const userId = Math.random() 14 | reply.setCookie('userId', userId) 15 | request.cookies.userId = userId 16 | } 17 | next() 18 | }) 19 | 20 | // Exchange the code for a token in the OAuth2 redirect handler 21 | app.get('/auth/miro/callback', async (req, reply) => { 22 | await miro.exchangeCodeForAccessToken(req.cookies.userId, req.query.code) 23 | reply.redirect('/') 24 | }) 25 | 26 | app.get('/', async (req, reply) => { 27 | 28 | // If user did not authorize the app, then redirect them to auth url 29 | if (!await miro.isAuthorized(req.cookies.userId)) { 30 | reply.redirect(miro.getAuthUrl()) 31 | return 32 | } 33 | 34 | // Initialize the API for the current user 35 | const api = miro.as(req.cookies.userId) 36 | 37 | // Print the info of the first board 38 | for await (const board of api.getAllBoards()) { 39 | return board 40 | } 41 | }) 42 | 43 | await app.listen({port: 4000}) 44 | -------------------------------------------------------------------------------- /apps/fastify/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "fastify-example", 3 | "version": "0.0.1", 4 | "main": "fastify.js", 5 | "type": "module", 6 | "dependencies": { 7 | "fastify": "^4.27.0" 8 | } 9 | } -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "miro-api-clients", 3 | "private": true, 4 | "version": "1.0.0", 5 | "description": "", 6 | "main": "index.js", 7 | "type": "module", 8 | "workspaces": [ 9 | "packages/*", 10 | "apps/*" 11 | ], 12 | "scripts": { 13 | "build": "yarn workspace generator generate && yarn workspace @mirohq/miro-api build", 14 | "dev": "yarn workspace client-test-app dev", 15 | "pretest": "yarn build", 16 | "test": "yarn workspaces run test", 17 | "coverage": "yarn workspace generator coverage && yarn workspace @mirohq/miro-api coverage", 18 | "format": "prettier -w ./packages", 19 | "prepare": "husky install" 20 | }, 21 | "author": "", 22 | "license": "MIT", 23 | "dependencies": { 24 | "fast-glob": "^3.3.2", 25 | "jest": "^29.7.0", 26 | "lodash": "^4.17.21", 27 | "prettier": "^2.8.7", 28 | "tsx": "^4.10.1" 29 | }, 30 | "devDependencies": { 31 | "@mirohq/prettier-config": "^2.0.0", 32 | "@types/jest": "^29.5.12", 33 | "@types/lodash": "^4.17.5", 34 | "esbuild": "^0.25.0", 35 | "esbuild-jest": "^0.5.0", 36 | "husky": "^8.0.3" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /packages/generator/__tests__/modelDefinition.test.ts: -------------------------------------------------------------------------------- 1 | import {normalizeTheModel} from '../modelDefinition' 2 | describe('modelDefinition#normalizeTheModel', () => { 3 | it('infers the return type from the method name', () => { 4 | expect( 5 | normalizeTheModel({ 6 | props: [], 7 | methods: ['getItem'], 8 | }), 9 | ).toEqual({ 10 | id: 'id', 11 | props: [], 12 | methods: [ 13 | { 14 | method: 'getItem', 15 | alias: 'getItem', 16 | returns: 'Item', 17 | paginated: undefined, 18 | topLevelCall: false, 19 | }, 20 | ], 21 | }) 22 | }) 23 | 24 | it('infers the return type from the method alias', () => { 25 | expect( 26 | normalizeTheModel({ 27 | props: [], 28 | methods: [{method: 'getItemSomething', alias: 'getItem'}], 29 | }), 30 | ).toEqual({ 31 | id: 'id', 32 | props: [], 33 | methods: [ 34 | { 35 | method: 'getItemSomething', 36 | alias: 'getItem', 37 | returns: 'Item', 38 | paginated: undefined, 39 | topLevelCall: false, 40 | }, 41 | ], 42 | }) 43 | }) 44 | }) 45 | -------------------------------------------------------------------------------- /packages/generator/generate_mermaid.ts: -------------------------------------------------------------------------------- 1 | import {normalizeTheModel, models} from './modelDefinition' 2 | 3 | console.log('```mermaid') 4 | console.log('graph LR;') 5 | 6 | for (const name of Object.keys(models)) { 7 | const model = normalizeTheModel(models[name]) 8 | 9 | console.log( 10 | model.methods 11 | .filter((m) => m.returns) 12 | .map((m) => { 13 | return `${name}-->|${m.alias}| ${m.returns}` 14 | }) 15 | .join('\n'), 16 | ) 17 | } 18 | console.log('```') 19 | -------------------------------------------------------------------------------- /packages/generator/openapitools.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/@openapitools/openapi-generator-cli/config.schema.json", 3 | "spaces": 2, 4 | "generator-cli": { 5 | "version": "7.3.0" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/generator/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "generator", 3 | "private": true, 4 | "version": "0.0.1", 5 | "author": "@mirohq", 6 | "license": "MIT", 7 | "scripts": { 8 | "test": "jest", 9 | "coverage": "jest --coverage --coverageDirectory coverage", 10 | "validate_commited": "./test/generator_test.sh", 11 | "generate": "for script in ./scripts/generate-*-client.sh; do echo \"\nRunning $script\n\"; $script; done" 12 | }, 13 | "dependencies": { 14 | "@openapitools/openapi-generator-cli": "^2.13.4" 15 | }, 16 | "jest": { 17 | "extensionsToTreatAsEsm": [ 18 | ".ts" 19 | ], 20 | "transform": { 21 | "^.+\\.tsx?$": [ 22 | "esbuild-jest", 23 | { 24 | "format": "cjs" 25 | } 26 | ] 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /packages/generator/python-docs-template/module.html.jinja2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miroapp/api-clients/98cacb42c7dcfc0bb60be33eb01da071a04b1a52/packages/generator/python-docs-template/module.html.jinja2 -------------------------------------------------------------------------------- /packages/generator/scripts/generate-node-client.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | target=../miro-api 5 | 6 | rm -rf "$target/"{api,model} 7 | openapi-generator-cli generate \ 8 | -i 'spec.json' \ 9 | -o "${target}" \ 10 | -g 'typescript-node' \ 11 | -t './typescript-node-template' \ 12 | -p 'npmName=@mirohq/miro-api' \ 13 | -p "npmVersion=$(jq .version < ../../packages/miro-api/package.json)" \ 14 | | grep -v 'Renamed to ModelError' | grep -v 'o.o.codegen.TemplateManager' | grep -v 'writing file' \ 15 | | sed 's/^/ openapi-generator > /' 16 | 17 | 18 | echo "Removing duplicate imports" 19 | 20 | ./scripts/remove_duplicate_imports.sh "${target}/api/apis.ts" 21 | 22 | echo "Generating highlevel models" 23 | 24 | ./scripts/generate_node_highlevel_models.ts | prettier --parser typescript >| "${target}/highlevel/index.ts" 25 | 26 | echo "Running prettier" 27 | 28 | prettier -w ./scripts ../../packages --loglevel error 29 | 30 | -------------------------------------------------------------------------------- /packages/generator/scripts/generate-python-client.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | target=../miro-api-python 5 | 6 | openapi-generator-cli generate \ 7 | -i 'spec.json' \ 8 | -o "${target}" \ 9 | -g 'python' \ 10 | -p 'generateSourceCodeOnly=true' \ 11 | -p 'packageName=miro_api' \ 12 | -p 'disallowAdditionalPropertiesIfNotPresent=false' \ 13 | -p "packageVersion=$(jq .version < ../../packages/miro-api/package.json)" \ 14 | -t './python-template' \ 15 | | grep -v 'writing file' \ 16 | | sed 's/^/ openapi-generator > /' 17 | 18 | echo "Removing duplicate imports" 19 | ./scripts/remove_duplicate_imports.sh "${target}/miro_api/api/__init__.py" 20 | 21 | echo "Remove fluff" 22 | 23 | rm -r "${target}/miro_api/docs" 24 | rm -r "${target}/miro_api/test" 25 | rm "${target}/miro_api/api/"*"_api.py" 26 | rm "${target}/miro_api_README.md" 27 | 28 | 29 | echo "Format using black" 30 | pipx run black ${target}/miro_api/ 31 | -------------------------------------------------------------------------------- /packages/generator/scripts/generate_node_highlevel_models.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env tsx 2 | import {run} from '../highlevelModelGenerator' 3 | import {getModels} from '../modelDefinition' 4 | 5 | console.log(run(getModels())) 6 | -------------------------------------------------------------------------------- /packages/generator/scripts/remove_duplicate_imports.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | file="$1" 5 | tmpfile=_newapi.ts 6 | 7 | awk '/import/ { if (!a[$0]++) print $0 } !/import/ { print $0}' "$file" > "$tmpfile" 8 | mv "$tmpfile" "$file" 9 | -------------------------------------------------------------------------------- /packages/generator/test/generator_test.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -euo pipefail 3 | 4 | # Check if there are uncommitted changes 5 | # git status -s = list changes, 1 changed file per line 6 | # git status -s | wc -l = Count number of lines, and thus changed files 7 | # git status -s | wc -l | ts -d ' ' = remove spaces 8 | if [[ $(git status -s | wc -l | tr -d ' ') != 0 ]]; then 9 | echo "FAILED: " 10 | echo " There are some differences between the generated code and committed code, see below: " 11 | echo test statement1: "$(git status -s)" 12 | echo test statement2: "$(git status -s | wc -l)" 13 | echo test statement3: "$(git status -s | wc -l | tr -d ' ')" 14 | echo test statement4: "$(git status -s | wc -l | tr -d ' ')" != 0 15 | echo 16 | git status -s 17 | exit 1 18 | else 19 | echo "all is well, all changes committed" 20 | fi 21 | 22 | -------------------------------------------------------------------------------- /packages/generator/typescript-node-template/api-single.mustache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/miroapp/api-clients/98cacb42c7dcfc0bb60be33eb01da071a04b1a52/packages/generator/typescript-node-template/api-single.mustache -------------------------------------------------------------------------------- /packages/generator/typescript-node-template/api.mustache: -------------------------------------------------------------------------------- 1 | // This is the entrypoint for the package 2 | export * from './api/apis'; 3 | export * from './model/models'; 4 | -------------------------------------------------------------------------------- /packages/generator/typescript-node-template/licenseInfo.mustache: -------------------------------------------------------------------------------- 1 | /** 2 | * {{{appName}}} 3 | * {{{appDescription}}} 4 | * 5 | * {{#version}}The version of the OpenAPI document: {{{.}}}{{/version}} 6 | * {{#infoEmail}}Contact: {{{.}}}{{/infoEmail}} 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | -------------------------------------------------------------------------------- /packages/miro-api-python/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | docs-out 3 | -------------------------------------------------------------------------------- /packages/miro-api-python/.openapi-generator-ignore: -------------------------------------------------------------------------------- 1 | # OpenAPI Generator Ignore 2 | # Generated by openapi-generator https://github.com/openapitools/openapi-generator 3 | 4 | # Use this file to prevent files from being overwritten by the generator. 5 | # The patterns follow closely to .gitignore or .dockerignore. 6 | 7 | # As an example, the C# client generator defines ApiClient.cs. 8 | # You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: 9 | #ApiClient.cs 10 | 11 | # You can match any string of characters against a directory, file or extension with a single asterisk (*): 12 | #foo/*/qux 13 | # The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux 14 | 15 | # You can recursively match patterns against a directory, file or extension with a double asterisk (**): 16 | #foo/**/qux 17 | # This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux 18 | 19 | # You can also negate patterns with an exclamation (!). 20 | # For example, you can ignore all files in a docs folder with the file extension .md: 21 | docs/*.md 22 | *_api.py 23 | miro_api/__init__.py 24 | # Then explicitly reverse the ignore rule for a single file: 25 | #!docs/README.md 26 | -------------------------------------------------------------------------------- /packages/miro-api-python/.openapi-generator/VERSION: -------------------------------------------------------------------------------- 1 | 7.3.0 -------------------------------------------------------------------------------- /packages/miro-api-python/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Requirements 2 | 3 | Python 3.9+ 4 | [poetry](https://python-poetry.org/docs/) 5 | 6 | ## Install dependencies 7 | 8 | poetry install 9 | 10 | ## Run tests 11 | 12 | poetry run python -m unittest 13 | 14 | ## Publishing 15 | 16 | - Update version in [pyproject.toml](./pyproject.toml) 17 | - Push to main branch which will trigger the build and upload package to pypi, see [publish.yaml][../../.github/workflows/publish.yml] 18 | -------------------------------------------------------------------------------- /packages/miro-api-python/docs-template/custom.css: -------------------------------------------------------------------------------- 1 | img { 2 | max-width: 100%; 3 | height: fit-content; 4 | } 5 | -------------------------------------------------------------------------------- /packages/miro-api-python/example/.sample.env: -------------------------------------------------------------------------------- 1 | MIRO_CLIENT_ID='' 2 | MIRO_CLIENT_SECRET='' 3 | MIRO_REDIRECT_URL='' -------------------------------------------------------------------------------- /packages/miro-api-python/example/README.md: -------------------------------------------------------------------------------- 1 | # Miro Python client Flask example 2 | 3 | This example shows how to use Flask and Miro's Python REST API client library to create a simple web-app running locally 4 | which calls Miro's REST APIs to fetch boards. 5 | 6 | ## App Demo 🔉 (Sound On) 🔉 7 | 8 | https://github.com/miroapp/app-examples/assets/10428517/aea10102-9b67-4976-8f37-855922b4f1cc 9 | 10 | ## Prerequisites 11 | 12 | - Python 3.9 or higher. 13 | 14 | ## Install dependencies 15 | 16 | This example uses `miro_api`, `flask` and `python-dotenv`. You can use either **pip** or **poetry** as follows: 17 | 18 | **Using [pip](https://github.com/pypa/pip)**: 19 | 20 | ```bash 21 | pip install miro_api flask python-dotenv 22 | ``` 23 | 24 | **Using [poetry](https://python-poetry.org/docs/)**: 25 | 26 | ```bash 27 | poetry add miro_api flask python-dotenv 28 | ``` 29 | 30 | ## Configuration 31 | 32 | We recommend using a `.env` file to store env variables. Go ahead and open the `.sample.env` file, and then add your variables in. 33 | 34 | Once you are done, it should look like this (_it is recommended to use http://localhost:5000_): 35 | 36 | ```bash 37 | MIRO_CLIENT_ID='123456789' 38 | MIRO_CLIENT_SECRET='abcdefghijklmnopqrstuvwxyz' 39 | MIRO_REDIRECT_URL='http://localhost:5000' 40 | ``` 41 | 42 | Ensure you rename the file `.env` and then save it. 43 | 44 | ### Run the app 45 | 46 | Run `flask --app app run` to start the dev server. 47 | 48 | Go to `localhost:5000` in your browser. 49 | 50 | Install the app on a team, and then you should see a list of all of the boards for that team. 51 | 52 | ### Reference 53 | 54 | - [Miro Python library reference](https://miroapp.github.io/api-clients/python/) 55 | -------------------------------------------------------------------------------- /packages/miro-api-python/example/app.py: -------------------------------------------------------------------------------- 1 | from flask import Flask, session, request 2 | from miro_api import Miro 3 | from miro_api.storage import Storage 4 | 5 | from dotenv import load_dotenv 6 | 7 | load_dotenv() 8 | 9 | app = Flask(__name__) 10 | 11 | app.secret_key = b'very_random_secret' 12 | 13 | class SessionStorage(Storage): 14 | session_key = 'miro_state' 15 | 16 | def get(self): 17 | return session[self.session_key] 18 | 19 | def set(self, state): 20 | if not state: 21 | session.pop(self.session_key, None) 22 | return 23 | session[self.session_key] = state 24 | 25 | miro = Miro(storage=SessionStorage()) 26 | 27 | def render_boards(): 28 | boards = miro.api.get_all_boards() 29 | names = '
'.join([board.name for board in boards]) 30 | return f"

List of boards in the team: {names}

" 31 | 32 | 33 | @app.route("/") 34 | def hello_world(): 35 | if miro.is_authorized: 36 | return render_boards() 37 | 38 | if code := request.args.get('code', ''): 39 | miro.exchange_code_for_access_token(code) 40 | return render_boards() 41 | 42 | return f"Login to Miro" 43 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/__init__.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | """ 3 | Miro API python client exposes two classes: `MiroApi` and `Miro` 4 | 5 | `MiroApi` class is the stateless low-level client. 6 | It contains methods for backend-to-backend communication and to run automation scripts. 7 | It enables passing the OAuth access token once, and then reusing it in subsequent calls. 8 | 9 | `Miro` is the stateful high-level client. 10 | It contains properties and methods to interact with Miro users. For example, to trigger the authorization flow. 11 | The Miro methods are related to authorization and access token management. 12 | """ 13 | 14 | __version__ = "2.1.2" 15 | 16 | 17 | from miro_api.miro_api_wrapper import MiroApi, Miro 18 | 19 | MiroApi = MiroApi 20 | Miro = Miro 21 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/api_response.py: -------------------------------------------------------------------------------- 1 | """API response object.""" 2 | 3 | from __future__ import annotations 4 | from typing import Optional, Generic, Mapping, TypeVar 5 | from pydantic import Field, StrictInt, StrictBytes, BaseModel 6 | 7 | T = TypeVar("T") 8 | 9 | 10 | class ApiResponse(BaseModel, Generic[T]): 11 | """ 12 | API response object 13 | """ 14 | 15 | status_code: StrictInt = Field(description="HTTP status code") 16 | headers: Optional[Mapping[str, str]] = Field(None, description="HTTP headers") 17 | data: T = Field(description="Deserialized data given the data type") 18 | raw_data: StrictBytes = Field(description="Raw data (HTTP response body)") 19 | 20 | model_config = {"arbitrary_types_allowed": True} 21 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/models/item_type_change.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | Miro Developer Platform 5 | 6 | ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro's Developer Platform 2.0. 7 | 8 | The version of the OpenAPI document: v2.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | 15 | from __future__ import annotations 16 | import json 17 | from enum import Enum 18 | from typing_extensions import Self 19 | 20 | 21 | class ItemTypeChange(str, Enum): 22 | """ 23 | Type of item that you want to create. 24 | """ 25 | 26 | """ 27 | allowed enum values 28 | """ 29 | APP_CARD = "app_card" 30 | TEXT = "text" 31 | SHAPE = "shape" 32 | STICKY_NOTE = "sticky_note" 33 | IMAGE = "image" 34 | DOCUMENT = "document" 35 | CARD = "card" 36 | FRAME = "frame" 37 | EMBED = "embed" 38 | 39 | @classmethod 40 | def from_json(cls, json_str: str) -> Self: 41 | """Create an instance of ItemTypeChange from a JSON string""" 42 | return cls(json.loads(json_str)) 43 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/models/project_role.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | Miro Developer Platform 5 | 6 | ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro's Developer Platform 2.0. 7 | 8 | The version of the OpenAPI document: v2.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | 15 | from __future__ import annotations 16 | import json 17 | from enum import Enum 18 | from typing_extensions import Self 19 | 20 | 21 | class ProjectRole(str, Enum): 22 | """ 23 | Role of the project member. 24 | """ 25 | 26 | """ 27 | allowed enum values 28 | """ 29 | OWNER = "owner" 30 | EDITOR = "editor" 31 | VIEWER = "viewer" 32 | COMMENTATOR = "commentator" 33 | COOWNER = "coowner" 34 | 35 | @classmethod 36 | def from_json(cls, json_str: str) -> Self: 37 | """Create an instance of ProjectRole from a JSON string""" 38 | return cls(json.loads(json_str)) 39 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/models/project_role_to_add.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | Miro Developer Platform 5 | 6 | ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro's Developer Platform 2.0. 7 | 8 | The version of the OpenAPI document: v2.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | 15 | from __future__ import annotations 16 | import json 17 | from enum import Enum 18 | from typing_extensions import Self 19 | 20 | 21 | class ProjectRoleToAdd(str, Enum): 22 | """ 23 | Role of the project member. 24 | """ 25 | 26 | """ 27 | allowed enum values 28 | """ 29 | EDITOR = "editor" 30 | VIEWER = "viewer" 31 | COMMENTATOR = "commentator" 32 | COOWNER = "coowner" 33 | 34 | @classmethod 35 | def from_json(cls, json_str: str) -> Self: 36 | """Create an instance of ProjectRoleToAdd from a JSON string""" 37 | return cls(json.loads(json_str)) 38 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/models/team_access.py: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | 3 | """ 4 | Miro Developer Platform 5 | 6 | ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro's Developer Platform 2.0. 7 | 8 | The version of the OpenAPI document: v2.0 9 | Generated by OpenAPI Generator (https://openapi-generator.tech) 10 | 11 | Do not edit the class manually. 12 | """ # noqa: E501 13 | 14 | 15 | from __future__ import annotations 16 | import json 17 | from enum import Enum 18 | from typing_extensions import Self 19 | 20 | 21 | class TeamAccess(str, Enum): 22 | """ 23 | Team access * \"private\": Only the members of the project can access the information within the project. * \"view\": Anyone in the team can view the information in within the project. 24 | """ 25 | 26 | """ 27 | allowed enum values 28 | """ 29 | PRIVATE = "private" 30 | VIEW = "view" 31 | 32 | @classmethod 33 | def from_json(cls, json_str: str) -> Self: 34 | """Create an instance of TeamAccess from a JSON string""" 35 | return cls(json.loads(json_str)) 36 | -------------------------------------------------------------------------------- /packages/miro-api-python/miro_api/storage.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from abc import ABC, abstractmethod 3 | import datetime 4 | 5 | from typing import Optional 6 | 7 | 8 | @dataclass 9 | class State: 10 | """ 11 | A dataclass containing access token, refresh token and access token expiration time 12 | """ 13 | 14 | access_token: str 15 | refresh_token: Optional[str] 16 | token_expires_at: Optional[datetime.datetime] 17 | 18 | 19 | class Storage(ABC): 20 | """Abstract class that's used by the stateful client to set and get State.""" 21 | 22 | @abstractmethod 23 | def set(self, state: Optional[State]) -> None: 24 | pass 25 | 26 | @abstractmethod 27 | def get(self) -> Optional[State]: 28 | pass 29 | 30 | 31 | class InMemoryStorage(Storage): 32 | """In memory implementation of the `Storage`. Not recommended to be used in production.""" 33 | 34 | def __init__(self): 35 | self.data: Optional[State] = None 36 | 37 | def set(self, state: Optional[State]) -> None: 38 | self.data = state 39 | 40 | def get(self) -> Optional[State]: 41 | return self.data 42 | -------------------------------------------------------------------------------- /packages/miro-api-python/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["poetry-core"] 3 | build-backend = "poetry.core.masonry.api" 4 | 5 | [tool.poetry] 6 | name = "miro_api" 7 | version = "2.2.4" 8 | description = "Miro API client" 9 | authors = ["Josip Janzic "] 10 | readme = "README.md" 11 | packages = [{include = "miro_api"}] 12 | 13 | [tool.poetry.dependencies] 14 | python = ">=3.9" 15 | urllib3 = "^1" 16 | python-dateutil = "^2.9.0.post0" 17 | pydantic = "^2.6.4" 18 | 19 | [tool.poetry.group.dev.dependencies] 20 | twine = "^5.0.0" 21 | 22 | 23 | [tool.poetry.group.example.dependencies] 24 | flask = "^3.0.3" 25 | 26 | 27 | [tool.poetry.group.docs.dependencies] 28 | pdoc = "^14.4.0" 29 | 30 | [project.urls] 31 | Homepage = "https://github.com/miroapp/api-clients" 32 | Issues = "https://github.com/miroapp/api-clients/issues" 33 | 34 | [tool.black] 35 | target-version = ["py39", "py310", "py311"] 36 | line-length = 120 37 | -------------------------------------------------------------------------------- /packages/miro-api-python/scripts/build-docs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | poetry run pdoc miro_api \ 4 | '!miro_api.rest' \ 5 | '!miro_api.api_response' \ 6 | '!miro_api.client' \ 7 | '!miro_api.configuration' \ 8 | '!miro_api.autopaginated_endpoints' \ 9 | '!miro_api.test_miro_api_wrapper' \ 10 | '!miro_api.api_client' \ 11 | '!miro_api.miro_api_wrapper' \ 12 | '!miro_api.exceptions' \ 13 | -d markdown -t ./docs-template -o docs-out 14 | -------------------------------------------------------------------------------- /packages/miro-api-python/scripts/update-version.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # Update __version__ in __init__.py to one from pyproject.toml 4 | 5 | INIT_PY_FILE=miro_api/__init__.py 6 | TMP_FILE=$(mktemp) 7 | 8 | sed -e 's/^__version__.*/__version__ = "'"$(poetry version -s)"'"/' "$INIT_PY_FILE" > "$TMP_FILE" 9 | mv "$TMP_FILE" "$INIT_PY_FILE" 10 | -------------------------------------------------------------------------------- /packages/miro-api/.gitignore: -------------------------------------------------------------------------------- 1 | wwwroot/*.js 2 | docs-out 3 | node_modules 4 | typings 5 | dist 6 | yarn.lock 7 | docs-theme/index.js 8 | -------------------------------------------------------------------------------- /packages/miro-api/.npmignore: -------------------------------------------------------------------------------- 1 | /api 2 | /model 3 | /apps/fastify/examples 4 | /highlevel 5 | /interfaces 6 | /docs 7 | /docs-out 8 | 9 | scripts/ 10 | test/ 11 | 12 | docs 13 | __tests__ 14 | 15 | .openapi* 16 | 17 | *.sh 18 | *.json 19 | *.tgz 20 | 21 | *.ts 22 | !*.d.ts 23 | 24 | !/dist/**/* 25 | 26 | *lock 27 | -------------------------------------------------------------------------------- /packages/miro-api/.openapi-generator-ignore: -------------------------------------------------------------------------------- 1 | # OpenAPI Generator Ignore 2 | # Generated by openapi-generator https://github.com/openapitools/openapi-generator 3 | 4 | # Use this file to prevent files from being overwritten by the generator. 5 | # The patterns follow closely to .gitignore or .dockerignore. 6 | 7 | # As an example, the C# client generator defines ApiClient.cs. 8 | # You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: 9 | #ApiClient.cs 10 | 11 | # You can match any string of characters against a directory, file or extension with a single asterisk (*): 12 | #foo/*/qux 13 | # The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux 14 | 15 | # You can recursively match patterns against a directory, file or extension with a double asterisk (**): 16 | #foo/**/qux 17 | # This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux 18 | 19 | # You can also negate patterns with an exclamation (!). 20 | # For example, you can ignore all files in a docs folder with the file extension .md: 21 | #docs/*.md 22 | # Then explicitly reverse the ignore rule for a single file: 23 | #!docs/README.md 24 | 25 | .gitignore 26 | package.json 27 | git_push.sh 28 | tsconfig.json 29 | 30 | api/** 31 | !api/apis.ts 32 | -------------------------------------------------------------------------------- /packages/miro-api/.openapi-generator/VERSION: -------------------------------------------------------------------------------- 1 | 7.3.0 -------------------------------------------------------------------------------- /packages/miro-api/api.ts: -------------------------------------------------------------------------------- 1 | // This is the entrypoint for the package 2 | export * from './api/apis' 3 | export * from './model/models' 4 | -------------------------------------------------------------------------------- /packages/miro-api/catalog-info.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: backstage.io/v1alpha1 3 | kind: Component 4 | 5 | metadata: 6 | name: miro-node-js-api-client 7 | title: NodeJS API client 8 | description: NodeJS client for the Miro developers platform REST API 9 | annotations: 10 | backstage.io/techdocs-ref: dir:. 11 | github.com/project-slug: miroapp/api-clients 12 | tags: [] 13 | links: [] 14 | 15 | spec: 16 | type: library 17 | owner: dev-ecosystem 18 | criticality: low 19 | lifecycle: production 20 | operations: 21 | region: eu 22 | support: full 23 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/Api.ts: -------------------------------------------------------------------------------- 1 | import {Board} from './index' 2 | import {MiroApi} from '../api' 3 | import {hasMoreData} from './helpers' 4 | 5 | /** @hidden */ 6 | export abstract class BaseApi { 7 | abstract _api: MiroApi 8 | 9 | /** {@inheritDoc api/apis!MiroApi.revokeToken} */ 10 | async revokeToken(): Promise { 11 | await this._api.revokeToken( 12 | typeof this._api.accessToken === 'function' ? await this._api.accessToken() : this._api.accessToken, 13 | ) 14 | } 15 | 16 | /** 17 | * Retrieves all boards that match the search criteria provided in the request. If you are an Enterprise customer and a Company Admin, you can retrieve all boards, including all private boards (boards that haven\'t been specifically shared with you) by enabling Content Admin permissions. To enable Content Admin permissions, see https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins. Note that you only get results instantaneously when you filter by `team_id`. If you use any other filter, you need to give a few seconds for the indexing of newly created boards before retrieving boards.

Required scope

boards:read

Rate limiting

Level 1
18 | * 19 | * Returns an iterator which will automatically paginate and fetch all available boards 20 | * @summary Get boards 21 | */ 22 | async *getAllBoards(query?: Omit[0], 'offset'>): AsyncGenerator { 23 | let currentOffset = 0 24 | while (true) { 25 | const response = ( 26 | await this._api.getBoards({ 27 | ...query, 28 | offset: currentOffset.toString(), 29 | }) 30 | ).body 31 | 32 | for (const board of response.data || []) { 33 | yield new Board(this._api, board.id, board) 34 | } 35 | 36 | if (!hasMoreData(response)) return 37 | currentOffset += response.data?.length || 0 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/AppCardItem.ts: -------------------------------------------------------------------------------- 1 | import {AppCardItem} from '../model/appCardItem' 2 | import {ConnectableItem, ConnectTo} from './Item' 3 | 4 | export abstract class BaseAppCardItem extends AppCardItem implements ConnectTo { 5 | type: 'app_card' = 'app_card' 6 | 7 | /** @group Methods */ 8 | connectTo = ConnectableItem.prototype.connectTo 9 | } 10 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/CardItem.ts: -------------------------------------------------------------------------------- 1 | import {CardItem} from '../model/cardItem' 2 | import {ConnectableItem, ConnectTo} from './Item' 3 | 4 | export abstract class BaseCardItem extends CardItem implements ConnectTo { 5 | type: 'card' = 'card' 6 | 7 | /** @group Methods */ 8 | connectTo = ConnectableItem.prototype.connectTo 9 | } 10 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/DocumentItem.ts: -------------------------------------------------------------------------------- 1 | import {DocumentUpdateRequest, MiroApi} from '../api' 2 | import {DocumentItem} from '../model/documentItem' 3 | import {isNotUrl, WidgetCreateWithBufferRequest} from './Board' 4 | import {ConnectableItem, ConnectTo} from './Item' 5 | import FormData = require('form-data') 6 | 7 | type WidgetUpdateWithBufferRequest = Partial 8 | 9 | export abstract class BaseDocumentItem extends DocumentItem implements ConnectTo { 10 | abstract _api: MiroApi 11 | abstract boardId: string 12 | type: 'document' = 'document' 13 | 14 | /** @group Methods */ 15 | connectTo = ConnectableItem.prototype.connectTo 16 | 17 | /** 18 | * Updates a document item on a board

Required scope

boards:write

Rate limiting

Level 2
19 | * 20 | * This method can be used to update the document item with a new URL or from a document file. 21 | * 22 | * @summary Update document item 23 | * @param request If request.data.url is set then the URL will be used to create a document otherwise contents of a request.data.data will be uploaded and used to create a document 24 | */ 25 | async update(request: DocumentUpdateRequest | WidgetUpdateWithBufferRequest): Promise { 26 | if (isNotUrl(request)) { 27 | const body = new FormData() 28 | body.append('resource', request.data.data, 'filename.pdf') 29 | body.append( 30 | 'data', 31 | JSON.stringify({ 32 | title: request.data.title, 33 | geometry: request.geometry, 34 | position: request.position, 35 | }), 36 | ) 37 | await this._api.call('PATCH', `/v2/boards/${this.boardId}/documents/${this.id}`, body) 38 | return 39 | } 40 | await this._api.updateDocumentItemUsingUrl(this.boardId.toString(), this.id.toString(), request) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/EmbedItem.ts: -------------------------------------------------------------------------------- 1 | import {EmbedItem} from '../model/embedItem' 2 | import {ConnectableItem, ConnectTo} from './Item' 3 | 4 | export abstract class BaseEmbedItem extends EmbedItem implements ConnectTo { 5 | type: 'embed' = 'embed' 6 | 7 | /** @group Methods */ 8 | connectTo = ConnectableItem.prototype.connectTo 9 | } 10 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/FrameItem.ts: -------------------------------------------------------------------------------- 1 | import {FrameItem} from '../model/frameItem' 2 | import {GenericItemCursorPaged, MiroApi} from '../api' 3 | import {Item} from './index' 4 | import {WidgetItem} from './Item' 5 | 6 | /** @hidden */ 7 | export abstract class BaseFrameItem extends FrameItem { 8 | abstract _api: MiroApi 9 | abstract id: string 10 | abstract boardId: string 11 | 12 | /** 13 | * Retrieves a list of items within a specific frame. A frame is a parent item and all items within a frame are child items.

Required scope

boards:read

Rate limiting

Level 2
14 | * Returns an iterator which will automatically paginate and fetch all available items 15 | * @summary Get items within frame 16 | */ 17 | async *getAllItems( 18 | query?: Omit[2], 'cursor'>, 19 | ): AsyncGenerator { 20 | let cursor: string | undefined = undefined 21 | while (true) { 22 | const response: GenericItemCursorPaged = ( 23 | await this._api.getItemsWithinFrame(this.boardId, this.id.toString(), { 24 | ...query, 25 | cursor, 26 | }) 27 | ).body 28 | 29 | for (const item of response.data || []) { 30 | yield Item.fromGenericItem(this._api, this.boardId, item) 31 | } 32 | 33 | cursor = response.cursor 34 | const size = response.data?.length || 0 35 | const total = response.total || 0 36 | if (!total || !size) return 37 | if (!cursor) return 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/ImageItem.ts: -------------------------------------------------------------------------------- 1 | import {ImageUpdateRequest, MiroApi} from '../api' 2 | import {ImageItem} from '../model/imageItem' 3 | import {isNotUrl, WidgetCreateWithBufferRequest} from './Board' 4 | import {ConnectableItem, ConnectTo} from './Item' 5 | import FormData = require('form-data') 6 | 7 | type WidgetUpdateWithBufferRequest = Partial 8 | 9 | export abstract class BaseImageItem extends ImageItem implements ConnectTo { 10 | abstract _api: MiroApi 11 | abstract boardId: string 12 | type: 'image' = 'image' 13 | 14 | /** @group Methods */ 15 | connectTo = ConnectableItem.prototype.connectTo 16 | 17 | /** 18 | * Updates an image item on a board.

Required scope

boards:write

Rate limiting

Level 2
19 | * 20 | * This method can be used to update the image item with a new URL or from an image file. 21 | * 22 | * @summary Update image item 23 | * @param request If request.data.url is set then the URL will be used to create an image otherwise contents of a request.data.data will be uploaded and used to create an image 24 | */ 25 | async update(request: ImageUpdateRequest | WidgetUpdateWithBufferRequest): Promise { 26 | if (isNotUrl(request)) { 27 | const body = new FormData() 28 | body.append('resource', request.data.data, 'filename.png') 29 | body.append( 30 | 'data', 31 | JSON.stringify({ 32 | title: request.data.title, 33 | geometry: request.geometry, 34 | position: request.position, 35 | }), 36 | ) 37 | await this._api.call('PATCH', `/v2/boards/${this.boardId}/images/${this.id}`, body) 38 | return 39 | } 40 | await this._api.updateImageItemUsingUrl(this.boardId.toString(), this.id.toString(), request) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/ShapeItem.ts: -------------------------------------------------------------------------------- 1 | import {ShapeItem} from '../model/shapeItem' 2 | import {ConnectableItem, ConnectTo} from './Item' 3 | 4 | export abstract class BaseShapeItem extends ShapeItem implements ConnectTo { 5 | type: 'shape' = 'shape' 6 | 7 | /** @group Methods */ 8 | connectTo = ConnectableItem.prototype.connectTo 9 | } 10 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/StickyNoteItem.ts: -------------------------------------------------------------------------------- 1 | import {StickyNoteItem} from '../model/stickyNoteItem' 2 | import {ConnectableItem, ConnectTo} from './Item' 3 | 4 | export abstract class BaseStickyNoteItem extends StickyNoteItem implements ConnectTo { 5 | type: 'sticky_note' = 'sticky_note' 6 | 7 | /** @group Methods */ 8 | connectTo = ConnectableItem.prototype.connectTo 9 | } 10 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/Tag.ts: -------------------------------------------------------------------------------- 1 | import {MiroApi} from '../api' 2 | import {hasMoreData} from './helpers' 3 | import {Item} from './index' 4 | import {Tag} from '../model/tag' 5 | 6 | /** @hidden */ 7 | export abstract class BaseTag extends Tag { 8 | abstract _api: MiroApi 9 | abstract boardId: string 10 | abstract id: string 11 | 12 | /** 13 | * Retrieves all the items that have the specified tag.

Required scope

boards:read

Rate limiting

Level 1
14 | * Returns an iterator which will automatically paginate and fetch all tagged items 15 | * @summary Get items by tag 16 | */ 17 | async *getAllTaggedItems(): AsyncGenerator { 18 | let currentOffset = 0 19 | while (true) { 20 | const response = ( 21 | await this._api.getItemsByTag(this.boardId, this.id.toString(), { 22 | offset: currentOffset.toString(), 23 | }) 24 | ).body 25 | 26 | for (const item of response.data || []) { 27 | yield new Item(this._api, this.boardId, item.id, item) 28 | } 29 | 30 | if (!hasMoreData(response)) return 31 | currentOffset += response.data?.length || 0 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/TextItem.ts: -------------------------------------------------------------------------------- 1 | import {TextItem} from '../model/textItem' 2 | import {ConnectableItem, ConnectTo} from './Item' 3 | 4 | export abstract class BaseTextItem extends TextItem implements ConnectTo { 5 | type: 'text' = 'text' 6 | 7 | /** @group Methods */ 8 | connectTo = ConnectableItem.prototype.connectTo 9 | } 10 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/__tests__/Api.test.ts: -------------------------------------------------------------------------------- 1 | import {MiroApi} from '../../api' 2 | import {Connector, Api} from '../index' 3 | import {jest} from '@jest/globals' 4 | 5 | describe('Api test', () => { 6 | describe('revokeToken', () => { 7 | it('calls revokeToken with string token', async () => { 8 | const token = 'token' 9 | const api = new MiroApi(token) 10 | api.revokeToken = jest.fn(async () => ({body: {}, response: {} as any})) 11 | 12 | const highlevelApi = new Api(api, {}) 13 | await highlevelApi.revokeToken() 14 | 15 | expect(api.revokeToken).toBeCalledWith(token) 16 | }) 17 | 18 | it('calls revokeToken with function token', async () => { 19 | const token = 'token' 20 | const tokenProvider = async () => token 21 | const api = new MiroApi(tokenProvider) 22 | api.revokeToken = jest.fn(async () => ({body: {}, response: {} as any})) 23 | 24 | const highlevelApi = new Api(api, {}) 25 | await highlevelApi.revokeToken() 26 | 27 | expect(api.revokeToken).toBeCalledWith(token) 28 | }) 29 | }) 30 | }) 31 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/__tests__/FrameItem.test.ts: -------------------------------------------------------------------------------- 1 | import {FrameItem, Item, StickyNoteItem} from '../index' 2 | import {MiroApi} from '../../api' 3 | import {jest} from '@jest/globals' 4 | 5 | describe('FrameItem', () => { 6 | describe('getItems', () => { 7 | const setup = () => { 8 | const api = new MiroApi('token') 9 | const id = 123 10 | const boardId = '456' 11 | const childId = 789 12 | const item = { 13 | boardId, 14 | id: childId, 15 | type: 'sticky_note', 16 | } as Item 17 | 18 | api.getItemsWithinFrame = jest.fn(async () => ({ 19 | response: {} as any, 20 | body: { 21 | data: [item], 22 | }, 23 | })) 24 | 25 | const getItemsWithinFrameSpy = jest.spyOn(api, 'getItemsWithinFrame') 26 | 27 | return { 28 | frameItem: new FrameItem(api, boardId, id, {}), 29 | getItemsWithinFrameSpy, 30 | id, 31 | boardId, 32 | childId, 33 | } 34 | } 35 | 36 | it('should call the api w/o any params', async () => { 37 | const {frameItem, getItemsWithinFrameSpy, id, boardId} = setup() 38 | 39 | const itemIterator = frameItem.getAllItems() 40 | await itemIterator.next() 41 | 42 | expect(getItemsWithinFrameSpy).toBeCalledTimes(1) 43 | expect(getItemsWithinFrameSpy).toBeCalledWith(boardId, String(id), {cursor: undefined}) 44 | }) 45 | 46 | it.each(['app_card', 'card', 'document', 'embed', 'frame', 'image', 'shape', 'sticky_note', 'text'] as const)( 47 | 'should call the api and pass the type param (%s)', 48 | async (type) => { 49 | const {frameItem, getItemsWithinFrameSpy, id, boardId} = setup() 50 | 51 | const itemIterator = frameItem.getAllItems({type}) 52 | await itemIterator.next() 53 | 54 | expect(getItemsWithinFrameSpy).toBeCalledTimes(1) 55 | expect(getItemsWithinFrameSpy).toBeCalledWith(boardId, String(id), {type}) 56 | }, 57 | ) 58 | it('should return the models', async () => { 59 | const {frameItem, childId} = setup() 60 | 61 | const itemIterator = frameItem.getAllItems() 62 | const item = (await itemIterator.next()).value 63 | 64 | expect(item).toBeDefined() 65 | 66 | expect(item).toBeInstanceOf(StickyNoteItem) 67 | expect(item && item.id).toEqual(childId) 68 | }) 69 | }) 70 | }) 71 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/__tests__/Tag.test.ts: -------------------------------------------------------------------------------- 1 | import {MiroApi} from '../../api' 2 | import {Tag, Item} from '../index' 3 | import {jest} from '@jest/globals' 4 | 5 | describe('Tag', () => { 6 | const setup = () => { 7 | const api = new MiroApi('token') 8 | const getItemsByTag = jest.spyOn(api, 'getItemsByTag') 9 | 10 | const tagId = 123 11 | const boardId = '456' 12 | const tag = new Tag(api, boardId, tagId, {}) 13 | 14 | return { 15 | tag, 16 | getItemsByTag, 17 | boardId, 18 | } 19 | } 20 | 21 | describe('getAllTaggedItems', () => { 22 | it('should call getItemsByTag method', async () => { 23 | const {tag, getItemsByTag} = setup() 24 | 25 | const itemId = 123 26 | getItemsByTag.mockResolvedValue({ 27 | response: {} as any, 28 | body: { 29 | data: [ 30 | { 31 | id: itemId, 32 | } as Item, 33 | ], 34 | total: 100, 35 | }, 36 | }) 37 | 38 | const iterator = tag.getAllTaggedItems() 39 | const item = (await iterator.next()).value 40 | 41 | if (!item) { 42 | throw new Error('Item Expected') 43 | } 44 | 45 | expect(getItemsByTag).toBeCalledTimes(1) 46 | expect(item.id).toBe(itemId) 47 | 48 | await iterator.next() 49 | expect(getItemsByTag).toBeCalledTimes(2) 50 | }) 51 | }) 52 | }) 53 | -------------------------------------------------------------------------------- /packages/miro-api/highlevel/helpers.ts: -------------------------------------------------------------------------------- 1 | /** @hidden */ 2 | export function toString(id: number | string | undefined) { 3 | return id ? id.toString() : '' 4 | } 5 | 6 | /** @hidden */ 7 | export function hasMoreData(response: {offset?: number; data?: Array; total?: number}): boolean { 8 | const responseOffset = response.offset || 0 9 | const size = response.data?.length || 0 10 | const total = response.total || 0 11 | 12 | return !!total && !!size && responseOffset + size < total 13 | } 14 | 15 | type DeepPartial = T extends object 16 | ? { 17 | [P in keyof T]?: T[P] extends string ? string : DeepPartial 18 | } 19 | : T 20 | 21 | export type KeepBase = DeepPartial 22 | -------------------------------------------------------------------------------- /packages/miro-api/interfaces/WidgetTypes.ts: -------------------------------------------------------------------------------- 1 | export type WidgetTypes = 2 | | 'app_card' 3 | | 'card' 4 | | 'document' 5 | | 'embed' 6 | | 'frame' 7 | | 'image' 8 | | 'shape' 9 | | 'sticky_note' 10 | | 'text' 11 | -------------------------------------------------------------------------------- /packages/miro-api/model/addProjectMemberRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {ProjectRole} from './projectRole' 14 | 15 | export class AddProjectMemberRequest { 16 | /** 17 | * Email ID of the user. 18 | */ 19 | 'email': string 20 | 'role': ProjectRole 21 | 22 | /** @ignore */ 23 | static discriminator: string | undefined = undefined 24 | 25 | /** @ignore */ 26 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 27 | { 28 | name: 'email', 29 | baseName: 'email', 30 | type: 'string', 31 | }, 32 | { 33 | name: 'role', 34 | baseName: 'role', 35 | type: 'ProjectRole', 36 | }, 37 | ] 38 | 39 | /** @ignore */ 40 | static getAttributeTypeMap() { 41 | return AddProjectMemberRequest.attributeTypeMap 42 | } 43 | } 44 | 45 | export namespace AddProjectMemberRequest {} 46 | -------------------------------------------------------------------------------- /packages/miro-api/model/appCardStyle.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of an app card item, such as the fill color. 16 | */ 17 | export class AppCardStyle { 18 | /** 19 | * Hex value of the border color of the app card. Default: `#2d9bf0`. 20 | */ 21 | 'fillColor'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'fillColor', 30 | baseName: 'fillColor', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return AppCardStyle.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/appCardStylePlatformbulkcreateoperation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of an app card item, such as the fill color. 16 | */ 17 | export class AppCardStylePlatformbulkcreateoperation { 18 | /** 19 | * Hex value of the border color of the app card. Default: `#2d9bf0`. 20 | */ 21 | 'fillColor'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'fillColor', 30 | baseName: 'fillColor', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return AppCardStylePlatformbulkcreateoperation.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/auditObject.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * The object related with the audit event 16 | */ 17 | export class AuditObject { 18 | /** 19 | * Id of the object 20 | */ 21 | 'id'?: string 22 | /** 23 | * Name of the object 24 | */ 25 | 'name'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'id', 34 | baseName: 'id', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'name', 39 | baseName: 'name', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return AuditObject.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/auditOrganization.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Organization associated with the audit context 16 | */ 17 | export class AuditOrganization { 18 | /** 19 | * Id of the organization 20 | */ 21 | 'id'?: string 22 | /** 23 | * Name of the organization 24 | */ 25 | 'name'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'id', 34 | baseName: 'id', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'name', 39 | baseName: 'name', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return AuditOrganization.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/auditTeam.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Team associated with the audit context 16 | */ 17 | export class AuditTeam { 18 | /** 19 | * Id of the team 20 | */ 21 | 'id'?: string 22 | /** 23 | * Name of the team 24 | */ 25 | 'name'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'id', 34 | baseName: 'id', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'name', 39 | baseName: 'name', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return AuditTeam.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/boardExportJobId.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class BoardExportJobId { 14 | /** 15 | * Unique identifier of the board export job. 16 | */ 17 | 'jobId': string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'jobId', 26 | baseName: 'jobId', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return BoardExportJobId.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/boardExportResult.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {BoardExportTaskResult} from './boardExportTaskResult' 14 | 15 | export class BoardExportResult { 16 | /** 17 | * Unique identifier of the board export job. 18 | */ 19 | 'jobId'?: string 20 | /** 21 | * Board export task results. 22 | */ 23 | 'results'?: Array 24 | 25 | /** @ignore */ 26 | static discriminator: string | undefined = undefined 27 | 28 | /** @ignore */ 29 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 30 | { 31 | name: 'jobId', 32 | baseName: 'jobId', 33 | type: 'string', 34 | }, 35 | { 36 | name: 'results', 37 | baseName: 'results', 38 | type: 'Array', 39 | }, 40 | ] 41 | 42 | /** @ignore */ 43 | static getAttributeTypeMap() { 44 | return BoardExportResult.attributeTypeMap 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /packages/miro-api/model/boardLinks.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains applicable links for the board. 16 | */ 17 | export class BoardLinks { 18 | /** 19 | * Link to obtain information about the board members associated with the board. 20 | */ 21 | 'related'?: string 22 | /** 23 | * Link to obtain information about the current board. 24 | */ 25 | 'self'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'related', 34 | baseName: 'related', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'self', 39 | baseName: 'self', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return BoardLinks.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/boardProject.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the project with which the board is associated. 16 | */ 17 | export class BoardProject { 18 | /** 19 | * Unique identifier (ID) of the project. 20 | */ 21 | 'id'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'id', 30 | baseName: 'id', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return BoardProject.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/bulkOperationErrorContext.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {BulkSubOperationError} from './bulkSubOperationError' 14 | 15 | export class BulkOperationErrorContext { 16 | 'fields'?: Array 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'fields', 25 | baseName: 'fields', 26 | type: 'Array', 27 | }, 28 | ] 29 | 30 | /** @ignore */ 31 | static getAttributeTypeMap() { 32 | return BulkOperationErrorContext.attributeTypeMap 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /packages/miro-api/model/cardStyle.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of a card item, such as the card theme. 16 | */ 17 | export class CardStyle { 18 | /** 19 | * Hex value of the border color of the card. Default: `#2d9bf0`. 20 | */ 21 | 'cardTheme'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'cardTheme', 30 | baseName: 'cardTheme', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return CardStyle.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/cardStylePlatformbulkcreateoperation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of a card item, such as the card theme. 16 | */ 17 | export class CardStylePlatformbulkcreateoperation { 18 | /** 19 | * Hex value of the border color of the card. Default: `#2d9bf0`. 20 | */ 21 | 'cardTheme'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'cardTheme', 30 | baseName: 'cardTheme', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return CardStylePlatformbulkcreateoperation.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/caseRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class CaseRequest { 14 | /** 15 | * The name of the case 16 | */ 17 | 'name': string 18 | /** 19 | * The description of the case 20 | */ 21 | 'description'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'name', 30 | baseName: 'name', 31 | type: 'string', 32 | }, 33 | { 34 | name: 'description', 35 | baseName: 'description', 36 | type: 'string', 37 | }, 38 | ] 39 | 40 | /** @ignore */ 41 | static getAttributeTypeMap() { 42 | return CaseRequest.attributeTypeMap 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/miro-api/model/createProjectRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class CreateProjectRequest { 14 | /** 15 | * Project name. 16 | */ 17 | 'name': string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'name', 26 | baseName: 'name', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return CreateProjectRequest.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/createTeamRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class CreateTeamRequest { 14 | /** 15 | * Team name. 16 | */ 17 | 'name'?: string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'name', 26 | baseName: 'name', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return CreateTeamRequest.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/createdBy.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the user who created the item. 16 | */ 17 | export class CreatedBy { 18 | /** 19 | * Unique identifier (ID) of the user. 20 | */ 21 | 'id'?: string 22 | /** 23 | * Indicates the type of object returned. In this case, `type` returns `user`. 24 | */ 25 | 'type'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'id', 34 | baseName: 'id', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'type', 39 | baseName: 'type', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return CreatedBy.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/dataClassificationLabelId.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class DataClassificationLabelId { 14 | /** 15 | * Data classification label id 16 | */ 17 | 'labelId'?: string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'labelId', 26 | baseName: 'labelId', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return DataClassificationLabelId.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/documentUrlDataChanges.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the document URL. 16 | */ 17 | export class DocumentUrlDataChanges { 18 | /** 19 | * A short text header to identify the document. 20 | */ 21 | 'title'?: string 22 | /** 23 | * URL where the document is hosted. 24 | */ 25 | 'url'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'title', 34 | baseName: 'title', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'url', 39 | baseName: 'url', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return DocumentUrlDataChanges.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/frameStyle.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of a frame item, such as the fill color. 16 | */ 17 | export class FrameStyle { 18 | /** 19 | * Fill color for the frame. Hex values: `#f5f6f8` `#d5f692` `#d0e17a` `#93d275` `#67c6c0` `#23bfe7` `#a6ccf5` `#7b92ff` `#fff9b1` `#f5d128` `#ff9d48` `#f16c7f` `#ea94bb` `#ffcee0` `#b384bb` `#000000` Default: #ffffffff (transparent). 20 | */ 21 | 'fillColor'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'fillColor', 30 | baseName: 'fillColor', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return FrameStyle.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/genericItemUpdate.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {Parent} from './parent' 14 | import {PositionChange} from './positionChange' 15 | 16 | export class GenericItemUpdate { 17 | 'parent'?: Parent 18 | 'position'?: PositionChange 19 | 20 | /** @ignore */ 21 | static discriminator: string | undefined = undefined 22 | 23 | /** @ignore */ 24 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 25 | { 26 | name: 'parent', 27 | baseName: 'parent', 28 | type: 'Parent', 29 | }, 30 | { 31 | name: 'position', 32 | baseName: 'position', 33 | type: 'PositionChange', 34 | }, 35 | ] 36 | 37 | /** @ignore */ 38 | static getAttributeTypeMap() { 39 | return GenericItemUpdate.attributeTypeMap 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /packages/miro-api/model/geometryNoRotation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains geometrical information about the item, such as its width or height. 16 | */ 17 | export class GeometryNoRotation { 18 | /** 19 | * Height of the item, in pixels. 20 | */ 21 | 'height'?: number 22 | /** 23 | * Width of the item, in pixels. 24 | */ 25 | 'width'?: number 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'height', 34 | baseName: 'height', 35 | type: 'number', 36 | }, 37 | { 38 | name: 'width', 39 | baseName: 'width', 40 | type: 'number', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return GeometryNoRotation.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/getMetrics404Response.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * App not found response 16 | */ 17 | export class GetMetrics404Response { 18 | 'message'?: string 19 | 'status'?: number 20 | 21 | /** @ignore */ 22 | static discriminator: string | undefined = undefined 23 | 24 | /** @ignore */ 25 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 26 | { 27 | name: 'message', 28 | baseName: 'message', 29 | type: 'string', 30 | }, 31 | { 32 | name: 'status', 33 | baseName: 'status', 34 | type: 'number', 35 | }, 36 | ] 37 | 38 | /** @ignore */ 39 | static getAttributeTypeMap() { 40 | return GetMetrics404Response.attributeTypeMap 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /packages/miro-api/model/getMetricsTotal404Response.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * App not found response 16 | */ 17 | export class GetMetricsTotal404Response { 18 | /** 19 | * Description of the error. 20 | */ 21 | 'message'?: string 22 | /** 23 | * HTTP status code. 24 | */ 25 | 'status'?: number 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'message', 34 | baseName: 'message', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'status', 39 | baseName: 'status', 40 | type: 'number', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return GetMetricsTotal404Response.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/getTagsResponse.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {Tag} from './tag' 14 | 15 | export class GetTagsResponse { 16 | 'tags'?: Array 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'tags', 25 | baseName: 'tags', 26 | type: 'Array', 27 | }, 28 | ] 29 | 30 | /** @ignore */ 31 | static getAttributeTypeMap() { 32 | return GetTagsResponse.attributeTypeMap 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /packages/miro-api/model/group.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {GroupData} from './groupData' 14 | 15 | /** 16 | * @internal 17 | * Contains the result data. 18 | */ 19 | export class Group { 20 | 'data'?: GroupData 21 | 22 | /** @ignore */ 23 | static discriminator: string | undefined = undefined 24 | 25 | /** @ignore */ 26 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 27 | { 28 | name: 'data', 29 | baseName: 'data', 30 | type: 'GroupData', 31 | }, 32 | ] 33 | 34 | /** @ignore */ 35 | static getAttributeTypeMap() { 36 | return Group.attributeTypeMap 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /packages/miro-api/model/groupData.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class GroupData { 14 | /** 15 | * Unique identifier (ID) of the item. 16 | */ 17 | 'items'?: Array 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'items', 26 | baseName: 'items', 27 | type: 'Array', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return GroupData.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/imageUrlDataChanges.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the image URL. 16 | */ 17 | export class ImageUrlDataChanges { 18 | /** 19 | * A short text header to identify the image. 20 | */ 21 | 'title'?: string 22 | /** 23 | * URL of the image. 24 | */ 25 | 'url'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'title', 34 | baseName: 'title', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'url', 39 | baseName: 'url', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return ImageUrlDataChanges.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/invitationError.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the invites that failed. 16 | */ 17 | export class InvitationError { 18 | /** 19 | * Email ID for which the invitation failed. 20 | */ 21 | 'email'?: string 22 | /** 23 | * Reason why the invitation failed. 24 | */ 25 | 'reason'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'email', 34 | baseName: 'email', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'reason', 39 | baseName: 'reason', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return InvitationError.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/itemTypeChange.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Type of item that you want to create. 16 | */ 17 | export enum ItemTypeChange { 18 | AppCard = 'app_card', 19 | Text = 'text', 20 | Shape = 'shape', 21 | StickyNote = 'sticky_note', 22 | Image = 'image', 23 | Document = 'document', 24 | Card = 'card', 25 | Frame = 'frame', 26 | Embed = 'embed', 27 | } 28 | -------------------------------------------------------------------------------- /packages/miro-api/model/items.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {Item} from './item' 14 | 15 | /** 16 | * @internal 17 | * Contains items resulting from a bulk create or update operation. 18 | */ 19 | export class Items { 20 | /** 21 | * Contains the result data. 22 | */ 23 | 'data': Array 24 | /** 25 | * Type of the object. 26 | */ 27 | 'type': string 28 | 29 | /** @ignore */ 30 | static discriminator: string | undefined = undefined 31 | 32 | /** @ignore */ 33 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 34 | { 35 | name: 'data', 36 | baseName: 'data', 37 | type: 'Array', 38 | }, 39 | { 40 | name: 'type', 41 | baseName: 'type', 42 | type: 'string', 43 | }, 44 | ] 45 | 46 | /** @ignore */ 47 | static getAttributeTypeMap() { 48 | return Items.attributeTypeMap 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /packages/miro-api/model/legalHoldRequestScopeUsers.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {LegalHoldRequestScopeUsersUsersInner} from './legalHoldRequestScopeUsersUsersInner' 14 | 15 | export class LegalHoldRequestScopeUsers { 16 | 'users'?: Array 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'users', 25 | baseName: 'users', 26 | type: 'Array', 27 | }, 28 | ] 29 | 30 | /** @ignore */ 31 | static getAttributeTypeMap() { 32 | return LegalHoldRequestScopeUsers.attributeTypeMap 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /packages/miro-api/model/legalHoldRequestScopeUsersUsersInner.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class LegalHoldRequestScopeUsersUsersInner { 14 | /** 15 | * Email of the user 16 | */ 17 | 'email': string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'email', 26 | baseName: 'email', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return LegalHoldRequestScopeUsersUsersInner.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/legalHoldResponseScopeUsers.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {User} from './user' 14 | 15 | /** 16 | * @internal 17 | * List of users under legal hold. 18 | */ 19 | export class LegalHoldResponseScopeUsers { 20 | 'users'?: Array 21 | 22 | /** @ignore */ 23 | static discriminator: string | undefined = undefined 24 | 25 | /** @ignore */ 26 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 27 | { 28 | name: 'users', 29 | baseName: 'users', 30 | type: 'Array', 31 | }, 32 | ] 33 | 34 | /** @ignore */ 35 | static getAttributeTypeMap() { 36 | return LegalHoldResponseScopeUsers.attributeTypeMap 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /packages/miro-api/model/legalHoldState.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * The state of the legal hold. Legal holds could take up to 24 hours to be processed and the state could be one of the following: - `PROCESSING`: the legal hold is being created and content items are being processed. - `ACTIVE`: the legal hold has been created and all content items have been processed. - `DELETING`: the legal hold is being deleted and content items are being processed. 16 | */ 17 | export enum LegalHoldState { 18 | Processing = 'PROCESSING', 19 | Active = 'ACTIVE', 20 | Deleting = 'DELETING', 21 | } 22 | -------------------------------------------------------------------------------- /packages/miro-api/model/mindMapNodeGeometry.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains width of the item. 16 | */ 17 | export class MindMapNodeGeometry { 18 | /** 19 | * Width of the item, in pixels. 20 | */ 21 | 'width'?: number 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'width', 30 | baseName: 'width', 31 | type: 'number', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return MindMapNodeGeometry.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/mindmapDataForCreate.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {MindmapNode} from './mindmapNode' 14 | 15 | /** 16 | * @internal 17 | * Contains mind map node data, such as the title, content, or description. 18 | */ 19 | export class MindmapDataForCreate { 20 | 'nodeView': MindmapNode 21 | 22 | /** @ignore */ 23 | static discriminator: string | undefined = undefined 24 | 25 | /** @ignore */ 26 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 27 | { 28 | name: 'nodeView', 29 | baseName: 'nodeView', 30 | type: 'MindmapNode', 31 | }, 32 | ] 33 | 34 | /** @ignore */ 35 | static getAttributeTypeMap() { 36 | return MindmapDataForCreate.attributeTypeMap 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /packages/miro-api/model/mindmapNode.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {MindmapNodeTextData} from './mindmapNodeTextData' 14 | 15 | /** 16 | * @internal 17 | * Contains information like data about the mind map node. 18 | */ 19 | export class MindmapNode { 20 | 'data'?: MindmapNodeTextData 21 | 22 | /** @ignore */ 23 | static discriminator: string | undefined = undefined 24 | 25 | /** @ignore */ 26 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 27 | { 28 | name: 'data', 29 | baseName: 'data', 30 | type: 'MindmapNodeTextData', 31 | }, 32 | ] 33 | 34 | /** @ignore */ 35 | static getAttributeTypeMap() { 36 | return MindmapNode.attributeTypeMap 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /packages/miro-api/model/mindmapWidgetDataOutput.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {TextData} from './textData' 14 | 15 | /** 16 | * @internal 17 | * Contains the mind map node data, such as the item title, content, or description. 18 | */ 19 | export class MindmapWidgetDataOutput { 20 | /** 21 | * The actual text (content) that appears in the text item. 22 | */ 23 | 'content': string 24 | 25 | /** @ignore */ 26 | static discriminator: string | undefined = undefined 27 | 28 | /** @ignore */ 29 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 30 | { 31 | name: 'content', 32 | baseName: 'content', 33 | type: 'string', 34 | }, 35 | ] 36 | 37 | /** @ignore */ 38 | static getAttributeTypeMap() { 39 | return MindmapWidgetDataOutput.attributeTypeMap 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /packages/miro-api/model/modifiedBy.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the user who last modified the item. 16 | */ 17 | export class ModifiedBy { 18 | /** 19 | * Unique identifier (ID) of the user. 20 | */ 21 | 'id'?: string 22 | /** 23 | * Indicates the type of object returned. In this case, `type` returns `user`. 24 | */ 25 | 'type'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'id', 34 | baseName: 'id', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'type', 39 | baseName: 'type', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return ModifiedBy.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/model/organizationInformation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class OrganizationInformation { 14 | 'type': string 15 | 'name': string 16 | 'id': string 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'type', 25 | baseName: 'type', 26 | type: 'string', 27 | }, 28 | { 29 | name: 'name', 30 | baseName: 'name', 31 | type: 'string', 32 | }, 33 | { 34 | name: 'id', 35 | baseName: 'id', 36 | type: 'string', 37 | }, 38 | ] 39 | 40 | /** @ignore */ 41 | static getAttributeTypeMap() { 42 | return OrganizationInformation.attributeTypeMap 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/miro-api/model/parent.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the parent frame for the item. 16 | */ 17 | export class Parent { 18 | /** 19 | * Unique identifier (ID) of the parent frame for the item. 20 | */ 21 | 'id'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'id', 30 | baseName: 'id', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return Parent.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/parentLinksEnvelope.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {SelfLink} from './selfLink' 14 | 15 | /** 16 | * @internal 17 | * Contains information about the parent frame for the item. 18 | */ 19 | export class ParentLinksEnvelope { 20 | /** 21 | * Unique identifier (ID) of the parent frame for the item. 22 | */ 23 | 'id'?: string 24 | 'links'?: SelfLink 25 | 26 | /** @ignore */ 27 | static discriminator: string | undefined = undefined 28 | 29 | /** @ignore */ 30 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 31 | { 32 | name: 'id', 33 | baseName: 'id', 34 | type: 'string', 35 | }, 36 | { 37 | name: 'links', 38 | baseName: 'links', 39 | type: 'SelfLink', 40 | }, 41 | ] 42 | 43 | /** @ignore */ 44 | static getAttributeTypeMap() { 45 | return ParentLinksEnvelope.attributeTypeMap 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /packages/miro-api/model/parentWithLinks.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {SelfLink} from './selfLink' 14 | 15 | /** 16 | * @internal 17 | * Contains information about the parent this item attached to. 18 | */ 19 | export class ParentWithLinks { 20 | /** 21 | * Unique identifier (ID) of a container item. 22 | */ 23 | 'id'?: string 24 | 'links'?: SelfLink 25 | 26 | /** @ignore */ 27 | static discriminator: string | undefined = undefined 28 | 29 | /** @ignore */ 30 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 31 | { 32 | name: 'id', 33 | baseName: 'id', 34 | type: 'string', 35 | }, 36 | { 37 | name: 'links', 38 | baseName: 'links', 39 | type: 'SelfLink', 40 | }, 41 | ] 42 | 43 | /** @ignore */ 44 | static getAttributeTypeMap() { 45 | return ParentWithLinks.attributeTypeMap 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /packages/miro-api/model/project.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class Project { 14 | /** 15 | * Project ID. 16 | */ 17 | 'id': string 18 | /** 19 | * Name of the project. 20 | */ 21 | 'name': string 22 | /** 23 | * Type of the object returned. 24 | */ 25 | 'type': string = 'project' 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'id', 34 | baseName: 'id', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'name', 39 | baseName: 'name', 40 | type: 'string', 41 | }, 42 | { 43 | name: 'type', 44 | baseName: 'type', 45 | type: 'string', 46 | }, 47 | ] 48 | 49 | /** @ignore */ 50 | static getAttributeTypeMap() { 51 | return Project.attributeTypeMap 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /packages/miro-api/model/projectRole.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Role of the project member. 16 | */ 17 | export enum ProjectRole { 18 | Owner = 'owner', 19 | Editor = 'editor', 20 | Viewer = 'viewer', 21 | Commentator = 'commentator', 22 | Coowner = 'coowner', 23 | } 24 | -------------------------------------------------------------------------------- /packages/miro-api/model/projectRoleToAdd.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Role of the project member. 16 | */ 17 | export enum ProjectRoleToAdd { 18 | Editor = 'editor', 19 | Viewer = 'viewer', 20 | Commentator = 'commentator', 21 | Coowner = 'coowner', 22 | } 23 | -------------------------------------------------------------------------------- /packages/miro-api/model/projectSettings.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {SharingPolicySettings} from './sharingPolicySettings' 14 | 15 | export class ProjectSettings { 16 | 'sharingPolicySettings': SharingPolicySettings 17 | /** 18 | * Type of the object 19 | */ 20 | 'type': string = 'project_settings' 21 | 22 | /** @ignore */ 23 | static discriminator: string | undefined = undefined 24 | 25 | /** @ignore */ 26 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 27 | { 28 | name: 'sharingPolicySettings', 29 | baseName: 'sharingPolicySettings', 30 | type: 'SharingPolicySettings', 31 | }, 32 | { 33 | name: 'type', 34 | baseName: 'type', 35 | type: 'string', 36 | }, 37 | ] 38 | 39 | /** @ignore */ 40 | static getAttributeTypeMap() { 41 | return ProjectSettings.attributeTypeMap 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /packages/miro-api/model/selfLink.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains applicable links for the current object. 16 | */ 17 | export class SelfLink { 18 | /** 19 | * Link to obtain more information about the current object. 20 | */ 21 | 'self'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'self', 30 | baseName: 'self', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return SelfLink.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/selfLinkPlatformFileUpload.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains applicable links for the current object. 16 | */ 17 | export class SelfLinkPlatformFileUpload { 18 | /** 19 | * Link to obtain more information about the current object. 20 | */ 21 | 'self'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'self', 30 | baseName: 'self', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return SelfLinkPlatformFileUpload.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/selfLinkPlatformTags.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains applicable links for the current object. 16 | */ 17 | export class SelfLinkPlatformTags { 18 | /** 19 | * Link to obtain more information about the current object. 20 | */ 21 | 'self'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'self', 30 | baseName: 'self', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return SelfLinkPlatformTags.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/sharingPolicySettings.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {TeamAccess} from './teamAccess' 14 | 15 | export class SharingPolicySettings { 16 | 'teamAccess'?: TeamAccess 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'teamAccess', 25 | baseName: 'teamAccess', 26 | type: 'TeamAccess', 27 | }, 28 | ] 29 | 30 | /** @ignore */ 31 | static getAttributeTypeMap() { 32 | return SharingPolicySettings.attributeTypeMap 33 | } 34 | } 35 | 36 | export namespace SharingPolicySettings {} 37 | -------------------------------------------------------------------------------- /packages/miro-api/model/teamAccess.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Team access * \"private\": Only the members of the project can access the information within the project. * \"view\": Anyone in the team can view the information in within the project. 16 | */ 17 | export enum TeamAccess { 18 | Private = 'private', 19 | View = 'view', 20 | } 21 | -------------------------------------------------------------------------------- /packages/miro-api/model/teamChanges.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class TeamChanges { 14 | /** 15 | * New name for the team. 16 | */ 17 | 'name'?: string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'name', 26 | baseName: 'name', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return TeamChanges.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/teamInformation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class TeamInformation { 14 | 'type': string 15 | 'name': string 16 | 'id': string 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'type', 25 | baseName: 'type', 26 | type: 'string', 27 | }, 28 | { 29 | name: 'name', 30 | baseName: 'name', 31 | type: 'string', 32 | }, 33 | { 34 | name: 'id', 35 | baseName: 'id', 36 | type: 'string', 37 | }, 38 | ] 39 | 40 | /** @ignore */ 41 | static getAttributeTypeMap() { 42 | return TeamInformation.attributeTypeMap 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/miro-api/model/textData.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains text item data, such as the title, content, or description. For more information on the JSON properties, see [Data](https://developers.miro.com/reference/data). 16 | */ 17 | export class TextData { 18 | /** 19 | * The actual text (content) that appears in the text item. 20 | */ 21 | 'content': string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'content', 30 | baseName: 'content', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return TextData.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/textDataPlatformTags.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains text item data, such as the title, content, or description. For more information on the JSON properties, see [Data](https://developers.miro.com/reference/data). 16 | */ 17 | export class TextDataPlatformTags { 18 | /** 19 | * The actual text (content) that appears in the text item. 20 | */ 21 | 'content': string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'content', 30 | baseName: 'content', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return TextDataPlatformTags.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/textDataPlatformbulkcreateoperation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains text item data, such as the title, content, or description. For more information on the JSON properties, see [Data](https://developers.miro.com/reference/data). 16 | */ 17 | export class TextDataPlatformbulkcreateoperation { 18 | /** 19 | * The actual text (content) that appears in the text item. 20 | */ 21 | 'content': string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'content', 30 | baseName: 'content', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return TextDataPlatformbulkcreateoperation.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateAppCardStyle.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of an app card item, such as the fill color. 16 | */ 17 | export class UpdateAppCardStyle { 18 | /** 19 | * Hex value of the border color of the app card. 20 | */ 21 | 'fillColor'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'fillColor', 30 | baseName: 'fillColor', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return UpdateAppCardStyle.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateCardStyle.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of a card item, such as the card theme. 16 | */ 17 | export class UpdateCardStyle { 18 | /** 19 | * Hex value of the border color of the card. 20 | */ 21 | 'cardTheme'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'cardTheme', 30 | baseName: 'cardTheme', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return UpdateCardStyle.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateFrameStyle.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains information about the style of a frame item, such as the fill color. 16 | */ 17 | export class UpdateFrameStyle { 18 | /** 19 | * Fill color for the frame. Hex values: `#f5f6f8` `#d5f692` `#d0e17a` `#93d275` `#67c6c0` `#23bfe7` `#a6ccf5` `#7b92ff` `#fff9b1` `#f5d128` `#ff9d48` `#f16c7f` `#ea94bb` `#ffcee0` `#b384bb` `#000000` 20 | */ 21 | 'fillColor'?: string 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'fillColor', 30 | baseName: 'fillColor', 31 | type: 'string', 32 | }, 33 | ] 34 | 35 | /** @ignore */ 36 | static getAttributeTypeMap() { 37 | return UpdateFrameStyle.attributeTypeMap 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateProjectMemberRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {ProjectRole} from './projectRole' 14 | 15 | export class UpdateProjectMemberRequest { 16 | 'role'?: ProjectRole 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'role', 25 | baseName: 'role', 26 | type: 'ProjectRole', 27 | }, 28 | ] 29 | 30 | /** @ignore */ 31 | static getAttributeTypeMap() { 32 | return UpdateProjectMemberRequest.attributeTypeMap 33 | } 34 | } 35 | 36 | export namespace UpdateProjectMemberRequest {} 37 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateProjectRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class UpdateProjectRequest { 14 | /** 15 | * New name of the project. 16 | */ 17 | 'name': string 18 | 19 | /** @ignore */ 20 | static discriminator: string | undefined = undefined 21 | 22 | /** @ignore */ 23 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 24 | { 25 | name: 'name', 26 | baseName: 'name', 27 | type: 'string', 28 | }, 29 | ] 30 | 31 | /** @ignore */ 32 | static getAttributeTypeMap() { 33 | return UpdateProjectRequest.attributeTypeMap 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateProjectSettingsRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | import {SharingPolicySettings} from './sharingPolicySettings' 14 | 15 | export class UpdateProjectSettingsRequest { 16 | 'sharingPolicySettings'?: SharingPolicySettings 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'sharingPolicySettings', 25 | baseName: 'sharingPolicySettings', 26 | type: 'SharingPolicySettings', 27 | }, 28 | ] 29 | 30 | /** @ignore */ 31 | static getAttributeTypeMap() { 32 | return UpdateProjectSettingsRequest.attributeTypeMap 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /packages/miro-api/model/updateTeamSettingsRequest.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class UpdateTeamSettingsRequest { 14 | /** 15 | * Data classification default label id 16 | */ 17 | 'defaultLabelId'?: number 18 | /** 19 | * Data classification enabled for team 20 | */ 21 | 'enabled'?: boolean 22 | 23 | /** @ignore */ 24 | static discriminator: string | undefined = undefined 25 | 26 | /** @ignore */ 27 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 28 | { 29 | name: 'defaultLabelId', 30 | baseName: 'defaultLabelId', 31 | type: 'number', 32 | }, 33 | { 34 | name: 'enabled', 35 | baseName: 'enabled', 36 | type: 'boolean', 37 | }, 38 | ] 39 | 40 | /** @ignore */ 41 | static getAttributeTypeMap() { 42 | return UpdateTeamSettingsRequest.attributeTypeMap 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/miro-api/model/userInformation.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | export class UserInformation { 14 | 'type': string 15 | 'name': string 16 | 'id': string 17 | 18 | /** @ignore */ 19 | static discriminator: string | undefined = undefined 20 | 21 | /** @ignore */ 22 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 23 | { 24 | name: 'type', 25 | baseName: 'type', 26 | type: 'string', 27 | }, 28 | { 29 | name: 'name', 30 | baseName: 'name', 31 | type: 'string', 32 | }, 33 | { 34 | name: 'id', 35 | baseName: 'id', 36 | type: 'string', 37 | }, 38 | ] 39 | 40 | /** @ignore */ 41 | static getAttributeTypeMap() { 42 | return UserInformation.attributeTypeMap 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/miro-api/model/widgetLinks.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Miro Developer Platform 3 | * ### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? [Read our introduction page](https://beta.developers.miro.com/docs/introduction) and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - [Quickstart (video):](https://beta.developers.miro.com/docs/try-out-the-rest-api-in-less-than-3-minutes) try the REST API in less than 3 minutes. - [Quickstart (article):](https://beta.developers.miro.com/docs/build-your-first-hello-world-app-1) get started and try the REST API in less than 3 minutes. ### Miro REST API tutorials Check out our how-to articles with step-by-step instructions and code examples so you can: - [Get started with OAuth 2.0 and Miro](https://beta.developers.miro.com/docs/getting-started-with-oauth) ### Miro App Examples Clone our [Miro App Examples repository](https://github.com/miroapp/app-examples) to get inspiration, customize, and explore apps built on top of Miro\'s Developer Platform 2.0. 4 | * 5 | * The version of the OpenAPI document: v2.0 6 | * 7 | * 8 | * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). 9 | * https://openapi-generator.tech 10 | * Do not edit the class manually. 11 | */ 12 | 13 | /** 14 | * @internal 15 | * Contains applicable links for the item. 16 | */ 17 | export class WidgetLinks { 18 | /** 19 | * Link to obtain information about the child items related to the frame. 20 | */ 21 | 'related'?: string 22 | /** 23 | * Link to obtain information about the current item. 24 | */ 25 | 'self'?: string 26 | 27 | /** @ignore */ 28 | static discriminator: string | undefined = undefined 29 | 30 | /** @ignore */ 31 | static attributeTypeMap: Array<{name: string; baseName: string; type: string}> = [ 32 | { 33 | name: 'related', 34 | baseName: 'related', 35 | type: 'string', 36 | }, 37 | { 38 | name: 'self', 39 | baseName: 'self', 40 | type: 'string', 41 | }, 42 | ] 43 | 44 | /** @ignore */ 45 | static getAttributeTypeMap() { 46 | return WidgetLinks.attributeTypeMap 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /packages/miro-api/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@mirohq/miro-api", 3 | "version": "2.2.4", 4 | "description": "Node.js client for the Miro REST API", 5 | "repository": { 6 | "type": "git", 7 | "url": "https://github.com/miroapp/api-clients.git" 8 | }, 9 | "publishConfig": { 10 | "access": "public" 11 | }, 12 | "main": "dist/index.js", 13 | "types": "dist/index.d.ts", 14 | "scripts": { 15 | "clean": "rm -Rf node_modules/ *.js", 16 | "build": "tsc", 17 | "prebuild:docs": "tsc --jsx react docs-theme/index.tsx --jsxFactory JSX.createElement --jsxFragmentFactory JSX.Fragment --target es2016 --module commonjs --esModuleInterop", 18 | "build:docs": "typedoc", 19 | "test": "jest", 20 | "coverage": "jest --coverage --coverageDirectory coverage --coverageReporters clover" 21 | }, 22 | "author": "Miro", 23 | "license": "MIT", 24 | "dependencies": { 25 | "form-data": "^4.0.0", 26 | "node-fetch": "^2.7.0" 27 | }, 28 | "devDependencies": { 29 | "@types/jest": "^29.5.12", 30 | "@types/node": "^12", 31 | "@types/node-fetch": "^2.6.4", 32 | "jest": "^29.7.0", 33 | "typedoc": "^0.23.25", 34 | "typedoc-plugin-missing-exports": "^1.0.0", 35 | "typescript": "^4.0" 36 | }, 37 | "jest": { 38 | "extensionsToTreatAsEsm": [ 39 | ".ts" 40 | ], 41 | "transform": { 42 | "^.+\\.tsx?$": [ 43 | "esbuild-jest", 44 | { 45 | "format": "cjs" 46 | } 47 | ] 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /packages/miro-api/storage.ts: -------------------------------------------------------------------------------- 1 | import {ExternalUserId} from './index' 2 | 3 | export type Awaitable = Promise | T 4 | 5 | export interface State { 6 | userId: string 7 | accessToken: string 8 | refreshToken?: string 9 | tokenExpiresAt?: string 10 | } 11 | 12 | export interface Storage { 13 | get(userId: ExternalUserId): Promise 14 | set(userId: ExternalUserId, state: State | undefined): Awaitable 15 | } 16 | 17 | export class InMemoryStorage implements Storage { 18 | storage: Record 19 | 20 | constructor() { 21 | this.storage = {} 22 | } 23 | 24 | async get(userId: ExternalUserId) { 25 | return this.storage[userId] 26 | } 27 | 28 | async set(userId: ExternalUserId, state: State | undefined) { 29 | this.storage[userId] = state 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /packages/miro-api/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "commonjs", 4 | "target": "es2021", 5 | "strict": true, 6 | "moduleResolution": "node", 7 | "declaration": true, 8 | "lib": ["es2021", "dom"], 9 | "outDir": "dist", 10 | "typeRoots": ["node_modules/@types"], 11 | "resolveJsonModule": true 12 | }, 13 | "files": ["index.ts", "api.ts"], 14 | "exclude": ["dist", "api", "model", "__tests__", ".turbo", ".openapi-generator", "node_modules"] 15 | } 16 | -------------------------------------------------------------------------------- /packages/miro-api/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://typedoc.org/schema.json", 3 | "entryPoints": ["index.ts", "api/apis.ts"], 4 | "gitRevision": "main", 5 | "markedOptions": { 6 | "baseUrl": "https://miroapp.github.io/api-clients/node/" 7 | }, 8 | "exclude": ["__tests__", "test", ".turbo", "../../node_modules/"], 9 | "excludeExternals": true, 10 | "includes": "docs/includes", 11 | "out": "docs-out", 12 | "externalPattern": ["../../node_modules/**/*", "node_modules/**/*"], 13 | "plugin": ["typedoc-plugin-missing-exports", "./docs-theme/index.js"], 14 | "theme": "miro", 15 | "externalSymbolLinkMappings": { 16 | "global": { 17 | "AsyncGenerator": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator" 18 | }, 19 | "typescript": { 20 | "AsyncGenerator": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator" 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /prettier.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('@mirohq/prettier-config'), 3 | useTabs: false, 4 | } 5 | -------------------------------------------------------------------------------- /scripts/upload-docs-to-readme.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import fetch from 'node-fetch' 4 | import fs from 'fs/promises' 5 | 6 | const key = process.env.README_API_KEY 7 | if (!key) throw new Error('Missing environment variable: README_API_KEY') 8 | 9 | // Readme version of the site to publish to 10 | const readmeVersion = 'v2.0' 11 | 12 | // ID of the Miro REST API Clients category for the guides 13 | const categoryId = '6628045c567473003e032e82' 14 | 15 | const titlePattern = /^# (.*)/ 16 | 17 | async function updateDoc(slug, defaultTitle, category, file) { 18 | const fileContents = await fs.readFile(file, 'utf-8') 19 | 20 | const title = fileContents.match(titlePattern)?.[1] || defaultTitle 21 | const body = fileContents.replace(titlePattern, '').trim() 22 | 23 | const requestBody = { title, category, body } 24 | 25 | const res = await fetch(`https://dash.readme.com/api/v1/docs/${slug}`, { 26 | method: 'PUT', 27 | headers: { 28 | 'x-readme-version': readmeVersion, 29 | 'Content-Type': 'application/json', 30 | 'Authorization': `Basic ${Buffer.from(key, 'utf-8').toString('base64')}` 31 | }, 32 | body: JSON.stringify(requestBody) 33 | }) 34 | if (res.status >= 400) { 35 | throw new Error(await res.text()) 36 | } 37 | 38 | console.log('Uploaded', (await res.json())) 39 | } 40 | 41 | await updateDoc( 42 | 'miro-nodejs-readme', 43 | 'Miro Node.js client Readme', 44 | categoryId, 45 | './packages/miro-api/README.md' 46 | ) 47 | 48 | await updateDoc( 49 | 'miro-nodejs-quickstart', 50 | 'Miro Node.js client quickstart for task automation', 51 | categoryId, 52 | 'packages/miro-api/docs/quickstart.md' 53 | ) 54 | 55 | await updateDoc( 56 | 'miro-nodejs-quickstart-with-oauth-and-express', 57 | 'Miro Node.js client quickstart with OAuth and Express', 58 | categoryId, 59 | 'packages/miro-api/docs/quickstart-auth.md' 60 | ) 61 | 62 | await updateDoc( 63 | 'miro-nodejs-implement-storage-for-data-persistence', 64 | 'Implement data storage', 65 | categoryId, 66 | 'packages/miro-api/docs/implement-storage.md' 67 | ) 68 | 69 | await updateDoc( 70 | 'miro-python-client', 71 | 'Miro Python client', 72 | categoryId, 73 | './packages/miro-api-python/README.md' 74 | ) 75 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "module": "esnext", 4 | "target": "es2021", 5 | "strict": true, 6 | "moduleResolution": "node", 7 | "declaration": true, 8 | "lib": ["es2021", "dom"], 9 | "typeRoots": ["node_modules/@types"], 10 | "esModuleInterop": true, 11 | "resolveJsonModule": true 12 | }, 13 | "exclude": ["dist", "api", "model", "__tests__", ".turbo", ".openapi-generator", "node_modules"] 14 | } 15 | --------------------------------------------------------------------------------