├── .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 |
11 | <% locals.boardItems.forEach(item => { %>
12 | - ID: <%= item.id %> (<%=item.type%>)
13 | <% }) %>
14 |
15 |
16 |
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 |
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 |
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 |
--------------------------------------------------------------------------------