miro_api.api
Miro Developer Platform
### Miro Developer Platform concepts - New to the Miro Developer Platform? Interested in learning more about platform concepts?? Read our introduction page and familiarize yourself with the Miro Developer Platform capabilities in a few minutes. ### Getting started with the Miro REST API - Quickstart (video): try the REST API in less than 3 minutes. - Quickstart (article): 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 ### Miro App Examples Clone our Miro App Examples repository to get inspiration, customize, and explore apps built on top of Miro's Developer Platform 2.0.
The version of the OpenAPI document: v2.0 Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
1""" 2Miro Developer Platform 3 4<img src=\"https://content.pstmn.io/47449ea6-0ef7-4af2-bac1-e58a70e61c58/aW1hZ2UucG5n\" width=\"1685\" height=\"593\"> ### 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. 5 6The version of the OpenAPI document: v2.0 7Generated by OpenAPI Generator (https://openapi-generator.tech) 8 9Do not edit the class manually. 10""" # noqa: E501 11 12import warnings 13from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt 14from typing import Any, Dict, List, Optional, Tuple, Union 15from typing_extensions import Annotated 16 17 18from datetime import date 19from pydantic import Field, StrictStr, field_validator 20from typing import Optional 21from miro_api.models.get_metrics200_response_inner import GetMetrics200ResponseInner 22from miro_api.models.get_metrics_total200_response import GetMetricsTotal200Response 23 24from pydantic import Field, StrictInt, StrictStr, field_validator 25from miro_api.models.audit_page import AuditPage 26 27from datetime import datetime 28from typing import List, Optional 29from miro_api.models.get_board_item_content_logs_response import GetBoardItemContentLogsResponse 30 31from pydantic import Field, StrictStr 32from miro_api.models.board_export_job_id import BoardExportJobId 33from miro_api.models.board_export_job_status import BoardExportJobStatus 34from miro_api.models.board_export_result import BoardExportResult 35from miro_api.models.create_board_export_request import CreateBoardExportRequest 36 37from miro_api.models.board_data_classification_label import BoardDataClassificationLabel 38from miro_api.models.data_classification_label_id import DataClassificationLabelId 39 40from miro_api.models.data_classification_organization_settings import DataClassificationOrganizationSettings 41 42from miro_api.models.data_classification_team_settings import DataClassificationTeamSettings 43from miro_api.models.update_boards_data_classification_label import UpdateBoardsDataClassificationLabel 44from miro_api.models.update_boards_data_classification_label_request import UpdateBoardsDataClassificationLabelRequest 45from miro_api.models.update_team_settings_request import UpdateTeamSettingsRequest 46 47from pydantic import Field, StrictBytes, StrictStr 48from typing import List, Union 49from miro_api.models.item_create import ItemCreate 50from miro_api.models.items import Items 51 52from miro_api.models.generic_item import GenericItem 53from miro_api.models.generic_item_cursor_paged import GenericItemCursorPaged 54from miro_api.models.shape_create_request import ShapeCreateRequest 55from miro_api.models.shape_item import ShapeItem 56from miro_api.models.shape_update_request import ShapeUpdateRequest 57 58from miro_api.models.case_response import CaseResponse 59from miro_api.models.legal_hold_response import LegalHoldResponse 60from miro_api.models.paginated_case_response import PaginatedCaseResponse 61from miro_api.models.paginated_legal_hold_content_items_response import PaginatedLegalHoldContentItemsResponse 62from miro_api.models.paginated_legal_hold_response import PaginatedLegalHoldResponse 63 64from miro_api.models.mindmap_create_request import MindmapCreateRequest 65from miro_api.models.mindmap_cursor_paged import MindmapCursorPaged 66from miro_api.models.mindmap_item import MindmapItem 67 68from miro_api.models.revoke_token_request import RevokeTokenRequest 69 70from pydantic import Field, StrictBool, StrictStr, field_validator 71from miro_api.models.enterprise_get_organization_members200_response import EnterpriseGetOrganizationMembers200Response 72from miro_api.models.organization_member import OrganizationMember 73 74from miro_api.models.organization import Organization 75 76from miro_api.models.add_project_member_request import AddProjectMemberRequest 77from miro_api.models.project_member import ProjectMember 78from miro_api.models.project_member_page import ProjectMemberPage 79from miro_api.models.update_project_member_request import UpdateProjectMemberRequest 80 81from miro_api.models.project_settings import ProjectSettings 82from miro_api.models.update_project_settings_request import UpdateProjectSettingsRequest 83 84from miro_api.models.create_project_request import CreateProjectRequest 85from miro_api.models.project import Project 86from miro_api.models.project_page import ProjectPage 87from miro_api.models.update_project_request import UpdateProjectRequest 88 89 90from miro_api.models.team_member import TeamMember 91from miro_api.models.team_member_changes import TeamMemberChanges 92from miro_api.models.team_member_invite import TeamMemberInvite 93from miro_api.models.team_members_page import TeamMembersPage 94 95from miro_api.models.team_settings import TeamSettings 96from miro_api.models.team_settings_changes import TeamSettingsChanges 97 98from miro_api.models.create_team_request import CreateTeamRequest 99from miro_api.models.team import Team 100from miro_api.models.team_changes import TeamChanges 101from miro_api.models.teams_page import TeamsPage 102 103from miro_api.models.board_subscription import BoardSubscription 104from miro_api.models.create_board_subscription_request import CreateBoardSubscriptionRequest 105from miro_api.models.generic_subscription import GenericSubscription 106from miro_api.models.generic_subscriptions_cursor_paged import GenericSubscriptionsCursorPaged 107from miro_api.models.update_board_subscription_request import UpdateBoardSubscriptionRequest 108 109from miro_api.models.app_card_create_request import AppCardCreateRequest 110from miro_api.models.app_card_item import AppCardItem 111from miro_api.models.app_card_update_request import AppCardUpdateRequest 112 113from miro_api.models.board_member_changes import BoardMemberChanges 114from miro_api.models.board_member_with_links import BoardMemberWithLinks 115from miro_api.models.board_members_invite import BoardMembersInvite 116from miro_api.models.board_members_paged_response import BoardMembersPagedResponse 117from miro_api.models.invitation_result import InvitationResult 118 119from miro_api.models.board_changes import BoardChanges 120from miro_api.models.board_with_links import BoardWithLinks 121from miro_api.models.board_with_links_and_last_opened import BoardWithLinksAndLastOpened 122from miro_api.models.board_with_links_and_without_project import BoardWithLinksAndWithoutProject 123from miro_api.models.boards_paged_response import BoardsPagedResponse 124from miro_api.models.copy_board_changes import CopyBoardChanges 125 126from miro_api.models.card_create_request import CardCreateRequest 127from miro_api.models.card_item import CardItem 128from miro_api.models.card_update_request import CardUpdateRequest 129 130from miro_api.models.connector_changes_data import ConnectorChangesData 131from miro_api.models.connector_creation_data import ConnectorCreationData 132from miro_api.models.connector_with_links import ConnectorWithLinks 133from miro_api.models.connectors_cursor_paged import ConnectorsCursorPaged 134 135from typing import Optional, Union 136from miro_api.models.create_document_item_using_file_from_device_request_data import ( 137 CreateDocumentItemUsingFileFromDeviceRequestData, 138) 139from miro_api.models.document_create_request import DocumentCreateRequest 140from miro_api.models.document_item import DocumentItem 141from miro_api.models.document_update_request import DocumentUpdateRequest 142from miro_api.models.upload_file_from_device_data import UploadFileFromDeviceData 143 144from miro_api.models.embed_create_request import EmbedCreateRequest 145from miro_api.models.embed_item import EmbedItem 146from miro_api.models.embed_update_request import EmbedUpdateRequest 147 148from miro_api.models.frame_create_request import FrameCreateRequest 149from miro_api.models.frame_item import FrameItem 150from miro_api.models.frame_update_request import FrameUpdateRequest 151 152from pydantic import Field, StrictBool, StrictStr 153from miro_api.models.get_all_groups200_response import GetAllGroups200Response 154from miro_api.models.get_items_by_group_id200_response import GetItemsByGroupId200Response 155from miro_api.models.group import Group 156from miro_api.models.group_response_short import GroupResponseShort 157 158from miro_api.models.image_create_request import ImageCreateRequest 159from miro_api.models.image_item import ImageItem 160from miro_api.models.image_update_request import ImageUpdateRequest 161 162from miro_api.models.generic_item_update import GenericItemUpdate 163 164 165from miro_api.models.sticky_note_create_request import StickyNoteCreateRequest 166from miro_api.models.sticky_note_item import StickyNoteItem 167from miro_api.models.sticky_note_update_request import StickyNoteUpdateRequest 168 169from miro_api.models.get_tags_response import GetTagsResponse 170from miro_api.models.item_paged_response import ItemPagedResponse 171from miro_api.models.tag_create_request import TagCreateRequest 172from miro_api.models.tag_update_request import TagUpdateRequest 173from miro_api.models.tag_with_links import TagWithLinks 174from miro_api.models.tags_paged_response import TagsPagedResponse 175 176from miro_api.models.text_create_request import TextCreateRequest 177from miro_api.models.text_item import TextItem 178from miro_api.models.text_update_request import TextUpdateRequest 179 180from miro_api.models.token_information import TokenInformation 181 182 183from miro_api.api_client import ApiClient, RequestSerialized 184from miro_api.api_response import ApiResponse 185from miro_api.rest import RESTResponseType 186 187 188class MiroApiEndpoints: 189 """NOTE: This class is auto generated by OpenAPI Generator 190 Ref: https://openapi-generator.tech 191 192 Do not edit the class manually. 193 """ 194 195 def __init__(self, api_client=None) -> None: 196 if api_client is None: 197 api_client = ApiClient.get_default() 198 self.api_client = api_client 199 200 @validate_call 201 def get_metrics( 202 self, 203 app_id: Annotated[StrictStr, Field(description="ID of the app to get metrics for.")], 204 start_date: Annotated[ 205 date, Field(description="Start date of the period in UTC format. For example, 2024-12-31.") 206 ], 207 end_date: Annotated[date, Field(description="End date of the period in UTC format. For example, 2024-12-31.")], 208 period: Annotated[Optional[StrictStr], Field(description="Group data by this time period.")] = None, 209 _request_timeout: Union[ 210 None, 211 Annotated[StrictFloat, Field(gt=0)], 212 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 213 ] = None, 214 _request_auth: Optional[Dict[StrictStr, Any]] = None, 215 _content_type: Optional[StrictStr] = None, 216 _headers: Optional[Dict[StrictStr, Any]] = None, 217 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 218 ) -> List[GetMetrics200ResponseInner]: 219 """Get app metrics 220 221 Returns a list of usage metrics for a specific app for a given time range, grouped by requested time period. This endpoint requires an app management API token. It can be generated in the <a href=\"https://developers.miro.com/?features=appMetricsToken#your-apps\">Your Apps</a> section of Developer Hub.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a><br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 222 223 :param app_id: ID of the app to get metrics for. (required) 224 :type app_id: str 225 :param start_date: Start date of the period in UTC format. For example, 2024-12-31. (required) 226 :type start_date: date 227 :param end_date: End date of the period in UTC format. For example, 2024-12-31. (required) 228 :type end_date: date 229 :param period: Group data by this time period. 230 :type period: str 231 :param _request_timeout: timeout setting for this request. If one 232 number provided, it will be total request 233 timeout. It can also be a pair (tuple) of 234 (connection, read) timeouts. 235 :type _request_timeout: int, tuple(int, int), optional 236 :param _request_auth: set to override the auth_settings for an a single 237 request; this effectively ignores the 238 authentication in the spec for a single request. 239 :type _request_auth: dict, optional 240 :param _content_type: force content-type for the request. 241 :type _content_type: str, Optional 242 :param _headers: set to override the headers for a single 243 request; this effectively ignores the headers 244 in the spec for a single request. 245 :type _headers: dict, optional 246 :param _host_index: set to override the host_index for a single 247 request; this effectively ignores the host_index 248 in the spec for a single request. 249 :type _host_index: int, optional 250 :return: Returns the result object. 251 """ # noqa: E501 252 253 _param = self._get_metrics_serialize( 254 app_id=app_id, 255 start_date=start_date, 256 end_date=end_date, 257 period=period, 258 _request_auth=_request_auth, 259 _content_type=_content_type, 260 _headers=_headers, 261 _host_index=_host_index, 262 ) 263 264 _response_types_map: Dict[str, Optional[str]] = { 265 "200": "List[GetMetrics200ResponseInner]", 266 "404": "GetMetrics404Response", 267 } 268 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 269 response_data.read() 270 return self.api_client.response_deserialize( 271 response_data=response_data, 272 response_types_map=_response_types_map, 273 ).data 274 275 def _get_metrics_serialize( 276 self, 277 app_id, 278 start_date, 279 end_date, 280 period, 281 _request_auth, 282 _content_type, 283 _headers, 284 _host_index, 285 ) -> RequestSerialized: 286 287 _host = None 288 289 _collection_formats: Dict[str, str] = {} 290 291 _path_params: Dict[str, str] = {} 292 _query_params: List[Tuple[str, str]] = [] 293 _header_params: Dict[str, Optional[str]] = _headers or {} 294 _form_params: List[Tuple[str, str]] = [] 295 _files: Dict[str, str] = {} 296 _body_params: Optional[bytes] = None 297 298 # process the path parameters 299 if app_id is not None: 300 _path_params["app_id"] = app_id 301 # process the query parameters 302 if start_date is not None: 303 if isinstance(start_date, date): 304 _query_params.append(("startDate", start_date.strftime(self.api_client.configuration.date_format))) 305 else: 306 _query_params.append(("startDate", start_date)) 307 308 if end_date is not None: 309 if isinstance(end_date, date): 310 _query_params.append(("endDate", end_date.strftime(self.api_client.configuration.date_format))) 311 else: 312 _query_params.append(("endDate", end_date)) 313 314 if period is not None: 315 316 _query_params.append(("period", period)) 317 318 # process the header parameters 319 # process the form parameters 320 # process the body parameter 321 322 # set the HTTP header `Accept` 323 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 324 325 # authentication setting 326 _auth_settings: List[str] = [] 327 328 return self.api_client.param_serialize( 329 method="GET", 330 resource_path="/v2-experimental/apps/{app_id}/metrics", 331 path_params=_path_params, 332 query_params=_query_params, 333 header_params=_header_params, 334 body=_body_params, 335 post_params=_form_params, 336 files=_files, 337 auth_settings=_auth_settings, 338 collection_formats=_collection_formats, 339 _host=_host, 340 _request_auth=_request_auth, 341 ) 342 343 @validate_call 344 def get_metrics_total( 345 self, 346 app_id: Annotated[StrictStr, Field(description="ID of the app to get total metrics for.")], 347 _request_timeout: Union[ 348 None, 349 Annotated[StrictFloat, Field(gt=0)], 350 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 351 ] = None, 352 _request_auth: Optional[Dict[StrictStr, Any]] = None, 353 _content_type: Optional[StrictStr] = None, 354 _headers: Optional[Dict[StrictStr, Any]] = None, 355 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 356 ) -> GetMetricsTotal200Response: 357 """Get total app metrics 358 359 Returns total usage metrics for a specific app since the app was created. This endpoint requires an app management API token. It can be generated in <a href=\"https://developers.miro.com/?features=appMetricsToken#your-apps\">your apps</a> section of Developer Hub.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a><br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 360 361 :param app_id: ID of the app to get total metrics for. (required) 362 :type app_id: str 363 :param _request_timeout: timeout setting for this request. If one 364 number provided, it will be total request 365 timeout. It can also be a pair (tuple) of 366 (connection, read) timeouts. 367 :type _request_timeout: int, tuple(int, int), optional 368 :param _request_auth: set to override the auth_settings for an a single 369 request; this effectively ignores the 370 authentication in the spec for a single request. 371 :type _request_auth: dict, optional 372 :param _content_type: force content-type for the request. 373 :type _content_type: str, Optional 374 :param _headers: set to override the headers for a single 375 request; this effectively ignores the headers 376 in the spec for a single request. 377 :type _headers: dict, optional 378 :param _host_index: set to override the host_index for a single 379 request; this effectively ignores the host_index 380 in the spec for a single request. 381 :type _host_index: int, optional 382 :return: Returns the result object. 383 """ # noqa: E501 384 385 _param = self._get_metrics_total_serialize( 386 app_id=app_id, 387 _request_auth=_request_auth, 388 _content_type=_content_type, 389 _headers=_headers, 390 _host_index=_host_index, 391 ) 392 393 _response_types_map: Dict[str, Optional[str]] = { 394 "200": "GetMetricsTotal200Response", 395 "404": "GetMetricsTotal404Response", 396 } 397 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 398 response_data.read() 399 return self.api_client.response_deserialize( 400 response_data=response_data, 401 response_types_map=_response_types_map, 402 ).data 403 404 def _get_metrics_total_serialize( 405 self, 406 app_id, 407 _request_auth, 408 _content_type, 409 _headers, 410 _host_index, 411 ) -> RequestSerialized: 412 413 _host = None 414 415 _collection_formats: Dict[str, str] = {} 416 417 _path_params: Dict[str, str] = {} 418 _query_params: List[Tuple[str, str]] = [] 419 _header_params: Dict[str, Optional[str]] = _headers or {} 420 _form_params: List[Tuple[str, str]] = [] 421 _files: Dict[str, str] = {} 422 _body_params: Optional[bytes] = None 423 424 # process the path parameters 425 if app_id is not None: 426 _path_params["app_id"] = app_id 427 # process the query parameters 428 # process the header parameters 429 # process the form parameters 430 # process the body parameter 431 432 # set the HTTP header `Accept` 433 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 434 435 # authentication setting 436 _auth_settings: List[str] = [] 437 438 return self.api_client.param_serialize( 439 method="GET", 440 resource_path="/v2-experimental/apps/{app_id}/metrics-total", 441 path_params=_path_params, 442 query_params=_query_params, 443 header_params=_header_params, 444 body=_body_params, 445 post_params=_form_params, 446 files=_files, 447 auth_settings=_auth_settings, 448 collection_formats=_collection_formats, 449 _host=_host, 450 _request_auth=_request_auth, 451 ) 452 453 @validate_call 454 def enterprise_get_audit_logs( 455 self, 456 created_after: Annotated[ 457 StrictStr, 458 Field( 459 description='Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-03-30T17:26:50.000Z` as the value for the `createdAfter` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC))." ' 460 ), 461 ], 462 created_before: Annotated[ 463 StrictStr, 464 Field( 465 description="Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-04-30T17:26:50.000Z` as the value for the `createdBefore` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 466 ), 467 ], 468 cursor: Annotated[ 469 Optional[StrictStr], 470 Field( 471 description="A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the appropriate cursor value returned in the response." 472 ), 473 ] = None, 474 limit: Annotated[ 475 Optional[StrictInt], 476 Field( 477 description="Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.<br>Default: `100` " 478 ), 479 ] = None, 480 sorting: Annotated[ 481 Optional[StrictStr], 482 Field( 483 description="Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log `createdAt` parameter).<br>Default: `ASC` " 484 ), 485 ] = None, 486 _request_timeout: Union[ 487 None, 488 Annotated[StrictFloat, Field(gt=0)], 489 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 490 ] = None, 491 _request_auth: Optional[Dict[StrictStr, Any]] = None, 492 _content_type: Optional[StrictStr] = None, 493 _headers: Optional[Dict[StrictStr, Any]] = None, 494 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 495 ) -> AuditPage: 496 """Get audit logs 497 498 Retrieves a page of audit events from the last 90 days. If you want to retrieve data that is older than 90 days, you can use the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/360017571434-Audit-logs#h_01J7EY4E0F67EFTRQ7BT688HW0\">CSV export feature</a>.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>auditlogs:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> 499 500 :param created_after: Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-03-30T17:26:50.000Z` as the value for the `createdAfter` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\" (required) 501 :type created_after: str 502 :param created_before: Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-04-30T17:26:50.000Z` as the value for the `createdBefore` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 503 :type created_before: str 504 :param cursor: A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the appropriate cursor value returned in the response. 505 :type cursor: str 506 :param limit: Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.<br>Default: `100` 507 :type limit: int 508 :param sorting: Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log `createdAt` parameter).<br>Default: `ASC` 509 :type sorting: str 510 :param _request_timeout: timeout setting for this request. If one 511 number provided, it will be total request 512 timeout. It can also be a pair (tuple) of 513 (connection, read) timeouts. 514 :type _request_timeout: int, tuple(int, int), optional 515 :param _request_auth: set to override the auth_settings for an a single 516 request; this effectively ignores the 517 authentication in the spec for a single request. 518 :type _request_auth: dict, optional 519 :param _content_type: force content-type for the request. 520 :type _content_type: str, Optional 521 :param _headers: set to override the headers for a single 522 request; this effectively ignores the headers 523 in the spec for a single request. 524 :type _headers: dict, optional 525 :param _host_index: set to override the host_index for a single 526 request; this effectively ignores the host_index 527 in the spec for a single request. 528 :type _host_index: int, optional 529 :return: Returns the result object. 530 """ # noqa: E501 531 532 _param = self._enterprise_get_audit_logs_serialize( 533 created_after=created_after, 534 created_before=created_before, 535 cursor=cursor, 536 limit=limit, 537 sorting=sorting, 538 _request_auth=_request_auth, 539 _content_type=_content_type, 540 _headers=_headers, 541 _host_index=_host_index, 542 ) 543 544 _response_types_map: Dict[str, Optional[str]] = { 545 "200": "AuditPage", 546 "400": None, 547 "401": None, 548 "403": None, 549 "404": None, 550 "409": None, 551 "429": None, 552 } 553 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 554 response_data.read() 555 return self.api_client.response_deserialize( 556 response_data=response_data, 557 response_types_map=_response_types_map, 558 ).data 559 560 def _enterprise_get_audit_logs_serialize( 561 self, 562 created_after, 563 created_before, 564 cursor, 565 limit, 566 sorting, 567 _request_auth, 568 _content_type, 569 _headers, 570 _host_index, 571 ) -> RequestSerialized: 572 573 _host = None 574 575 _collection_formats: Dict[str, str] = {} 576 577 _path_params: Dict[str, str] = {} 578 _query_params: List[Tuple[str, str]] = [] 579 _header_params: Dict[str, Optional[str]] = _headers or {} 580 _form_params: List[Tuple[str, str]] = [] 581 _files: Dict[str, str] = {} 582 _body_params: Optional[bytes] = None 583 584 # process the path parameters 585 # process the query parameters 586 if created_after is not None: 587 588 _query_params.append(("createdAfter", created_after)) 589 590 if created_before is not None: 591 592 _query_params.append(("createdBefore", created_before)) 593 594 if cursor is not None: 595 596 _query_params.append(("cursor", cursor)) 597 598 if limit is not None: 599 600 _query_params.append(("limit", limit)) 601 602 if sorting is not None: 603 604 _query_params.append(("sorting", sorting)) 605 606 # process the header parameters 607 # process the form parameters 608 # process the body parameter 609 610 # set the HTTP header `Accept` 611 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 612 613 # authentication setting 614 _auth_settings: List[str] = [] 615 616 return self.api_client.param_serialize( 617 method="GET", 618 resource_path="/v2/audit/logs", 619 path_params=_path_params, 620 query_params=_query_params, 621 header_params=_header_params, 622 body=_body_params, 623 post_params=_form_params, 624 files=_files, 625 auth_settings=_auth_settings, 626 collection_formats=_collection_formats, 627 _host=_host, 628 _request_auth=_request_auth, 629 ) 630 631 @validate_call 632 def enterprise_board_content_item_logs_fetch( 633 self, 634 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 635 var_from: Annotated[ 636 datetime, 637 Field( 638 description="Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 639 ), 640 ], 641 to: Annotated[ 642 datetime, 643 Field( 644 description="Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 645 ), 646 ], 647 board_ids: Annotated[ 648 Optional[Annotated[List[StrictStr], Field(max_length=15)]], 649 Field(description="List of board IDs for which you want to retrieve the content logs."), 650 ] = None, 651 emails: Annotated[ 652 Optional[Annotated[List[StrictStr], Field(max_length=15)]], 653 Field( 654 description="Filter content logs based on the list of emails of users who created, modified, or deleted the board item." 655 ), 656 ] = None, 657 cursor: Annotated[ 658 Optional[StrictStr], 659 Field( 660 description="A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request. " 661 ), 662 ] = None, 663 limit: Annotated[ 664 Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], 665 Field( 666 description="The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value. " 667 ), 668 ] = None, 669 sorting: Annotated[ 670 Optional[StrictStr], 671 Field( 672 description="Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify `asc`. To sort by a descending modified date, specify `desc`. " 673 ), 674 ] = None, 675 _request_timeout: Union[ 676 None, 677 Annotated[StrictFloat, Field(gt=0)], 678 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 679 ] = None, 680 _request_auth: Optional[Dict[StrictStr, Any]] = None, 681 _content_type: Optional[StrictStr] = None, 682 _headers: Optional[Dict[StrictStr, Any]] = None, 683 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 684 ) -> GetBoardItemContentLogsResponse: 685 """Retrieve content change logs of board items 686 687 Retrieves content changes for board items within your organization. Content changes are actions that users can perform on board items, such as updating a sticky note's text. You can retrieve results for a specific time period. You can also filter results based on the board IDs and the emails of users who created, modified, or deleted a board item. Additionally, results can be paginated for easier viewing and processing. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>contentlogs:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin.</p> 688 689 :param org_id: Unique identifier of the organization. (required) 690 :type org_id: str 691 :param var_from: Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 692 :type var_from: datetime 693 :param to: Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 694 :type to: datetime 695 :param board_ids: List of board IDs for which you want to retrieve the content logs. 696 :type board_ids: List[str] 697 :param emails: Filter content logs based on the list of emails of users who created, modified, or deleted the board item. 698 :type emails: List[str] 699 :param cursor: A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request. 700 :type cursor: str 701 :param limit: The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value. 702 :type limit: int 703 :param sorting: Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify `asc`. To sort by a descending modified date, specify `desc`. 704 :type sorting: str 705 :param _request_timeout: timeout setting for this request. If one 706 number provided, it will be total request 707 timeout. It can also be a pair (tuple) of 708 (connection, read) timeouts. 709 :type _request_timeout: int, tuple(int, int), optional 710 :param _request_auth: set to override the auth_settings for an a single 711 request; this effectively ignores the 712 authentication in the spec for a single request. 713 :type _request_auth: dict, optional 714 :param _content_type: force content-type for the request. 715 :type _content_type: str, Optional 716 :param _headers: set to override the headers for a single 717 request; this effectively ignores the headers 718 in the spec for a single request. 719 :type _headers: dict, optional 720 :param _host_index: set to override the host_index for a single 721 request; this effectively ignores the host_index 722 in the spec for a single request. 723 :type _host_index: int, optional 724 :return: Returns the result object. 725 """ # noqa: E501 726 727 _param = self._enterprise_board_content_item_logs_fetch_serialize( 728 org_id=org_id, 729 var_from=var_from, 730 to=to, 731 board_ids=board_ids, 732 emails=emails, 733 cursor=cursor, 734 limit=limit, 735 sorting=sorting, 736 _request_auth=_request_auth, 737 _content_type=_content_type, 738 _headers=_headers, 739 _host_index=_host_index, 740 ) 741 742 _response_types_map: Dict[str, Optional[str]] = { 743 "200": "GetBoardItemContentLogsResponse", 744 "400": None, 745 "401": None, 746 "403": None, 747 "404": None, 748 "429": None, 749 } 750 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 751 response_data.read() 752 return self.api_client.response_deserialize( 753 response_data=response_data, 754 response_types_map=_response_types_map, 755 ).data 756 757 def _enterprise_board_content_item_logs_fetch_serialize( 758 self, 759 org_id, 760 var_from, 761 to, 762 board_ids, 763 emails, 764 cursor, 765 limit, 766 sorting, 767 _request_auth, 768 _content_type, 769 _headers, 770 _host_index, 771 ) -> RequestSerialized: 772 773 _host = None 774 775 _collection_formats: Dict[str, str] = { 776 "board_ids": "multi", 777 "emails": "multi", 778 } 779 780 _path_params: Dict[str, str] = {} 781 _query_params: List[Tuple[str, str]] = [] 782 _header_params: Dict[str, Optional[str]] = _headers or {} 783 _form_params: List[Tuple[str, str]] = [] 784 _files: Dict[str, str] = {} 785 _body_params: Optional[bytes] = None 786 787 # process the path parameters 788 if org_id is not None: 789 _path_params["org_id"] = org_id 790 # process the query parameters 791 if board_ids is not None: 792 793 _query_params.append(("board_ids", board_ids)) 794 795 if emails is not None: 796 797 _query_params.append(("emails", emails)) 798 799 if var_from is not None: 800 if isinstance(var_from, datetime): 801 _query_params.append(("from", var_from.strftime(self.api_client.configuration.datetime_format))) 802 else: 803 _query_params.append(("from", var_from)) 804 805 if to is not None: 806 if isinstance(to, datetime): 807 _query_params.append(("to", to.strftime(self.api_client.configuration.datetime_format))) 808 else: 809 _query_params.append(("to", to)) 810 811 if cursor is not None: 812 813 _query_params.append(("cursor", cursor)) 814 815 if limit is not None: 816 817 _query_params.append(("limit", limit)) 818 819 if sorting is not None: 820 821 _query_params.append(("sorting", sorting)) 822 823 # process the header parameters 824 # process the form parameters 825 # process the body parameter 826 827 # set the HTTP header `Accept` 828 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 829 830 # authentication setting 831 _auth_settings: List[str] = [] 832 833 return self.api_client.param_serialize( 834 method="GET", 835 resource_path="/v2/orgs/{org_id}/content-logs/items", 836 path_params=_path_params, 837 query_params=_query_params, 838 header_params=_header_params, 839 body=_body_params, 840 post_params=_form_params, 841 files=_files, 842 auth_settings=_auth_settings, 843 collection_formats=_collection_formats, 844 _host=_host, 845 _request_auth=_request_auth, 846 ) 847 848 @validate_call 849 def enterprise_board_export_job_results( 850 self, 851 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 852 job_id: Annotated[StrictStr, Field(description="Unique identifier of the job.")], 853 _request_timeout: Union[ 854 None, 855 Annotated[StrictFloat, Field(gt=0)], 856 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 857 ] = None, 858 _request_auth: Optional[Dict[StrictStr, Any]] = None, 859 _content_type: Optional[StrictStr] = None, 860 _headers: Optional[Dict[StrictStr, Any]] = None, 861 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 862 ) -> BoardExportResult: 863 """Get results for board export job 864 865 Retrieves the result of the board export job. The response provides more information about the board export job, such as the S3 link to the files created.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 866 867 :param org_id: Unique identifier of the organization. (required) 868 :type org_id: str 869 :param job_id: Unique identifier of the job. (required) 870 :type job_id: str 871 :param _request_timeout: timeout setting for this request. If one 872 number provided, it will be total request 873 timeout. It can also be a pair (tuple) of 874 (connection, read) timeouts. 875 :type _request_timeout: int, tuple(int, int), optional 876 :param _request_auth: set to override the auth_settings for an a single 877 request; this effectively ignores the 878 authentication in the spec for a single request. 879 :type _request_auth: dict, optional 880 :param _content_type: force content-type for the request. 881 :type _content_type: str, Optional 882 :param _headers: set to override the headers for a single 883 request; this effectively ignores the headers 884 in the spec for a single request. 885 :type _headers: dict, optional 886 :param _host_index: set to override the host_index for a single 887 request; this effectively ignores the host_index 888 in the spec for a single request. 889 :type _host_index: int, optional 890 :return: Returns the result object. 891 """ # noqa: E501 892 893 _param = self._enterprise_board_export_job_results_serialize( 894 org_id=org_id, 895 job_id=job_id, 896 _request_auth=_request_auth, 897 _content_type=_content_type, 898 _headers=_headers, 899 _host_index=_host_index, 900 ) 901 902 _response_types_map: Dict[str, Optional[str]] = { 903 "200": "BoardExportResult", 904 "400": None, 905 "401": None, 906 "403": None, 907 "404": None, 908 "429": None, 909 } 910 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 911 response_data.read() 912 return self.api_client.response_deserialize( 913 response_data=response_data, 914 response_types_map=_response_types_map, 915 ).data 916 917 def _enterprise_board_export_job_results_serialize( 918 self, 919 org_id, 920 job_id, 921 _request_auth, 922 _content_type, 923 _headers, 924 _host_index, 925 ) -> RequestSerialized: 926 927 _host = None 928 929 _collection_formats: Dict[str, str] = {} 930 931 _path_params: Dict[str, str] = {} 932 _query_params: List[Tuple[str, str]] = [] 933 _header_params: Dict[str, Optional[str]] = _headers or {} 934 _form_params: List[Tuple[str, str]] = [] 935 _files: Dict[str, str] = {} 936 _body_params: Optional[bytes] = None 937 938 # process the path parameters 939 if org_id is not None: 940 _path_params["org_id"] = org_id 941 if job_id is not None: 942 _path_params["job_id"] = job_id 943 # process the query parameters 944 # process the header parameters 945 # process the form parameters 946 # process the body parameter 947 948 # set the HTTP header `Accept` 949 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 950 951 # authentication setting 952 _auth_settings: List[str] = [] 953 954 return self.api_client.param_serialize( 955 method="GET", 956 resource_path="/v2/orgs/{org_id}/boards/export/jobs/{job_id}/results", 957 path_params=_path_params, 958 query_params=_query_params, 959 header_params=_header_params, 960 body=_body_params, 961 post_params=_form_params, 962 files=_files, 963 auth_settings=_auth_settings, 964 collection_formats=_collection_formats, 965 _host=_host, 966 _request_auth=_request_auth, 967 ) 968 969 @validate_call 970 def enterprise_board_export_job_status( 971 self, 972 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 973 job_id: Annotated[StrictStr, Field(description="Unique identifier of the board export job.")], 974 _request_timeout: Union[ 975 None, 976 Annotated[StrictFloat, Field(gt=0)], 977 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 978 ] = None, 979 _request_auth: Optional[Dict[StrictStr, Any]] = None, 980 _content_type: Optional[StrictStr] = None, 981 _headers: Optional[Dict[StrictStr, Any]] = None, 982 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 983 ) -> BoardExportJobStatus: 984 """Get board export job status 985 986 Retrieves the status of the board export job.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 987 988 :param org_id: Unique identifier of the organization. (required) 989 :type org_id: str 990 :param job_id: Unique identifier of the board export job. (required) 991 :type job_id: str 992 :param _request_timeout: timeout setting for this request. If one 993 number provided, it will be total request 994 timeout. It can also be a pair (tuple) of 995 (connection, read) timeouts. 996 :type _request_timeout: int, tuple(int, int), optional 997 :param _request_auth: set to override the auth_settings for an a single 998 request; this effectively ignores the 999 authentication in the spec for a single request. 1000 :type _request_auth: dict, optional 1001 :param _content_type: force content-type for the request. 1002 :type _content_type: str, Optional 1003 :param _headers: set to override the headers for a single 1004 request; this effectively ignores the headers 1005 in the spec for a single request. 1006 :type _headers: dict, optional 1007 :param _host_index: set to override the host_index for a single 1008 request; this effectively ignores the host_index 1009 in the spec for a single request. 1010 :type _host_index: int, optional 1011 :return: Returns the result object. 1012 """ # noqa: E501 1013 1014 _param = self._enterprise_board_export_job_status_serialize( 1015 org_id=org_id, 1016 job_id=job_id, 1017 _request_auth=_request_auth, 1018 _content_type=_content_type, 1019 _headers=_headers, 1020 _host_index=_host_index, 1021 ) 1022 1023 _response_types_map: Dict[str, Optional[str]] = { 1024 "200": "BoardExportJobStatus", 1025 "400": None, 1026 "401": None, 1027 "403": None, 1028 "404": None, 1029 "429": None, 1030 } 1031 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1032 response_data.read() 1033 return self.api_client.response_deserialize( 1034 response_data=response_data, 1035 response_types_map=_response_types_map, 1036 ).data 1037 1038 def _enterprise_board_export_job_status_serialize( 1039 self, 1040 org_id, 1041 job_id, 1042 _request_auth, 1043 _content_type, 1044 _headers, 1045 _host_index, 1046 ) -> RequestSerialized: 1047 1048 _host = None 1049 1050 _collection_formats: Dict[str, str] = {} 1051 1052 _path_params: Dict[str, str] = {} 1053 _query_params: List[Tuple[str, str]] = [] 1054 _header_params: Dict[str, Optional[str]] = _headers or {} 1055 _form_params: List[Tuple[str, str]] = [] 1056 _files: Dict[str, str] = {} 1057 _body_params: Optional[bytes] = None 1058 1059 # process the path parameters 1060 if org_id is not None: 1061 _path_params["org_id"] = org_id 1062 if job_id is not None: 1063 _path_params["job_id"] = job_id 1064 # process the query parameters 1065 # process the header parameters 1066 # process the form parameters 1067 # process the body parameter 1068 1069 # set the HTTP header `Accept` 1070 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1071 1072 # authentication setting 1073 _auth_settings: List[str] = [] 1074 1075 return self.api_client.param_serialize( 1076 method="GET", 1077 resource_path="/v2/orgs/{org_id}/boards/export/jobs/{job_id}", 1078 path_params=_path_params, 1079 query_params=_query_params, 1080 header_params=_header_params, 1081 body=_body_params, 1082 post_params=_form_params, 1083 files=_files, 1084 auth_settings=_auth_settings, 1085 collection_formats=_collection_formats, 1086 _host=_host, 1087 _request_auth=_request_auth, 1088 ) 1089 1090 @validate_call 1091 def enterprise_create_board_export( 1092 self, 1093 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 1094 request_id: Annotated[StrictStr, Field(description="Unique identifier of the board export job.")], 1095 create_board_export_request: CreateBoardExportRequest, 1096 _request_timeout: Union[ 1097 None, 1098 Annotated[StrictFloat, Field(gt=0)], 1099 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1100 ] = None, 1101 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1102 _content_type: Optional[StrictStr] = None, 1103 _headers: Optional[Dict[StrictStr, Any]] = None, 1104 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1105 ) -> BoardExportJobId: 1106 """Create board export job 1107 1108 Creates an export job for one or more boards.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1109 1110 :param org_id: Unique identifier of the organization. (required) 1111 :type org_id: str 1112 :param request_id: Unique identifier of the board export job. (required) 1113 :type request_id: str 1114 :param create_board_export_request: (required) 1115 :type create_board_export_request: CreateBoardExportRequest 1116 :param _request_timeout: timeout setting for this request. If one 1117 number provided, it will be total request 1118 timeout. It can also be a pair (tuple) of 1119 (connection, read) timeouts. 1120 :type _request_timeout: int, tuple(int, int), optional 1121 :param _request_auth: set to override the auth_settings for an a single 1122 request; this effectively ignores the 1123 authentication in the spec for a single request. 1124 :type _request_auth: dict, optional 1125 :param _content_type: force content-type for the request. 1126 :type _content_type: str, Optional 1127 :param _headers: set to override the headers for a single 1128 request; this effectively ignores the headers 1129 in the spec for a single request. 1130 :type _headers: dict, optional 1131 :param _host_index: set to override the host_index for a single 1132 request; this effectively ignores the host_index 1133 in the spec for a single request. 1134 :type _host_index: int, optional 1135 :return: Returns the result object. 1136 """ # noqa: E501 1137 1138 _param = self._enterprise_create_board_export_serialize( 1139 org_id=org_id, 1140 request_id=request_id, 1141 create_board_export_request=create_board_export_request, 1142 _request_auth=_request_auth, 1143 _content_type=_content_type, 1144 _headers=_headers, 1145 _host_index=_host_index, 1146 ) 1147 1148 _response_types_map: Dict[str, Optional[str]] = { 1149 "200": "BoardExportJobId", 1150 "400": None, 1151 "401": None, 1152 "403": None, 1153 "404": None, 1154 "429": None, 1155 } 1156 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1157 response_data.read() 1158 return self.api_client.response_deserialize( 1159 response_data=response_data, 1160 response_types_map=_response_types_map, 1161 ).data 1162 1163 def _enterprise_create_board_export_serialize( 1164 self, 1165 org_id, 1166 request_id, 1167 create_board_export_request, 1168 _request_auth, 1169 _content_type, 1170 _headers, 1171 _host_index, 1172 ) -> RequestSerialized: 1173 1174 _host = None 1175 1176 _collection_formats: Dict[str, str] = {} 1177 1178 _path_params: Dict[str, str] = {} 1179 _query_params: List[Tuple[str, str]] = [] 1180 _header_params: Dict[str, Optional[str]] = _headers or {} 1181 _form_params: List[Tuple[str, str]] = [] 1182 _files: Dict[str, str] = {} 1183 _body_params: Optional[bytes] = None 1184 1185 # process the path parameters 1186 if org_id is not None: 1187 _path_params["org_id"] = org_id 1188 # process the query parameters 1189 if request_id is not None: 1190 1191 _query_params.append(("request_id", request_id)) 1192 1193 # process the header parameters 1194 # process the form parameters 1195 # process the body parameter 1196 if create_board_export_request is not None: 1197 _body_params = create_board_export_request 1198 1199 # set the HTTP header `Accept` 1200 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1201 1202 # set the HTTP header `Content-Type` 1203 if _content_type: 1204 _header_params["Content-Type"] = _content_type 1205 else: 1206 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1207 if _default_content_type is not None: 1208 _header_params["Content-Type"] = _default_content_type 1209 1210 # authentication setting 1211 _auth_settings: List[str] = [] 1212 1213 return self.api_client.param_serialize( 1214 method="POST", 1215 resource_path="/v2/orgs/{org_id}/boards/export/jobs", 1216 path_params=_path_params, 1217 query_params=_query_params, 1218 header_params=_header_params, 1219 body=_body_params, 1220 post_params=_form_params, 1221 files=_files, 1222 auth_settings=_auth_settings, 1223 collection_formats=_collection_formats, 1224 _host=_host, 1225 _request_auth=_request_auth, 1226 ) 1227 1228 @validate_call 1229 def enterprise_dataclassification_board_get( 1230 self, 1231 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1232 team_id: Annotated[StrictStr, Field(description="id of the team")], 1233 board_id: Annotated[StrictStr, Field(description="Unique identifier of the board that you want to retrieve.")], 1234 _request_timeout: Union[ 1235 None, 1236 Annotated[StrictFloat, Field(gt=0)], 1237 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1238 ] = None, 1239 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1240 _content_type: Optional[StrictStr] = None, 1241 _headers: Optional[Dict[StrictStr, Any]] = None, 1242 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1243 ) -> BoardDataClassificationLabel: 1244 """Get board classification 1245 1246 Retrieves board classification for a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1247 1248 :param org_id: id of the organization (required) 1249 :type org_id: str 1250 :param team_id: id of the team (required) 1251 :type team_id: str 1252 :param board_id: Unique identifier of the board that you want to retrieve. (required) 1253 :type board_id: str 1254 :param _request_timeout: timeout setting for this request. If one 1255 number provided, it will be total request 1256 timeout. It can also be a pair (tuple) of 1257 (connection, read) timeouts. 1258 :type _request_timeout: int, tuple(int, int), optional 1259 :param _request_auth: set to override the auth_settings for an a single 1260 request; this effectively ignores the 1261 authentication in the spec for a single request. 1262 :type _request_auth: dict, optional 1263 :param _content_type: force content-type for the request. 1264 :type _content_type: str, Optional 1265 :param _headers: set to override the headers for a single 1266 request; this effectively ignores the headers 1267 in the spec for a single request. 1268 :type _headers: dict, optional 1269 :param _host_index: set to override the host_index for a single 1270 request; this effectively ignores the host_index 1271 in the spec for a single request. 1272 :type _host_index: int, optional 1273 :return: Returns the result object. 1274 """ # noqa: E501 1275 1276 _param = self._enterprise_dataclassification_board_get_serialize( 1277 org_id=org_id, 1278 team_id=team_id, 1279 board_id=board_id, 1280 _request_auth=_request_auth, 1281 _content_type=_content_type, 1282 _headers=_headers, 1283 _host_index=_host_index, 1284 ) 1285 1286 _response_types_map: Dict[str, Optional[str]] = { 1287 "200": "BoardDataClassificationLabel", 1288 "400": None, 1289 "401": None, 1290 "403": None, 1291 "404": None, 1292 "429": None, 1293 } 1294 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1295 response_data.read() 1296 return self.api_client.response_deserialize( 1297 response_data=response_data, 1298 response_types_map=_response_types_map, 1299 ).data 1300 1301 def _enterprise_dataclassification_board_get_serialize( 1302 self, 1303 org_id, 1304 team_id, 1305 board_id, 1306 _request_auth, 1307 _content_type, 1308 _headers, 1309 _host_index, 1310 ) -> RequestSerialized: 1311 1312 _host = None 1313 1314 _collection_formats: Dict[str, str] = {} 1315 1316 _path_params: Dict[str, str] = {} 1317 _query_params: List[Tuple[str, str]] = [] 1318 _header_params: Dict[str, Optional[str]] = _headers or {} 1319 _form_params: List[Tuple[str, str]] = [] 1320 _files: Dict[str, str] = {} 1321 _body_params: Optional[bytes] = None 1322 1323 # process the path parameters 1324 if org_id is not None: 1325 _path_params["org_id"] = org_id 1326 if team_id is not None: 1327 _path_params["team_id"] = team_id 1328 if board_id is not None: 1329 _path_params["board_id"] = board_id 1330 # process the query parameters 1331 # process the header parameters 1332 # process the form parameters 1333 # process the body parameter 1334 1335 # set the HTTP header `Accept` 1336 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1337 1338 # authentication setting 1339 _auth_settings: List[str] = [] 1340 1341 return self.api_client.param_serialize( 1342 method="GET", 1343 resource_path="/v2/orgs/{org_id}/teams/{team_id}/boards/{board_id}/data-classification", 1344 path_params=_path_params, 1345 query_params=_query_params, 1346 header_params=_header_params, 1347 body=_body_params, 1348 post_params=_form_params, 1349 files=_files, 1350 auth_settings=_auth_settings, 1351 collection_formats=_collection_formats, 1352 _host=_host, 1353 _request_auth=_request_auth, 1354 ) 1355 1356 @validate_call 1357 def enterprise_dataclassification_board_set( 1358 self, 1359 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1360 team_id: Annotated[StrictStr, Field(description="id of the team")], 1361 board_id: Annotated[StrictStr, Field(description="Unique identifier of the board that you want to update.")], 1362 data_classification_label_id: DataClassificationLabelId, 1363 _request_timeout: Union[ 1364 None, 1365 Annotated[StrictFloat, Field(gt=0)], 1366 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1367 ] = None, 1368 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1369 _content_type: Optional[StrictStr] = None, 1370 _headers: Optional[Dict[StrictStr, Any]] = None, 1371 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1372 ) -> BoardDataClassificationLabel: 1373 """Update board classification 1374 1375 Updates board classification for an existing board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1376 1377 :param org_id: id of the organization (required) 1378 :type org_id: str 1379 :param team_id: id of the team (required) 1380 :type team_id: str 1381 :param board_id: Unique identifier of the board that you want to update. (required) 1382 :type board_id: str 1383 :param data_classification_label_id: (required) 1384 :type data_classification_label_id: DataClassificationLabelId 1385 :param _request_timeout: timeout setting for this request. If one 1386 number provided, it will be total request 1387 timeout. It can also be a pair (tuple) of 1388 (connection, read) timeouts. 1389 :type _request_timeout: int, tuple(int, int), optional 1390 :param _request_auth: set to override the auth_settings for an a single 1391 request; this effectively ignores the 1392 authentication in the spec for a single request. 1393 :type _request_auth: dict, optional 1394 :param _content_type: force content-type for the request. 1395 :type _content_type: str, Optional 1396 :param _headers: set to override the headers for a single 1397 request; this effectively ignores the headers 1398 in the spec for a single request. 1399 :type _headers: dict, optional 1400 :param _host_index: set to override the host_index for a single 1401 request; this effectively ignores the host_index 1402 in the spec for a single request. 1403 :type _host_index: int, optional 1404 :return: Returns the result object. 1405 """ # noqa: E501 1406 1407 _param = self._enterprise_dataclassification_board_set_serialize( 1408 org_id=org_id, 1409 team_id=team_id, 1410 board_id=board_id, 1411 data_classification_label_id=data_classification_label_id, 1412 _request_auth=_request_auth, 1413 _content_type=_content_type, 1414 _headers=_headers, 1415 _host_index=_host_index, 1416 ) 1417 1418 _response_types_map: Dict[str, Optional[str]] = { 1419 "200": "BoardDataClassificationLabel", 1420 "400": None, 1421 "401": None, 1422 "403": None, 1423 "404": None, 1424 "429": None, 1425 } 1426 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1427 response_data.read() 1428 return self.api_client.response_deserialize( 1429 response_data=response_data, 1430 response_types_map=_response_types_map, 1431 ).data 1432 1433 def _enterprise_dataclassification_board_set_serialize( 1434 self, 1435 org_id, 1436 team_id, 1437 board_id, 1438 data_classification_label_id, 1439 _request_auth, 1440 _content_type, 1441 _headers, 1442 _host_index, 1443 ) -> RequestSerialized: 1444 1445 _host = None 1446 1447 _collection_formats: Dict[str, str] = {} 1448 1449 _path_params: Dict[str, str] = {} 1450 _query_params: List[Tuple[str, str]] = [] 1451 _header_params: Dict[str, Optional[str]] = _headers or {} 1452 _form_params: List[Tuple[str, str]] = [] 1453 _files: Dict[str, str] = {} 1454 _body_params: Optional[bytes] = None 1455 1456 # process the path parameters 1457 if org_id is not None: 1458 _path_params["org_id"] = org_id 1459 if team_id is not None: 1460 _path_params["team_id"] = team_id 1461 if board_id is not None: 1462 _path_params["board_id"] = board_id 1463 # process the query parameters 1464 # process the header parameters 1465 # process the form parameters 1466 # process the body parameter 1467 if data_classification_label_id is not None: 1468 _body_params = data_classification_label_id 1469 1470 # set the HTTP header `Accept` 1471 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1472 1473 # set the HTTP header `Content-Type` 1474 if _content_type: 1475 _header_params["Content-Type"] = _content_type 1476 else: 1477 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1478 if _default_content_type is not None: 1479 _header_params["Content-Type"] = _default_content_type 1480 1481 # authentication setting 1482 _auth_settings: List[str] = [] 1483 1484 return self.api_client.param_serialize( 1485 method="POST", 1486 resource_path="/v2/orgs/{org_id}/teams/{team_id}/boards/{board_id}/data-classification", 1487 path_params=_path_params, 1488 query_params=_query_params, 1489 header_params=_header_params, 1490 body=_body_params, 1491 post_params=_form_params, 1492 files=_files, 1493 auth_settings=_auth_settings, 1494 collection_formats=_collection_formats, 1495 _host=_host, 1496 _request_auth=_request_auth, 1497 ) 1498 1499 @validate_call 1500 def enterprise_dataclassification_organization_settings_get( 1501 self, 1502 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1503 _request_timeout: Union[ 1504 None, 1505 Annotated[StrictFloat, Field(gt=0)], 1506 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1507 ] = None, 1508 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1509 _content_type: Optional[StrictStr] = None, 1510 _headers: Optional[Dict[StrictStr, Any]] = None, 1511 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1512 ) -> DataClassificationOrganizationSettings: 1513 """Get organization settings 1514 1515 Retrieves board classification settings for an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1516 1517 :param org_id: id of the organization (required) 1518 :type org_id: str 1519 :param _request_timeout: timeout setting for this request. If one 1520 number provided, it will be total request 1521 timeout. It can also be a pair (tuple) of 1522 (connection, read) timeouts. 1523 :type _request_timeout: int, tuple(int, int), optional 1524 :param _request_auth: set to override the auth_settings for an a single 1525 request; this effectively ignores the 1526 authentication in the spec for a single request. 1527 :type _request_auth: dict, optional 1528 :param _content_type: force content-type for the request. 1529 :type _content_type: str, Optional 1530 :param _headers: set to override the headers for a single 1531 request; this effectively ignores the headers 1532 in the spec for a single request. 1533 :type _headers: dict, optional 1534 :param _host_index: set to override the host_index for a single 1535 request; this effectively ignores the host_index 1536 in the spec for a single request. 1537 :type _host_index: int, optional 1538 :return: Returns the result object. 1539 """ # noqa: E501 1540 1541 _param = self._enterprise_dataclassification_organization_settings_get_serialize( 1542 org_id=org_id, 1543 _request_auth=_request_auth, 1544 _content_type=_content_type, 1545 _headers=_headers, 1546 _host_index=_host_index, 1547 ) 1548 1549 _response_types_map: Dict[str, Optional[str]] = { 1550 "200": "DataClassificationOrganizationSettings", 1551 "400": None, 1552 "401": None, 1553 "403": None, 1554 "404": None, 1555 "429": None, 1556 } 1557 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1558 response_data.read() 1559 return self.api_client.response_deserialize( 1560 response_data=response_data, 1561 response_types_map=_response_types_map, 1562 ).data 1563 1564 def _enterprise_dataclassification_organization_settings_get_serialize( 1565 self, 1566 org_id, 1567 _request_auth, 1568 _content_type, 1569 _headers, 1570 _host_index, 1571 ) -> RequestSerialized: 1572 1573 _host = None 1574 1575 _collection_formats: Dict[str, str] = {} 1576 1577 _path_params: Dict[str, str] = {} 1578 _query_params: List[Tuple[str, str]] = [] 1579 _header_params: Dict[str, Optional[str]] = _headers or {} 1580 _form_params: List[Tuple[str, str]] = [] 1581 _files: Dict[str, str] = {} 1582 _body_params: Optional[bytes] = None 1583 1584 # process the path parameters 1585 if org_id is not None: 1586 _path_params["org_id"] = org_id 1587 # process the query parameters 1588 # process the header parameters 1589 # process the form parameters 1590 # process the body parameter 1591 1592 # set the HTTP header `Accept` 1593 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1594 1595 # authentication setting 1596 _auth_settings: List[str] = [] 1597 1598 return self.api_client.param_serialize( 1599 method="GET", 1600 resource_path="/v2/orgs/{org_id}/data-classification-settings", 1601 path_params=_path_params, 1602 query_params=_query_params, 1603 header_params=_header_params, 1604 body=_body_params, 1605 post_params=_form_params, 1606 files=_files, 1607 auth_settings=_auth_settings, 1608 collection_formats=_collection_formats, 1609 _host=_host, 1610 _request_auth=_request_auth, 1611 ) 1612 1613 @validate_call 1614 def enterprise_dataclassification_team_boards_bulk( 1615 self, 1616 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1617 team_id: Annotated[StrictStr, Field(description="id of the team")], 1618 update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest, 1619 _request_timeout: Union[ 1620 None, 1621 Annotated[StrictFloat, Field(gt=0)], 1622 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1623 ] = None, 1624 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1625 _content_type: Optional[StrictStr] = None, 1626 _headers: Optional[Dict[StrictStr, Any]] = None, 1627 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1628 ) -> UpdateBoardsDataClassificationLabel: 1629 """Bulk update boards classification 1630 1631 Updates board classification for not-classified only or all boards in an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1632 1633 :param org_id: id of the organization (required) 1634 :type org_id: str 1635 :param team_id: id of the team (required) 1636 :type team_id: str 1637 :param update_boards_data_classification_label_request: (required) 1638 :type update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest 1639 :param _request_timeout: timeout setting for this request. If one 1640 number provided, it will be total request 1641 timeout. It can also be a pair (tuple) of 1642 (connection, read) timeouts. 1643 :type _request_timeout: int, tuple(int, int), optional 1644 :param _request_auth: set to override the auth_settings for an a single 1645 request; this effectively ignores the 1646 authentication in the spec for a single request. 1647 :type _request_auth: dict, optional 1648 :param _content_type: force content-type for the request. 1649 :type _content_type: str, Optional 1650 :param _headers: set to override the headers for a single 1651 request; this effectively ignores the headers 1652 in the spec for a single request. 1653 :type _headers: dict, optional 1654 :param _host_index: set to override the host_index for a single 1655 request; this effectively ignores the host_index 1656 in the spec for a single request. 1657 :type _host_index: int, optional 1658 :return: Returns the result object. 1659 """ # noqa: E501 1660 1661 _param = self._enterprise_dataclassification_team_boards_bulk_serialize( 1662 org_id=org_id, 1663 team_id=team_id, 1664 update_boards_data_classification_label_request=update_boards_data_classification_label_request, 1665 _request_auth=_request_auth, 1666 _content_type=_content_type, 1667 _headers=_headers, 1668 _host_index=_host_index, 1669 ) 1670 1671 _response_types_map: Dict[str, Optional[str]] = { 1672 "200": "UpdateBoardsDataClassificationLabel", 1673 "400": None, 1674 "401": None, 1675 "403": None, 1676 "404": None, 1677 "429": None, 1678 } 1679 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1680 response_data.read() 1681 return self.api_client.response_deserialize( 1682 response_data=response_data, 1683 response_types_map=_response_types_map, 1684 ).data 1685 1686 def _enterprise_dataclassification_team_boards_bulk_serialize( 1687 self, 1688 org_id, 1689 team_id, 1690 update_boards_data_classification_label_request, 1691 _request_auth, 1692 _content_type, 1693 _headers, 1694 _host_index, 1695 ) -> RequestSerialized: 1696 1697 _host = None 1698 1699 _collection_formats: Dict[str, str] = {} 1700 1701 _path_params: Dict[str, str] = {} 1702 _query_params: List[Tuple[str, str]] = [] 1703 _header_params: Dict[str, Optional[str]] = _headers or {} 1704 _form_params: List[Tuple[str, str]] = [] 1705 _files: Dict[str, str] = {} 1706 _body_params: Optional[bytes] = None 1707 1708 # process the path parameters 1709 if org_id is not None: 1710 _path_params["org_id"] = org_id 1711 if team_id is not None: 1712 _path_params["team_id"] = team_id 1713 # process the query parameters 1714 # process the header parameters 1715 # process the form parameters 1716 # process the body parameter 1717 if update_boards_data_classification_label_request is not None: 1718 _body_params = update_boards_data_classification_label_request 1719 1720 # set the HTTP header `Accept` 1721 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1722 1723 # set the HTTP header `Content-Type` 1724 if _content_type: 1725 _header_params["Content-Type"] = _content_type 1726 else: 1727 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1728 if _default_content_type is not None: 1729 _header_params["Content-Type"] = _default_content_type 1730 1731 # authentication setting 1732 _auth_settings: List[str] = [] 1733 1734 return self.api_client.param_serialize( 1735 method="PATCH", 1736 resource_path="/v2/orgs/{org_id}/teams/{team_id}/data-classification", 1737 path_params=_path_params, 1738 query_params=_query_params, 1739 header_params=_header_params, 1740 body=_body_params, 1741 post_params=_form_params, 1742 files=_files, 1743 auth_settings=_auth_settings, 1744 collection_formats=_collection_formats, 1745 _host=_host, 1746 _request_auth=_request_auth, 1747 ) 1748 1749 @validate_call 1750 def enterprise_dataclassification_team_settings_get( 1751 self, 1752 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1753 team_id: Annotated[StrictStr, Field(description="id of the team")], 1754 _request_timeout: Union[ 1755 None, 1756 Annotated[StrictFloat, Field(gt=0)], 1757 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1758 ] = None, 1759 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1760 _content_type: Optional[StrictStr] = None, 1761 _headers: Optional[Dict[StrictStr, Any]] = None, 1762 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1763 ) -> DataClassificationTeamSettings: 1764 """Get team settings 1765 1766 Retrieves board classification settings for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1767 1768 :param org_id: id of the organization (required) 1769 :type org_id: str 1770 :param team_id: id of the team (required) 1771 :type team_id: str 1772 :param _request_timeout: timeout setting for this request. If one 1773 number provided, it will be total request 1774 timeout. It can also be a pair (tuple) of 1775 (connection, read) timeouts. 1776 :type _request_timeout: int, tuple(int, int), optional 1777 :param _request_auth: set to override the auth_settings for an a single 1778 request; this effectively ignores the 1779 authentication in the spec for a single request. 1780 :type _request_auth: dict, optional 1781 :param _content_type: force content-type for the request. 1782 :type _content_type: str, Optional 1783 :param _headers: set to override the headers for a single 1784 request; this effectively ignores the headers 1785 in the spec for a single request. 1786 :type _headers: dict, optional 1787 :param _host_index: set to override the host_index for a single 1788 request; this effectively ignores the host_index 1789 in the spec for a single request. 1790 :type _host_index: int, optional 1791 :return: Returns the result object. 1792 """ # noqa: E501 1793 1794 _param = self._enterprise_dataclassification_team_settings_get_serialize( 1795 org_id=org_id, 1796 team_id=team_id, 1797 _request_auth=_request_auth, 1798 _content_type=_content_type, 1799 _headers=_headers, 1800 _host_index=_host_index, 1801 ) 1802 1803 _response_types_map: Dict[str, Optional[str]] = { 1804 "200": "DataClassificationTeamSettings", 1805 "400": None, 1806 "401": None, 1807 "403": None, 1808 "404": None, 1809 "429": None, 1810 } 1811 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1812 response_data.read() 1813 return self.api_client.response_deserialize( 1814 response_data=response_data, 1815 response_types_map=_response_types_map, 1816 ).data 1817 1818 def _enterprise_dataclassification_team_settings_get_serialize( 1819 self, 1820 org_id, 1821 team_id, 1822 _request_auth, 1823 _content_type, 1824 _headers, 1825 _host_index, 1826 ) -> RequestSerialized: 1827 1828 _host = None 1829 1830 _collection_formats: Dict[str, str] = {} 1831 1832 _path_params: Dict[str, str] = {} 1833 _query_params: List[Tuple[str, str]] = [] 1834 _header_params: Dict[str, Optional[str]] = _headers or {} 1835 _form_params: List[Tuple[str, str]] = [] 1836 _files: Dict[str, str] = {} 1837 _body_params: Optional[bytes] = None 1838 1839 # process the path parameters 1840 if org_id is not None: 1841 _path_params["org_id"] = org_id 1842 if team_id is not None: 1843 _path_params["team_id"] = team_id 1844 # process the query parameters 1845 # process the header parameters 1846 # process the form parameters 1847 # process the body parameter 1848 1849 # set the HTTP header `Accept` 1850 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1851 1852 # authentication setting 1853 _auth_settings: List[str] = [] 1854 1855 return self.api_client.param_serialize( 1856 method="GET", 1857 resource_path="/v2/orgs/{org_id}/teams/{team_id}/data-classification-settings", 1858 path_params=_path_params, 1859 query_params=_query_params, 1860 header_params=_header_params, 1861 body=_body_params, 1862 post_params=_form_params, 1863 files=_files, 1864 auth_settings=_auth_settings, 1865 collection_formats=_collection_formats, 1866 _host=_host, 1867 _request_auth=_request_auth, 1868 ) 1869 1870 @validate_call 1871 def enterprise_dataclassification_team_settings_set( 1872 self, 1873 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1874 team_id: Annotated[StrictStr, Field(description="id of the team")], 1875 update_team_settings_request: UpdateTeamSettingsRequest, 1876 _request_timeout: Union[ 1877 None, 1878 Annotated[StrictFloat, Field(gt=0)], 1879 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1880 ] = None, 1881 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1882 _content_type: Optional[StrictStr] = None, 1883 _headers: Optional[Dict[StrictStr, Any]] = None, 1884 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1885 ) -> DataClassificationTeamSettings: 1886 """Update team settings 1887 1888 Updates board classification settings for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1889 1890 :param org_id: id of the organization (required) 1891 :type org_id: str 1892 :param team_id: id of the team (required) 1893 :type team_id: str 1894 :param update_team_settings_request: (required) 1895 :type update_team_settings_request: UpdateTeamSettingsRequest 1896 :param _request_timeout: timeout setting for this request. If one 1897 number provided, it will be total request 1898 timeout. It can also be a pair (tuple) of 1899 (connection, read) timeouts. 1900 :type _request_timeout: int, tuple(int, int), optional 1901 :param _request_auth: set to override the auth_settings for an a single 1902 request; this effectively ignores the 1903 authentication in the spec for a single request. 1904 :type _request_auth: dict, optional 1905 :param _content_type: force content-type for the request. 1906 :type _content_type: str, Optional 1907 :param _headers: set to override the headers for a single 1908 request; this effectively ignores the headers 1909 in the spec for a single request. 1910 :type _headers: dict, optional 1911 :param _host_index: set to override the host_index for a single 1912 request; this effectively ignores the host_index 1913 in the spec for a single request. 1914 :type _host_index: int, optional 1915 :return: Returns the result object. 1916 """ # noqa: E501 1917 1918 _param = self._enterprise_dataclassification_team_settings_set_serialize( 1919 org_id=org_id, 1920 team_id=team_id, 1921 update_team_settings_request=update_team_settings_request, 1922 _request_auth=_request_auth, 1923 _content_type=_content_type, 1924 _headers=_headers, 1925 _host_index=_host_index, 1926 ) 1927 1928 _response_types_map: Dict[str, Optional[str]] = { 1929 "200": "DataClassificationTeamSettings", 1930 "400": None, 1931 "401": None, 1932 "403": None, 1933 "404": None, 1934 "429": None, 1935 } 1936 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1937 response_data.read() 1938 return self.api_client.response_deserialize( 1939 response_data=response_data, 1940 response_types_map=_response_types_map, 1941 ).data 1942 1943 def _enterprise_dataclassification_team_settings_set_serialize( 1944 self, 1945 org_id, 1946 team_id, 1947 update_team_settings_request, 1948 _request_auth, 1949 _content_type, 1950 _headers, 1951 _host_index, 1952 ) -> RequestSerialized: 1953 1954 _host = None 1955 1956 _collection_formats: Dict[str, str] = {} 1957 1958 _path_params: Dict[str, str] = {} 1959 _query_params: List[Tuple[str, str]] = [] 1960 _header_params: Dict[str, Optional[str]] = _headers or {} 1961 _form_params: List[Tuple[str, str]] = [] 1962 _files: Dict[str, str] = {} 1963 _body_params: Optional[bytes] = None 1964 1965 # process the path parameters 1966 if org_id is not None: 1967 _path_params["org_id"] = org_id 1968 if team_id is not None: 1969 _path_params["team_id"] = team_id 1970 # process the query parameters 1971 # process the header parameters 1972 # process the form parameters 1973 # process the body parameter 1974 if update_team_settings_request is not None: 1975 _body_params = update_team_settings_request 1976 1977 # set the HTTP header `Accept` 1978 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1979 1980 # set the HTTP header `Content-Type` 1981 if _content_type: 1982 _header_params["Content-Type"] = _content_type 1983 else: 1984 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1985 if _default_content_type is not None: 1986 _header_params["Content-Type"] = _default_content_type 1987 1988 # authentication setting 1989 _auth_settings: List[str] = [] 1990 1991 return self.api_client.param_serialize( 1992 method="PATCH", 1993 resource_path="/v2/orgs/{org_id}/teams/{team_id}/data-classification-settings", 1994 path_params=_path_params, 1995 query_params=_query_params, 1996 header_params=_header_params, 1997 body=_body_params, 1998 post_params=_form_params, 1999 files=_files, 2000 auth_settings=_auth_settings, 2001 collection_formats=_collection_formats, 2002 _host=_host, 2003 _request_auth=_request_auth, 2004 ) 2005 2006 @validate_call 2007 def create_items( 2008 self, 2009 board_id: Annotated[ 2010 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2011 ], 2012 item_create: Annotated[List[ItemCreate], Field(min_length=1, max_length=20)], 2013 _request_timeout: Union[ 2014 None, 2015 Annotated[StrictFloat, Field(gt=0)], 2016 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2017 ] = None, 2018 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2019 _content_type: Optional[StrictStr] = None, 2020 _headers: Optional[Dict[StrictStr, Any]] = None, 2021 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2022 ) -> Items: 2023 """Create items in bulk 2024 2025 Adds different types of items to a board. You can add up to 20 items of the same or different type per create call. For example, you can create 3 shape items, 4 card items, and 5 sticky notes in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. <br/><br>To try out this API in our documentation:<br/><br>1. In the **BODY PARAMS** section, scroll down until you see **ADD OBJECT** (Figure 1).<br><br><img alt=“add src=\"https://files.readme.io/570dac1-small-add_object.png\"><br>Figure 1. Add object user interface in readme<br><br>2. Click **ADD OBJECT**, and then select or enter the appropriate values for parameters of the item that you want to add.<br><br>3. Repeat steps 1 and 2 for each item that you want to add.<br> <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item. For example, if you want to create one sticky note, one card, and one shape item in one call, the rate limiting applicable will be 300 credits. This is because create item calls take Level 2 rate limiting of 100 credits each, 100 for sticky note, 100 for card, and 100 for shape item. 2026 2027 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2028 :type board_id: str 2029 :param item_create: (required) 2030 :type item_create: List[ItemCreate] 2031 :param _request_timeout: timeout setting for this request. If one 2032 number provided, it will be total request 2033 timeout. It can also be a pair (tuple) of 2034 (connection, read) timeouts. 2035 :type _request_timeout: int, tuple(int, int), optional 2036 :param _request_auth: set to override the auth_settings for an a single 2037 request; this effectively ignores the 2038 authentication in the spec for a single request. 2039 :type _request_auth: dict, optional 2040 :param _content_type: force content-type for the request. 2041 :type _content_type: str, Optional 2042 :param _headers: set to override the headers for a single 2043 request; this effectively ignores the headers 2044 in the spec for a single request. 2045 :type _headers: dict, optional 2046 :param _host_index: set to override the host_index for a single 2047 request; this effectively ignores the host_index 2048 in the spec for a single request. 2049 :type _host_index: int, optional 2050 :return: Returns the result object. 2051 """ # noqa: E501 2052 2053 _param = self._create_items_serialize( 2054 board_id=board_id, 2055 item_create=item_create, 2056 _request_auth=_request_auth, 2057 _content_type=_content_type, 2058 _headers=_headers, 2059 _host_index=_host_index, 2060 ) 2061 2062 _response_types_map: Dict[str, Optional[str]] = { 2063 "201": "Items", 2064 "400": "BulkOperationError", 2065 "429": "Error", 2066 } 2067 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2068 response_data.read() 2069 return self.api_client.response_deserialize( 2070 response_data=response_data, 2071 response_types_map=_response_types_map, 2072 ).data 2073 2074 def _create_items_serialize( 2075 self, 2076 board_id, 2077 item_create, 2078 _request_auth, 2079 _content_type, 2080 _headers, 2081 _host_index, 2082 ) -> RequestSerialized: 2083 2084 _host = None 2085 2086 _collection_formats: Dict[str, str] = { 2087 "ItemCreate": "", 2088 } 2089 2090 _path_params: Dict[str, str] = {} 2091 _query_params: List[Tuple[str, str]] = [] 2092 _header_params: Dict[str, Optional[str]] = _headers or {} 2093 _form_params: List[Tuple[str, str]] = [] 2094 _files: Dict[str, str] = {} 2095 _body_params: Optional[bytes] = None 2096 2097 # process the path parameters 2098 if board_id is not None: 2099 _path_params["board_id"] = board_id 2100 # process the query parameters 2101 # process the header parameters 2102 # process the form parameters 2103 # process the body parameter 2104 if item_create is not None: 2105 _body_params = item_create 2106 2107 # set the HTTP header `Accept` 2108 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2109 2110 # set the HTTP header `Content-Type` 2111 if _content_type: 2112 _header_params["Content-Type"] = _content_type 2113 else: 2114 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 2115 if _default_content_type is not None: 2116 _header_params["Content-Type"] = _default_content_type 2117 2118 # authentication setting 2119 _auth_settings: List[str] = [] 2120 2121 return self.api_client.param_serialize( 2122 method="POST", 2123 resource_path="/v2/boards/{board_id}/items/bulk", 2124 path_params=_path_params, 2125 query_params=_query_params, 2126 header_params=_header_params, 2127 body=_body_params, 2128 post_params=_form_params, 2129 files=_files, 2130 auth_settings=_auth_settings, 2131 collection_formats=_collection_formats, 2132 _host=_host, 2133 _request_auth=_request_auth, 2134 ) 2135 2136 @validate_call 2137 def create_items_in_bulk_using_file_from_device( 2138 self, 2139 board_id: Annotated[ 2140 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2141 ], 2142 data: Annotated[ 2143 Union[StrictBytes, StrictStr], 2144 Field( 2145 description="JSON file containing bulk data, where each object represents an item to be created. For details, see [JSON file example](https://developers.miro.com/reference/json-data-example)." 2146 ), 2147 ], 2148 resources: Annotated[ 2149 List[Union[StrictBytes, StrictStr]], 2150 Field(description="Array of items to create (PDFs, images, etc.). Maximum of 20 items."), 2151 ], 2152 _request_timeout: Union[ 2153 None, 2154 Annotated[StrictFloat, Field(gt=0)], 2155 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2156 ] = None, 2157 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2158 _content_type: Optional[StrictStr] = None, 2159 _headers: Optional[Dict[StrictStr, Any]] = None, 2160 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2161 ) -> Items: 2162 """Create items in bulk using file from device 2163 2164 Adds different types of items to a board using files from a device. You can add up to 20 items of the same or different type per create call. For example, you can create 5 document items and 5 images in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. To try out this API in our documentation: 1. In the **BODY PARAMS** section, select **ADD FILE**, and then upload a local file. Repeat for each item that you want to add. 2. Upload a JSON file that contains the bulk data for the items you want to create. <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item<br/> 2165 2166 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2167 :type board_id: str 2168 :param data: JSON file containing bulk data, where each object represents an item to be created. For details, see [JSON file example](https://developers.miro.com/reference/json-data-example). (required) 2169 :type data: bytearray 2170 :param resources: Array of items to create (PDFs, images, etc.). Maximum of 20 items. (required) 2171 :type resources: List[bytearray] 2172 :param _request_timeout: timeout setting for this request. If one 2173 number provided, it will be total request 2174 timeout. It can also be a pair (tuple) of 2175 (connection, read) timeouts. 2176 :type _request_timeout: int, tuple(int, int), optional 2177 :param _request_auth: set to override the auth_settings for an a single 2178 request; this effectively ignores the 2179 authentication in the spec for a single request. 2180 :type _request_auth: dict, optional 2181 :param _content_type: force content-type for the request. 2182 :type _content_type: str, Optional 2183 :param _headers: set to override the headers for a single 2184 request; this effectively ignores the headers 2185 in the spec for a single request. 2186 :type _headers: dict, optional 2187 :param _host_index: set to override the host_index for a single 2188 request; this effectively ignores the host_index 2189 in the spec for a single request. 2190 :type _host_index: int, optional 2191 :return: Returns the result object. 2192 """ # noqa: E501 2193 2194 _param = self._create_items_in_bulk_using_file_from_device_serialize( 2195 board_id=board_id, 2196 data=data, 2197 resources=resources, 2198 _request_auth=_request_auth, 2199 _content_type=_content_type, 2200 _headers=_headers, 2201 _host_index=_host_index, 2202 ) 2203 2204 _response_types_map: Dict[str, Optional[str]] = { 2205 "201": "Items", 2206 } 2207 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2208 response_data.read() 2209 return self.api_client.response_deserialize( 2210 response_data=response_data, 2211 response_types_map=_response_types_map, 2212 ).data 2213 2214 def _create_items_in_bulk_using_file_from_device_serialize( 2215 self, 2216 board_id, 2217 data, 2218 resources, 2219 _request_auth, 2220 _content_type, 2221 _headers, 2222 _host_index, 2223 ) -> RequestSerialized: 2224 2225 _host = None 2226 2227 _collection_formats: Dict[str, str] = { 2228 "resources": "csv", 2229 } 2230 2231 _path_params: Dict[str, str] = {} 2232 _query_params: List[Tuple[str, str]] = [] 2233 _header_params: Dict[str, Optional[str]] = _headers or {} 2234 _form_params: List[Tuple[str, str]] = [] 2235 _files: Dict[str, str] = {} 2236 _body_params: Optional[bytes] = None 2237 2238 # process the path parameters 2239 if board_id is not None: 2240 _path_params["board_id"] = board_id 2241 # process the query parameters 2242 # process the header parameters 2243 # process the form parameters 2244 if data is not None: 2245 _files["data"] = data 2246 if resources is not None: 2247 _files["resources"] = resources 2248 # process the body parameter 2249 2250 # set the HTTP header `Accept` 2251 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2252 2253 # set the HTTP header `Content-Type` 2254 if _content_type: 2255 _header_params["Content-Type"] = _content_type 2256 else: 2257 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 2258 if _default_content_type is not None: 2259 _header_params["Content-Type"] = _default_content_type 2260 2261 # authentication setting 2262 _auth_settings: List[str] = [] 2263 2264 return self.api_client.param_serialize( 2265 method="POST", 2266 resource_path="/v2/boards/{board_id_Platformcreateitemsinbulkusingfilefromdevice}/items/bulk", 2267 path_params=_path_params, 2268 query_params=_query_params, 2269 header_params=_header_params, 2270 body=_body_params, 2271 post_params=_form_params, 2272 files=_files, 2273 auth_settings=_auth_settings, 2274 collection_formats=_collection_formats, 2275 _host=_host, 2276 _request_auth=_request_auth, 2277 ) 2278 2279 @validate_call 2280 def create_shape_item_flowchart( 2281 self, 2282 board_id: Annotated[ 2283 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2284 ], 2285 shape_create_request: ShapeCreateRequest, 2286 _request_timeout: Union[ 2287 None, 2288 Annotated[StrictFloat, Field(gt=0)], 2289 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2290 ] = None, 2291 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2292 _content_type: Optional[StrictStr] = None, 2293 _headers: Optional[Dict[StrictStr, Any]] = None, 2294 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2295 ) -> ShapeItem: 2296 """Create shape item 2297 2298 Adds a flowchart shape item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2299 2300 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2301 :type board_id: str 2302 :param shape_create_request: (required) 2303 :type shape_create_request: ShapeCreateRequest 2304 :param _request_timeout: timeout setting for this request. If one 2305 number provided, it will be total request 2306 timeout. It can also be a pair (tuple) of 2307 (connection, read) timeouts. 2308 :type _request_timeout: int, tuple(int, int), optional 2309 :param _request_auth: set to override the auth_settings for an a single 2310 request; this effectively ignores the 2311 authentication in the spec for a single request. 2312 :type _request_auth: dict, optional 2313 :param _content_type: force content-type for the request. 2314 :type _content_type: str, Optional 2315 :param _headers: set to override the headers for a single 2316 request; this effectively ignores the headers 2317 in the spec for a single request. 2318 :type _headers: dict, optional 2319 :param _host_index: set to override the host_index for a single 2320 request; this effectively ignores the host_index 2321 in the spec for a single request. 2322 :type _host_index: int, optional 2323 :return: Returns the result object. 2324 """ # noqa: E501 2325 2326 _param = self._create_shape_item_flowchart_serialize( 2327 board_id=board_id, 2328 shape_create_request=shape_create_request, 2329 _request_auth=_request_auth, 2330 _content_type=_content_type, 2331 _headers=_headers, 2332 _host_index=_host_index, 2333 ) 2334 2335 _response_types_map: Dict[str, Optional[str]] = { 2336 "201": "ShapeItem", 2337 "400": "CreateFrameItem400Response", 2338 "404": "CreateFrameItem400Response", 2339 "429": "CreateFrameItem400Response", 2340 } 2341 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2342 response_data.read() 2343 return self.api_client.response_deserialize( 2344 response_data=response_data, 2345 response_types_map=_response_types_map, 2346 ).data 2347 2348 def _create_shape_item_flowchart_serialize( 2349 self, 2350 board_id, 2351 shape_create_request, 2352 _request_auth, 2353 _content_type, 2354 _headers, 2355 _host_index, 2356 ) -> RequestSerialized: 2357 2358 _host = None 2359 2360 _collection_formats: Dict[str, str] = {} 2361 2362 _path_params: Dict[str, str] = {} 2363 _query_params: List[Tuple[str, str]] = [] 2364 _header_params: Dict[str, Optional[str]] = _headers or {} 2365 _form_params: List[Tuple[str, str]] = [] 2366 _files: Dict[str, str] = {} 2367 _body_params: Optional[bytes] = None 2368 2369 # process the path parameters 2370 if board_id is not None: 2371 _path_params["board_id"] = board_id 2372 # process the query parameters 2373 # process the header parameters 2374 # process the form parameters 2375 # process the body parameter 2376 if shape_create_request is not None: 2377 _body_params = shape_create_request 2378 2379 # set the HTTP header `Accept` 2380 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2381 2382 # set the HTTP header `Content-Type` 2383 if _content_type: 2384 _header_params["Content-Type"] = _content_type 2385 else: 2386 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 2387 if _default_content_type is not None: 2388 _header_params["Content-Type"] = _default_content_type 2389 2390 # authentication setting 2391 _auth_settings: List[str] = [] 2392 2393 return self.api_client.param_serialize( 2394 method="POST", 2395 resource_path="/v2-experimental/boards/{board_id}/shapes", 2396 path_params=_path_params, 2397 query_params=_query_params, 2398 header_params=_header_params, 2399 body=_body_params, 2400 post_params=_form_params, 2401 files=_files, 2402 auth_settings=_auth_settings, 2403 collection_formats=_collection_formats, 2404 _host=_host, 2405 _request_auth=_request_auth, 2406 ) 2407 2408 @validate_call 2409 def delete_shape_item_flowchart( 2410 self, 2411 board_id: Annotated[ 2412 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 2413 ], 2414 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 2415 _request_timeout: Union[ 2416 None, 2417 Annotated[StrictFloat, Field(gt=0)], 2418 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2419 ] = None, 2420 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2421 _content_type: Optional[StrictStr] = None, 2422 _headers: Optional[Dict[StrictStr, Any]] = None, 2423 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2424 ) -> object: 2425 """Delete shape item 2426 2427 Deletes a flowchart shape item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 2428 2429 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 2430 :type board_id: str 2431 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 2432 :type item_id: str 2433 :param _request_timeout: timeout setting for this request. If one 2434 number provided, it will be total request 2435 timeout. It can also be a pair (tuple) of 2436 (connection, read) timeouts. 2437 :type _request_timeout: int, tuple(int, int), optional 2438 :param _request_auth: set to override the auth_settings for an a single 2439 request; this effectively ignores the 2440 authentication in the spec for a single request. 2441 :type _request_auth: dict, optional 2442 :param _content_type: force content-type for the request. 2443 :type _content_type: str, Optional 2444 :param _headers: set to override the headers for a single 2445 request; this effectively ignores the headers 2446 in the spec for a single request. 2447 :type _headers: dict, optional 2448 :param _host_index: set to override the host_index for a single 2449 request; this effectively ignores the host_index 2450 in the spec for a single request. 2451 :type _host_index: int, optional 2452 :return: Returns the result object. 2453 """ # noqa: E501 2454 2455 _param = self._delete_shape_item_flowchart_serialize( 2456 board_id=board_id, 2457 item_id=item_id, 2458 _request_auth=_request_auth, 2459 _content_type=_content_type, 2460 _headers=_headers, 2461 _host_index=_host_index, 2462 ) 2463 2464 _response_types_map: Dict[str, Optional[str]] = { 2465 "204": "object", 2466 "400": "CreateFrameItem400Response", 2467 "404": "CreateFrameItem400Response", 2468 "429": "CreateFrameItem400Response", 2469 } 2470 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2471 response_data.read() 2472 return self.api_client.response_deserialize( 2473 response_data=response_data, 2474 response_types_map=_response_types_map, 2475 ).data 2476 2477 def _delete_shape_item_flowchart_serialize( 2478 self, 2479 board_id, 2480 item_id, 2481 _request_auth, 2482 _content_type, 2483 _headers, 2484 _host_index, 2485 ) -> RequestSerialized: 2486 2487 _host = None 2488 2489 _collection_formats: Dict[str, str] = {} 2490 2491 _path_params: Dict[str, str] = {} 2492 _query_params: List[Tuple[str, str]] = [] 2493 _header_params: Dict[str, Optional[str]] = _headers or {} 2494 _form_params: List[Tuple[str, str]] = [] 2495 _files: Dict[str, str] = {} 2496 _body_params: Optional[bytes] = None 2497 2498 # process the path parameters 2499 if board_id is not None: 2500 _path_params["board_id"] = board_id 2501 if item_id is not None: 2502 _path_params["item_id"] = item_id 2503 # process the query parameters 2504 # process the header parameters 2505 # process the form parameters 2506 # process the body parameter 2507 2508 # set the HTTP header `Accept` 2509 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2510 2511 # authentication setting 2512 _auth_settings: List[str] = [] 2513 2514 return self.api_client.param_serialize( 2515 method="DELETE", 2516 resource_path="/v2-experimental/boards/{board_id}/shapes/{item_id}", 2517 path_params=_path_params, 2518 query_params=_query_params, 2519 header_params=_header_params, 2520 body=_body_params, 2521 post_params=_form_params, 2522 files=_files, 2523 auth_settings=_auth_settings, 2524 collection_formats=_collection_formats, 2525 _host=_host, 2526 _request_auth=_request_auth, 2527 ) 2528 2529 @validate_call 2530 def get_items_experimental( 2531 self, 2532 board_id: Annotated[ 2533 StrictStr, 2534 Field( 2535 description="Unique identifier (ID) of the board for which you want to retrieve the list of available items." 2536 ), 2537 ], 2538 limit: Optional[Annotated[str, Field(strict=True)]] = None, 2539 type: Optional[StrictStr] = None, 2540 cursor: Optional[StrictStr] = None, 2541 _request_timeout: Union[ 2542 None, 2543 Annotated[StrictFloat, Field(gt=0)], 2544 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2545 ] = None, 2546 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2547 _content_type: Optional[StrictStr] = None, 2548 _headers: Optional[Dict[StrictStr, Any]] = None, 2549 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2550 ) -> GenericItemCursorPaged: 2551 """Get items on board 2552 2553 Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2554 2555 :param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) 2556 :type board_id: str 2557 :param limit: 2558 :type limit: str 2559 :param type: 2560 :type type: str 2561 :param cursor: 2562 :type cursor: str 2563 :param _request_timeout: timeout setting for this request. If one 2564 number provided, it will be total request 2565 timeout. It can also be a pair (tuple) of 2566 (connection, read) timeouts. 2567 :type _request_timeout: int, tuple(int, int), optional 2568 :param _request_auth: set to override the auth_settings for an a single 2569 request; this effectively ignores the 2570 authentication in the spec for a single request. 2571 :type _request_auth: dict, optional 2572 :param _content_type: force content-type for the request. 2573 :type _content_type: str, Optional 2574 :param _headers: set to override the headers for a single 2575 request; this effectively ignores the headers 2576 in the spec for a single request. 2577 :type _headers: dict, optional 2578 :param _host_index: set to override the host_index for a single 2579 request; this effectively ignores the host_index 2580 in the spec for a single request. 2581 :type _host_index: int, optional 2582 :return: Returns the result object. 2583 """ # noqa: E501 2584 2585 _param = self._get_items_experimental_serialize( 2586 board_id=board_id, 2587 limit=limit, 2588 type=type, 2589 cursor=cursor, 2590 _request_auth=_request_auth, 2591 _content_type=_content_type, 2592 _headers=_headers, 2593 _host_index=_host_index, 2594 ) 2595 2596 _response_types_map: Dict[str, Optional[str]] = { 2597 "200": "GenericItemCursorPaged", 2598 "400": "CreateFrameItem400Response", 2599 "404": "CreateFrameItem400Response", 2600 "429": "CreateFrameItem400Response", 2601 } 2602 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2603 response_data.read() 2604 return self.api_client.response_deserialize( 2605 response_data=response_data, 2606 response_types_map=_response_types_map, 2607 ).data 2608 2609 def _get_items_experimental_serialize( 2610 self, 2611 board_id, 2612 limit, 2613 type, 2614 cursor, 2615 _request_auth, 2616 _content_type, 2617 _headers, 2618 _host_index, 2619 ) -> RequestSerialized: 2620 2621 _host = None 2622 2623 _collection_formats: Dict[str, str] = {} 2624 2625 _path_params: Dict[str, str] = {} 2626 _query_params: List[Tuple[str, str]] = [] 2627 _header_params: Dict[str, Optional[str]] = _headers or {} 2628 _form_params: List[Tuple[str, str]] = [] 2629 _files: Dict[str, str] = {} 2630 _body_params: Optional[bytes] = None 2631 2632 # process the path parameters 2633 if board_id is not None: 2634 _path_params["board_id"] = board_id 2635 # process the query parameters 2636 if limit is not None: 2637 2638 _query_params.append(("limit", limit)) 2639 2640 if type is not None: 2641 2642 _query_params.append(("type", type)) 2643 2644 if cursor is not None: 2645 2646 _query_params.append(("cursor", cursor)) 2647 2648 # process the header parameters 2649 # process the form parameters 2650 # process the body parameter 2651 2652 # set the HTTP header `Accept` 2653 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2654 2655 # authentication setting 2656 _auth_settings: List[str] = [] 2657 2658 return self.api_client.param_serialize( 2659 method="GET", 2660 resource_path="/v2-experimental/boards/{board_id}/items", 2661 path_params=_path_params, 2662 query_params=_query_params, 2663 header_params=_header_params, 2664 body=_body_params, 2665 post_params=_form_params, 2666 files=_files, 2667 auth_settings=_auth_settings, 2668 collection_formats=_collection_formats, 2669 _host=_host, 2670 _request_auth=_request_auth, 2671 ) 2672 2673 @validate_call 2674 def get_shape_item_flowchart( 2675 self, 2676 board_id: Annotated[ 2677 StrictStr, 2678 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 2679 ], 2680 item_id: Annotated[ 2681 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 2682 ], 2683 _request_timeout: Union[ 2684 None, 2685 Annotated[StrictFloat, Field(gt=0)], 2686 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2687 ] = None, 2688 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2689 _content_type: Optional[StrictStr] = None, 2690 _headers: Optional[Dict[StrictStr, Any]] = None, 2691 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2692 ) -> ShapeItem: 2693 """Get shape item 2694 2695 Retrieves information for a specific shape item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 2696 2697 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 2698 :type board_id: str 2699 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 2700 :type item_id: str 2701 :param _request_timeout: timeout setting for this request. If one 2702 number provided, it will be total request 2703 timeout. It can also be a pair (tuple) of 2704 (connection, read) timeouts. 2705 :type _request_timeout: int, tuple(int, int), optional 2706 :param _request_auth: set to override the auth_settings for an a single 2707 request; this effectively ignores the 2708 authentication in the spec for a single request. 2709 :type _request_auth: dict, optional 2710 :param _content_type: force content-type for the request. 2711 :type _content_type: str, Optional 2712 :param _headers: set to override the headers for a single 2713 request; this effectively ignores the headers 2714 in the spec for a single request. 2715 :type _headers: dict, optional 2716 :param _host_index: set to override the host_index for a single 2717 request; this effectively ignores the host_index 2718 in the spec for a single request. 2719 :type _host_index: int, optional 2720 :return: Returns the result object. 2721 """ # noqa: E501 2722 2723 _param = self._get_shape_item_flowchart_serialize( 2724 board_id=board_id, 2725 item_id=item_id, 2726 _request_auth=_request_auth, 2727 _content_type=_content_type, 2728 _headers=_headers, 2729 _host_index=_host_index, 2730 ) 2731 2732 _response_types_map: Dict[str, Optional[str]] = { 2733 "200": "ShapeItem", 2734 "400": "CreateFrameItem400Response", 2735 "404": "CreateFrameItem400Response", 2736 "429": "CreateFrameItem400Response", 2737 } 2738 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2739 response_data.read() 2740 return self.api_client.response_deserialize( 2741 response_data=response_data, 2742 response_types_map=_response_types_map, 2743 ).data 2744 2745 def _get_shape_item_flowchart_serialize( 2746 self, 2747 board_id, 2748 item_id, 2749 _request_auth, 2750 _content_type, 2751 _headers, 2752 _host_index, 2753 ) -> RequestSerialized: 2754 2755 _host = None 2756 2757 _collection_formats: Dict[str, str] = {} 2758 2759 _path_params: Dict[str, str] = {} 2760 _query_params: List[Tuple[str, str]] = [] 2761 _header_params: Dict[str, Optional[str]] = _headers or {} 2762 _form_params: List[Tuple[str, str]] = [] 2763 _files: Dict[str, str] = {} 2764 _body_params: Optional[bytes] = None 2765 2766 # process the path parameters 2767 if board_id is not None: 2768 _path_params["board_id"] = board_id 2769 if item_id is not None: 2770 _path_params["item_id"] = item_id 2771 # process the query parameters 2772 # process the header parameters 2773 # process the form parameters 2774 # process the body parameter 2775 2776 # set the HTTP header `Accept` 2777 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2778 2779 # authentication setting 2780 _auth_settings: List[str] = [] 2781 2782 return self.api_client.param_serialize( 2783 method="GET", 2784 resource_path="/v2-experimental/boards/{board_id}/shapes/{item_id}", 2785 path_params=_path_params, 2786 query_params=_query_params, 2787 header_params=_header_params, 2788 body=_body_params, 2789 post_params=_form_params, 2790 files=_files, 2791 auth_settings=_auth_settings, 2792 collection_formats=_collection_formats, 2793 _host=_host, 2794 _request_auth=_request_auth, 2795 ) 2796 2797 @validate_call 2798 def get_specific_item_experimental( 2799 self, 2800 board_id: Annotated[ 2801 StrictStr, 2802 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 2803 ], 2804 item_id: Annotated[ 2805 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 2806 ], 2807 _request_timeout: Union[ 2808 None, 2809 Annotated[StrictFloat, Field(gt=0)], 2810 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2811 ] = None, 2812 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2813 _content_type: Optional[StrictStr] = None, 2814 _headers: Optional[Dict[StrictStr, Any]] = None, 2815 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2816 ) -> GenericItem: 2817 """Get specific item on board 2818 2819 Retrieves information for a specific item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 2820 2821 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 2822 :type board_id: str 2823 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 2824 :type item_id: str 2825 :param _request_timeout: timeout setting for this request. If one 2826 number provided, it will be total request 2827 timeout. It can also be a pair (tuple) of 2828 (connection, read) timeouts. 2829 :type _request_timeout: int, tuple(int, int), optional 2830 :param _request_auth: set to override the auth_settings for an a single 2831 request; this effectively ignores the 2832 authentication in the spec for a single request. 2833 :type _request_auth: dict, optional 2834 :param _content_type: force content-type for the request. 2835 :type _content_type: str, Optional 2836 :param _headers: set to override the headers for a single 2837 request; this effectively ignores the headers 2838 in the spec for a single request. 2839 :type _headers: dict, optional 2840 :param _host_index: set to override the host_index for a single 2841 request; this effectively ignores the host_index 2842 in the spec for a single request. 2843 :type _host_index: int, optional 2844 :return: Returns the result object. 2845 """ # noqa: E501 2846 2847 _param = self._get_specific_item_experimental_serialize( 2848 board_id=board_id, 2849 item_id=item_id, 2850 _request_auth=_request_auth, 2851 _content_type=_content_type, 2852 _headers=_headers, 2853 _host_index=_host_index, 2854 ) 2855 2856 _response_types_map: Dict[str, Optional[str]] = { 2857 "200": "GenericItem", 2858 "400": "CreateFrameItem400Response", 2859 "404": "CreateFrameItem400Response", 2860 "429": "CreateFrameItem400Response", 2861 } 2862 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2863 response_data.read() 2864 return self.api_client.response_deserialize( 2865 response_data=response_data, 2866 response_types_map=_response_types_map, 2867 ).data 2868 2869 def _get_specific_item_experimental_serialize( 2870 self, 2871 board_id, 2872 item_id, 2873 _request_auth, 2874 _content_type, 2875 _headers, 2876 _host_index, 2877 ) -> RequestSerialized: 2878 2879 _host = None 2880 2881 _collection_formats: Dict[str, str] = {} 2882 2883 _path_params: Dict[str, str] = {} 2884 _query_params: List[Tuple[str, str]] = [] 2885 _header_params: Dict[str, Optional[str]] = _headers or {} 2886 _form_params: List[Tuple[str, str]] = [] 2887 _files: Dict[str, str] = {} 2888 _body_params: Optional[bytes] = None 2889 2890 # process the path parameters 2891 if board_id is not None: 2892 _path_params["board_id"] = board_id 2893 if item_id is not None: 2894 _path_params["item_id"] = item_id 2895 # process the query parameters 2896 # process the header parameters 2897 # process the form parameters 2898 # process the body parameter 2899 2900 # set the HTTP header `Accept` 2901 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2902 2903 # authentication setting 2904 _auth_settings: List[str] = [] 2905 2906 return self.api_client.param_serialize( 2907 method="GET", 2908 resource_path="/v2-experimental/boards/{board_id}/items/{item_id}", 2909 path_params=_path_params, 2910 query_params=_query_params, 2911 header_params=_header_params, 2912 body=_body_params, 2913 post_params=_form_params, 2914 files=_files, 2915 auth_settings=_auth_settings, 2916 collection_formats=_collection_formats, 2917 _host=_host, 2918 _request_auth=_request_auth, 2919 ) 2920 2921 @validate_call 2922 def update_shape_item_flowchart( 2923 self, 2924 board_id: Annotated[ 2925 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 2926 ], 2927 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 2928 shape_update_request: ShapeUpdateRequest, 2929 _request_timeout: Union[ 2930 None, 2931 Annotated[StrictFloat, Field(gt=0)], 2932 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2933 ] = None, 2934 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2935 _content_type: Optional[StrictStr] = None, 2936 _headers: Optional[Dict[StrictStr, Any]] = None, 2937 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2938 ) -> ShapeItem: 2939 """Update shape item 2940 2941 Updates a flowchart shape item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2942 2943 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 2944 :type board_id: str 2945 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 2946 :type item_id: str 2947 :param shape_update_request: (required) 2948 :type shape_update_request: ShapeUpdateRequest 2949 :param _request_timeout: timeout setting for this request. If one 2950 number provided, it will be total request 2951 timeout. It can also be a pair (tuple) of 2952 (connection, read) timeouts. 2953 :type _request_timeout: int, tuple(int, int), optional 2954 :param _request_auth: set to override the auth_settings for an a single 2955 request; this effectively ignores the 2956 authentication in the spec for a single request. 2957 :type _request_auth: dict, optional 2958 :param _content_type: force content-type for the request. 2959 :type _content_type: str, Optional 2960 :param _headers: set to override the headers for a single 2961 request; this effectively ignores the headers 2962 in the spec for a single request. 2963 :type _headers: dict, optional 2964 :param _host_index: set to override the host_index for a single 2965 request; this effectively ignores the host_index 2966 in the spec for a single request. 2967 :type _host_index: int, optional 2968 :return: Returns the result object. 2969 """ # noqa: E501 2970 2971 _param = self._update_shape_item_flowchart_serialize( 2972 board_id=board_id, 2973 item_id=item_id, 2974 shape_update_request=shape_update_request, 2975 _request_auth=_request_auth, 2976 _content_type=_content_type, 2977 _headers=_headers, 2978 _host_index=_host_index, 2979 ) 2980 2981 _response_types_map: Dict[str, Optional[str]] = { 2982 "200": "ShapeItem", 2983 "400": "CreateFrameItem400Response", 2984 "404": "CreateFrameItem400Response", 2985 "429": "CreateFrameItem400Response", 2986 } 2987 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2988 response_data.read() 2989 return self.api_client.response_deserialize( 2990 response_data=response_data, 2991 response_types_map=_response_types_map, 2992 ).data 2993 2994 def _update_shape_item_flowchart_serialize( 2995 self, 2996 board_id, 2997 item_id, 2998 shape_update_request, 2999 _request_auth, 3000 _content_type, 3001 _headers, 3002 _host_index, 3003 ) -> RequestSerialized: 3004 3005 _host = None 3006 3007 _collection_formats: Dict[str, str] = {} 3008 3009 _path_params: Dict[str, str] = {} 3010 _query_params: List[Tuple[str, str]] = [] 3011 _header_params: Dict[str, Optional[str]] = _headers or {} 3012 _form_params: List[Tuple[str, str]] = [] 3013 _files: Dict[str, str] = {} 3014 _body_params: Optional[bytes] = None 3015 3016 # process the path parameters 3017 if board_id is not None: 3018 _path_params["board_id"] = board_id 3019 if item_id is not None: 3020 _path_params["item_id"] = item_id 3021 # process the query parameters 3022 # process the header parameters 3023 # process the form parameters 3024 # process the body parameter 3025 if shape_update_request is not None: 3026 _body_params = shape_update_request 3027 3028 # set the HTTP header `Accept` 3029 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3030 3031 # set the HTTP header `Content-Type` 3032 if _content_type: 3033 _header_params["Content-Type"] = _content_type 3034 else: 3035 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 3036 if _default_content_type is not None: 3037 _header_params["Content-Type"] = _default_content_type 3038 3039 # authentication setting 3040 _auth_settings: List[str] = [] 3041 3042 return self.api_client.param_serialize( 3043 method="PATCH", 3044 resource_path="/v2-experimental/boards/{board_id}/shapes/{item_id}", 3045 path_params=_path_params, 3046 query_params=_query_params, 3047 header_params=_header_params, 3048 body=_body_params, 3049 post_params=_form_params, 3050 files=_files, 3051 auth_settings=_auth_settings, 3052 collection_formats=_collection_formats, 3053 _host=_host, 3054 _request_auth=_request_auth, 3055 ) 3056 3057 @validate_call 3058 def get_all_cases( 3059 self, 3060 limit: Annotated[ 3061 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3062 ], 3063 org_id: Annotated[ 3064 str, 3065 Field( 3066 strict=True, description="The ID of the organization for which you want to retrieve the list of cases." 3067 ), 3068 ], 3069 cursor: Annotated[ 3070 Optional[StrictStr], 3071 Field( 3072 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3073 ), 3074 ] = None, 3075 _request_timeout: Union[ 3076 None, 3077 Annotated[StrictFloat, Field(gt=0)], 3078 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3079 ] = None, 3080 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3081 _content_type: Optional[StrictStr] = None, 3082 _headers: Optional[Dict[StrictStr, Any]] = None, 3083 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3084 ) -> PaginatedCaseResponse: 3085 """Get all cases 3086 3087 Retrieves the list of eDiscovery cases in an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3088 3089 :param limit: The maximum number of items in the result list. (required) 3090 :type limit: int 3091 :param org_id: The ID of the organization for which you want to retrieve the list of cases. (required) 3092 :type org_id: str 3093 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3094 :type cursor: str 3095 :param _request_timeout: timeout setting for this request. If one 3096 number provided, it will be total request 3097 timeout. It can also be a pair (tuple) of 3098 (connection, read) timeouts. 3099 :type _request_timeout: int, tuple(int, int), optional 3100 :param _request_auth: set to override the auth_settings for an a single 3101 request; this effectively ignores the 3102 authentication in the spec for a single request. 3103 :type _request_auth: dict, optional 3104 :param _content_type: force content-type for the request. 3105 :type _content_type: str, Optional 3106 :param _headers: set to override the headers for a single 3107 request; this effectively ignores the headers 3108 in the spec for a single request. 3109 :type _headers: dict, optional 3110 :param _host_index: set to override the host_index for a single 3111 request; this effectively ignores the host_index 3112 in the spec for a single request. 3113 :type _host_index: int, optional 3114 :return: Returns the result object. 3115 """ # noqa: E501 3116 3117 _param = self._get_all_cases_serialize( 3118 limit=limit, 3119 org_id=org_id, 3120 cursor=cursor, 3121 _request_auth=_request_auth, 3122 _content_type=_content_type, 3123 _headers=_headers, 3124 _host_index=_host_index, 3125 ) 3126 3127 _response_types_map: Dict[str, Optional[str]] = { 3128 "200": "PaginatedCaseResponse", 3129 "400": None, 3130 "401": None, 3131 "403": None, 3132 "404": None, 3133 "429": None, 3134 } 3135 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3136 response_data.read() 3137 return self.api_client.response_deserialize( 3138 response_data=response_data, 3139 response_types_map=_response_types_map, 3140 ).data 3141 3142 def _get_all_cases_serialize( 3143 self, 3144 limit, 3145 org_id, 3146 cursor, 3147 _request_auth, 3148 _content_type, 3149 _headers, 3150 _host_index, 3151 ) -> RequestSerialized: 3152 3153 _host = None 3154 3155 _collection_formats: Dict[str, str] = {} 3156 3157 _path_params: Dict[str, str] = {} 3158 _query_params: List[Tuple[str, str]] = [] 3159 _header_params: Dict[str, Optional[str]] = _headers or {} 3160 _form_params: List[Tuple[str, str]] = [] 3161 _files: Dict[str, str] = {} 3162 _body_params: Optional[bytes] = None 3163 3164 # process the path parameters 3165 if org_id is not None: 3166 _path_params["org_id"] = org_id 3167 # process the query parameters 3168 if limit is not None: 3169 3170 _query_params.append(("limit", limit)) 3171 3172 if cursor is not None: 3173 3174 _query_params.append(("cursor", cursor)) 3175 3176 # process the header parameters 3177 # process the form parameters 3178 # process the body parameter 3179 3180 # set the HTTP header `Accept` 3181 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3182 3183 # authentication setting 3184 _auth_settings: List[str] = [] 3185 3186 return self.api_client.param_serialize( 3187 method="GET", 3188 resource_path="/v2/orgs/{org_id}/cases", 3189 path_params=_path_params, 3190 query_params=_query_params, 3191 header_params=_header_params, 3192 body=_body_params, 3193 post_params=_form_params, 3194 files=_files, 3195 auth_settings=_auth_settings, 3196 collection_formats=_collection_formats, 3197 _host=_host, 3198 _request_auth=_request_auth, 3199 ) 3200 3201 @validate_call 3202 def get_all_legal_holds( 3203 self, 3204 limit: Annotated[ 3205 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3206 ], 3207 org_id: Annotated[ 3208 str, 3209 Field( 3210 strict=True, 3211 description="The ID of the organization for which you want to retrieve the list of legal holds within a case.", 3212 ), 3213 ], 3214 case_id: Annotated[ 3215 str, 3216 Field( 3217 strict=True, description="The ID of the case for which you want to retrieve the list of legal holds." 3218 ), 3219 ], 3220 cursor: Annotated[ 3221 Optional[StrictStr], 3222 Field( 3223 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3224 ), 3225 ] = None, 3226 _request_timeout: Union[ 3227 None, 3228 Annotated[StrictFloat, Field(gt=0)], 3229 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3230 ] = None, 3231 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3232 _content_type: Optional[StrictStr] = None, 3233 _headers: Optional[Dict[StrictStr, Any]] = None, 3234 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3235 ) -> PaginatedLegalHoldResponse: 3236 """Get all legal holds within a case 3237 3238 Retrieves the list of all legal holds within a case for an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3239 3240 :param limit: The maximum number of items in the result list. (required) 3241 :type limit: int 3242 :param org_id: The ID of the organization for which you want to retrieve the list of legal holds within a case. (required) 3243 :type org_id: str 3244 :param case_id: The ID of the case for which you want to retrieve the list of legal holds. (required) 3245 :type case_id: str 3246 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3247 :type cursor: str 3248 :param _request_timeout: timeout setting for this request. If one 3249 number provided, it will be total request 3250 timeout. It can also be a pair (tuple) of 3251 (connection, read) timeouts. 3252 :type _request_timeout: int, tuple(int, int), optional 3253 :param _request_auth: set to override the auth_settings for an a single 3254 request; this effectively ignores the 3255 authentication in the spec for a single request. 3256 :type _request_auth: dict, optional 3257 :param _content_type: force content-type for the request. 3258 :type _content_type: str, Optional 3259 :param _headers: set to override the headers for a single 3260 request; this effectively ignores the headers 3261 in the spec for a single request. 3262 :type _headers: dict, optional 3263 :param _host_index: set to override the host_index for a single 3264 request; this effectively ignores the host_index 3265 in the spec for a single request. 3266 :type _host_index: int, optional 3267 :return: Returns the result object. 3268 """ # noqa: E501 3269 3270 _param = self._get_all_legal_holds_serialize( 3271 limit=limit, 3272 org_id=org_id, 3273 case_id=case_id, 3274 cursor=cursor, 3275 _request_auth=_request_auth, 3276 _content_type=_content_type, 3277 _headers=_headers, 3278 _host_index=_host_index, 3279 ) 3280 3281 _response_types_map: Dict[str, Optional[str]] = { 3282 "200": "PaginatedLegalHoldResponse", 3283 "400": None, 3284 "401": None, 3285 "403": None, 3286 "404": None, 3287 "429": None, 3288 } 3289 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3290 response_data.read() 3291 return self.api_client.response_deserialize( 3292 response_data=response_data, 3293 response_types_map=_response_types_map, 3294 ).data 3295 3296 def _get_all_legal_holds_serialize( 3297 self, 3298 limit, 3299 org_id, 3300 case_id, 3301 cursor, 3302 _request_auth, 3303 _content_type, 3304 _headers, 3305 _host_index, 3306 ) -> RequestSerialized: 3307 3308 _host = None 3309 3310 _collection_formats: Dict[str, str] = {} 3311 3312 _path_params: Dict[str, str] = {} 3313 _query_params: List[Tuple[str, str]] = [] 3314 _header_params: Dict[str, Optional[str]] = _headers or {} 3315 _form_params: List[Tuple[str, str]] = [] 3316 _files: Dict[str, str] = {} 3317 _body_params: Optional[bytes] = None 3318 3319 # process the path parameters 3320 if org_id is not None: 3321 _path_params["org_id"] = org_id 3322 if case_id is not None: 3323 _path_params["case_id"] = case_id 3324 # process the query parameters 3325 if limit is not None: 3326 3327 _query_params.append(("limit", limit)) 3328 3329 if cursor is not None: 3330 3331 _query_params.append(("cursor", cursor)) 3332 3333 # process the header parameters 3334 # process the form parameters 3335 # process the body parameter 3336 3337 # set the HTTP header `Accept` 3338 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3339 3340 # authentication setting 3341 _auth_settings: List[str] = [] 3342 3343 return self.api_client.param_serialize( 3344 method="GET", 3345 resource_path="/v2/orgs/{org_id}/cases/{case_id}/legal-holds", 3346 path_params=_path_params, 3347 query_params=_query_params, 3348 header_params=_header_params, 3349 body=_body_params, 3350 post_params=_form_params, 3351 files=_files, 3352 auth_settings=_auth_settings, 3353 collection_formats=_collection_formats, 3354 _host=_host, 3355 _request_auth=_request_auth, 3356 ) 3357 3358 @validate_call 3359 def get_case( 3360 self, 3361 org_id: Annotated[ 3362 str, 3363 Field( 3364 strict=True, 3365 description="The ID of the organization for which you want to retrieve the case information.", 3366 ), 3367 ], 3368 case_id: Annotated[str, Field(strict=True, description="The ID of the case you want to retrieve.")], 3369 _request_timeout: Union[ 3370 None, 3371 Annotated[StrictFloat, Field(gt=0)], 3372 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3373 ] = None, 3374 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3375 _content_type: Optional[StrictStr] = None, 3376 _headers: Optional[Dict[StrictStr, Any]] = None, 3377 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3378 ) -> CaseResponse: 3379 """Get case 3380 3381 Retrieves information about a case in an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3382 3383 :param org_id: The ID of the organization for which you want to retrieve the case information. (required) 3384 :type org_id: str 3385 :param case_id: The ID of the case you want to retrieve. (required) 3386 :type case_id: str 3387 :param _request_timeout: timeout setting for this request. If one 3388 number provided, it will be total request 3389 timeout. It can also be a pair (tuple) of 3390 (connection, read) timeouts. 3391 :type _request_timeout: int, tuple(int, int), optional 3392 :param _request_auth: set to override the auth_settings for an a single 3393 request; this effectively ignores the 3394 authentication in the spec for a single request. 3395 :type _request_auth: dict, optional 3396 :param _content_type: force content-type for the request. 3397 :type _content_type: str, Optional 3398 :param _headers: set to override the headers for a single 3399 request; this effectively ignores the headers 3400 in the spec for a single request. 3401 :type _headers: dict, optional 3402 :param _host_index: set to override the host_index for a single 3403 request; this effectively ignores the host_index 3404 in the spec for a single request. 3405 :type _host_index: int, optional 3406 :return: Returns the result object. 3407 """ # noqa: E501 3408 3409 _param = self._get_case_serialize( 3410 org_id=org_id, 3411 case_id=case_id, 3412 _request_auth=_request_auth, 3413 _content_type=_content_type, 3414 _headers=_headers, 3415 _host_index=_host_index, 3416 ) 3417 3418 _response_types_map: Dict[str, Optional[str]] = { 3419 "200": "CaseResponse", 3420 "400": None, 3421 "401": None, 3422 "403": None, 3423 "404": None, 3424 "429": None, 3425 } 3426 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3427 response_data.read() 3428 return self.api_client.response_deserialize( 3429 response_data=response_data, 3430 response_types_map=_response_types_map, 3431 ).data 3432 3433 def _get_case_serialize( 3434 self, 3435 org_id, 3436 case_id, 3437 _request_auth, 3438 _content_type, 3439 _headers, 3440 _host_index, 3441 ) -> RequestSerialized: 3442 3443 _host = None 3444 3445 _collection_formats: Dict[str, str] = {} 3446 3447 _path_params: Dict[str, str] = {} 3448 _query_params: List[Tuple[str, str]] = [] 3449 _header_params: Dict[str, Optional[str]] = _headers or {} 3450 _form_params: List[Tuple[str, str]] = [] 3451 _files: Dict[str, str] = {} 3452 _body_params: Optional[bytes] = None 3453 3454 # process the path parameters 3455 if org_id is not None: 3456 _path_params["org_id"] = org_id 3457 if case_id is not None: 3458 _path_params["case_id"] = case_id 3459 # process the query parameters 3460 # process the header parameters 3461 # process the form parameters 3462 # process the body parameter 3463 3464 # set the HTTP header `Accept` 3465 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3466 3467 # authentication setting 3468 _auth_settings: List[str] = [] 3469 3470 return self.api_client.param_serialize( 3471 method="GET", 3472 resource_path="/v2/orgs/{org_id}/cases/{case_id}", 3473 path_params=_path_params, 3474 query_params=_query_params, 3475 header_params=_header_params, 3476 body=_body_params, 3477 post_params=_form_params, 3478 files=_files, 3479 auth_settings=_auth_settings, 3480 collection_formats=_collection_formats, 3481 _host=_host, 3482 _request_auth=_request_auth, 3483 ) 3484 3485 @validate_call 3486 def get_legal_hold( 3487 self, 3488 org_id: Annotated[ 3489 str, 3490 Field( 3491 strict=True, 3492 description="The ID of the organization for which you want to retrieve the legal hold information.", 3493 ), 3494 ], 3495 case_id: Annotated[ 3496 str, 3497 Field( 3498 strict=True, description="The ID of the case for which you want to retrieve the legal hold information." 3499 ), 3500 ], 3501 legal_hold_id: Annotated[str, Field(strict=True, description="The ID of the legal hold you want to retrieve.")], 3502 _request_timeout: Union[ 3503 None, 3504 Annotated[StrictFloat, Field(gt=0)], 3505 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3506 ] = None, 3507 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3508 _content_type: Optional[StrictStr] = None, 3509 _headers: Optional[Dict[StrictStr, Any]] = None, 3510 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3511 ) -> LegalHoldResponse: 3512 """Get legal hold information 3513 3514 Retrieves information about a legal hold within a case for an organization. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3515 3516 :param org_id: The ID of the organization for which you want to retrieve the legal hold information. (required) 3517 :type org_id: str 3518 :param case_id: The ID of the case for which you want to retrieve the legal hold information. (required) 3519 :type case_id: str 3520 :param legal_hold_id: The ID of the legal hold you want to retrieve. (required) 3521 :type legal_hold_id: str 3522 :param _request_timeout: timeout setting for this request. If one 3523 number provided, it will be total request 3524 timeout. It can also be a pair (tuple) of 3525 (connection, read) timeouts. 3526 :type _request_timeout: int, tuple(int, int), optional 3527 :param _request_auth: set to override the auth_settings for an a single 3528 request; this effectively ignores the 3529 authentication in the spec for a single request. 3530 :type _request_auth: dict, optional 3531 :param _content_type: force content-type for the request. 3532 :type _content_type: str, Optional 3533 :param _headers: set to override the headers for a single 3534 request; this effectively ignores the headers 3535 in the spec for a single request. 3536 :type _headers: dict, optional 3537 :param _host_index: set to override the host_index for a single 3538 request; this effectively ignores the host_index 3539 in the spec for a single request. 3540 :type _host_index: int, optional 3541 :return: Returns the result object. 3542 """ # noqa: E501 3543 3544 _param = self._get_legal_hold_serialize( 3545 org_id=org_id, 3546 case_id=case_id, 3547 legal_hold_id=legal_hold_id, 3548 _request_auth=_request_auth, 3549 _content_type=_content_type, 3550 _headers=_headers, 3551 _host_index=_host_index, 3552 ) 3553 3554 _response_types_map: Dict[str, Optional[str]] = { 3555 "200": "LegalHoldResponse", 3556 "400": None, 3557 "401": None, 3558 "403": None, 3559 "404": None, 3560 "429": None, 3561 } 3562 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3563 response_data.read() 3564 return self.api_client.response_deserialize( 3565 response_data=response_data, 3566 response_types_map=_response_types_map, 3567 ).data 3568 3569 def _get_legal_hold_serialize( 3570 self, 3571 org_id, 3572 case_id, 3573 legal_hold_id, 3574 _request_auth, 3575 _content_type, 3576 _headers, 3577 _host_index, 3578 ) -> RequestSerialized: 3579 3580 _host = None 3581 3582 _collection_formats: Dict[str, str] = {} 3583 3584 _path_params: Dict[str, str] = {} 3585 _query_params: List[Tuple[str, str]] = [] 3586 _header_params: Dict[str, Optional[str]] = _headers or {} 3587 _form_params: List[Tuple[str, str]] = [] 3588 _files: Dict[str, str] = {} 3589 _body_params: Optional[bytes] = None 3590 3591 # process the path parameters 3592 if org_id is not None: 3593 _path_params["org_id"] = org_id 3594 if case_id is not None: 3595 _path_params["case_id"] = case_id 3596 if legal_hold_id is not None: 3597 _path_params["legal_hold_id"] = legal_hold_id 3598 # process the query parameters 3599 # process the header parameters 3600 # process the form parameters 3601 # process the body parameter 3602 3603 # set the HTTP header `Accept` 3604 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3605 3606 # authentication setting 3607 _auth_settings: List[str] = [] 3608 3609 return self.api_client.param_serialize( 3610 method="GET", 3611 resource_path="/v2/orgs/{org_id}/cases/{case_id}/legal-holds/{legal_hold_id}", 3612 path_params=_path_params, 3613 query_params=_query_params, 3614 header_params=_header_params, 3615 body=_body_params, 3616 post_params=_form_params, 3617 files=_files, 3618 auth_settings=_auth_settings, 3619 collection_formats=_collection_formats, 3620 _host=_host, 3621 _request_auth=_request_auth, 3622 ) 3623 3624 @validate_call 3625 def get_legal_hold_content_items( 3626 self, 3627 org_id: Annotated[ 3628 str, 3629 Field( 3630 strict=True, 3631 description="The ID of the organization for which you want to retrieve the list of content items under hold.", 3632 ), 3633 ], 3634 case_id: Annotated[ 3635 str, 3636 Field( 3637 strict=True, 3638 description="The ID of the case for which you want to retrieve the list of content items under hold.", 3639 ), 3640 ], 3641 legal_hold_id: Annotated[ 3642 str, 3643 Field( 3644 strict=True, 3645 description="The ID of the legal hold for which you want to retrieve the list of content items under hold.", 3646 ), 3647 ], 3648 limit: Annotated[ 3649 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3650 ], 3651 cursor: Annotated[ 3652 Optional[StrictStr], 3653 Field( 3654 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3655 ), 3656 ] = None, 3657 _request_timeout: Union[ 3658 None, 3659 Annotated[StrictFloat, Field(gt=0)], 3660 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3661 ] = None, 3662 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3663 _content_type: Optional[StrictStr] = None, 3664 _headers: Optional[Dict[StrictStr, Any]] = None, 3665 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3666 ) -> PaginatedLegalHoldContentItemsResponse: 3667 """Get content items under legal hold 3668 3669 Once a legal hold is in place you can review or explore the preserved Miro boards to ensure that all relevant data is intact and ready for legal proceedings or investigations. For more information, see our <a href=\"https://help.miro.com/hc/en-us/articles/22120628583570-Review-boards-under-legal-hold\" target=_blank>Help Center page on reviewing boards under legal hold</a>. <br><br>This API lists all content items under a specific legal hold in a case for an organization. Please verify that the legal hold is in 'ACTIVE' state to guarantee that the legal hold has finished processing the full list of content items under hold. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3670 3671 :param org_id: The ID of the organization for which you want to retrieve the list of content items under hold. (required) 3672 :type org_id: str 3673 :param case_id: The ID of the case for which you want to retrieve the list of content items under hold. (required) 3674 :type case_id: str 3675 :param legal_hold_id: The ID of the legal hold for which you want to retrieve the list of content items under hold. (required) 3676 :type legal_hold_id: str 3677 :param limit: The maximum number of items in the result list. (required) 3678 :type limit: int 3679 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3680 :type cursor: str 3681 :param _request_timeout: timeout setting for this request. If one 3682 number provided, it will be total request 3683 timeout. It can also be a pair (tuple) of 3684 (connection, read) timeouts. 3685 :type _request_timeout: int, tuple(int, int), optional 3686 :param _request_auth: set to override the auth_settings for an a single 3687 request; this effectively ignores the 3688 authentication in the spec for a single request. 3689 :type _request_auth: dict, optional 3690 :param _content_type: force content-type for the request. 3691 :type _content_type: str, Optional 3692 :param _headers: set to override the headers for a single 3693 request; this effectively ignores the headers 3694 in the spec for a single request. 3695 :type _headers: dict, optional 3696 :param _host_index: set to override the host_index for a single 3697 request; this effectively ignores the host_index 3698 in the spec for a single request. 3699 :type _host_index: int, optional 3700 :return: Returns the result object. 3701 """ # noqa: E501 3702 3703 _param = self._get_legal_hold_content_items_serialize( 3704 org_id=org_id, 3705 case_id=case_id, 3706 legal_hold_id=legal_hold_id, 3707 limit=limit, 3708 cursor=cursor, 3709 _request_auth=_request_auth, 3710 _content_type=_content_type, 3711 _headers=_headers, 3712 _host_index=_host_index, 3713 ) 3714 3715 _response_types_map: Dict[str, Optional[str]] = { 3716 "200": "PaginatedLegalHoldContentItemsResponse", 3717 "400": None, 3718 "401": None, 3719 "403": None, 3720 "404": None, 3721 "429": None, 3722 } 3723 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3724 response_data.read() 3725 return self.api_client.response_deserialize( 3726 response_data=response_data, 3727 response_types_map=_response_types_map, 3728 ).data 3729 3730 def _get_legal_hold_content_items_serialize( 3731 self, 3732 org_id, 3733 case_id, 3734 legal_hold_id, 3735 limit, 3736 cursor, 3737 _request_auth, 3738 _content_type, 3739 _headers, 3740 _host_index, 3741 ) -> RequestSerialized: 3742 3743 _host = None 3744 3745 _collection_formats: Dict[str, str] = {} 3746 3747 _path_params: Dict[str, str] = {} 3748 _query_params: List[Tuple[str, str]] = [] 3749 _header_params: Dict[str, Optional[str]] = _headers or {} 3750 _form_params: List[Tuple[str, str]] = [] 3751 _files: Dict[str, str] = {} 3752 _body_params: Optional[bytes] = None 3753 3754 # process the path parameters 3755 if org_id is not None: 3756 _path_params["org_id"] = org_id 3757 if case_id is not None: 3758 _path_params["case_id"] = case_id 3759 if legal_hold_id is not None: 3760 _path_params["legal_hold_id"] = legal_hold_id 3761 # process the query parameters 3762 if limit is not None: 3763 3764 _query_params.append(("limit", limit)) 3765 3766 if cursor is not None: 3767 3768 _query_params.append(("cursor", cursor)) 3769 3770 # process the header parameters 3771 # process the form parameters 3772 # process the body parameter 3773 3774 # set the HTTP header `Accept` 3775 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3776 3777 # authentication setting 3778 _auth_settings: List[str] = [] 3779 3780 return self.api_client.param_serialize( 3781 method="GET", 3782 resource_path="/v2/orgs/{org_id}/cases/{case_id}/legal-holds/{legal_hold_id}/content-items", 3783 path_params=_path_params, 3784 query_params=_query_params, 3785 header_params=_header_params, 3786 body=_body_params, 3787 post_params=_form_params, 3788 files=_files, 3789 auth_settings=_auth_settings, 3790 collection_formats=_collection_formats, 3791 _host=_host, 3792 _request_auth=_request_auth, 3793 ) 3794 3795 @validate_call 3796 def create_mindmap_nodes_experimental( 3797 self, 3798 board_id: Annotated[ 3799 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 3800 ], 3801 mindmap_create_request: MindmapCreateRequest, 3802 _request_timeout: Union[ 3803 None, 3804 Annotated[StrictFloat, Field(gt=0)], 3805 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3806 ] = None, 3807 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3808 _content_type: Optional[StrictStr] = None, 3809 _headers: Optional[Dict[StrictStr, Any]] = None, 3810 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3811 ) -> MindmapItem: 3812 """Create mind map node 3813 3814 Adds a mind map node to a board. A root node is the starting point of a mind map. A node that is created under a root node is a child node. For information on mind maps, use cases, mind map structure, and more, see the <a href=\"https://developers.miro.com/docs/mind-maps\" target=_blank>Mind Map Overview</a> page. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/><br/> <b>Known limitations on node placement: </b> Currently, the create API supports explicit positions for nodes. This means that users can only place nodes based on the x, y coordinates provided in the position parameters. If the position is not provided in the request, nodes default to coordinates x=0, y=0, effectively placing them at the center of the board. <br /><br /><b>Upcoming changes:</b> We understand the importance of flexibility in node placement. We are actively working on implementing changes to support positioning nodes relative to their parent node as well. This enhancement offers a more dynamic and intuitive mind mapping experience. <br /><br />Additionally, we are actively working on providing the update API, further enhancing the functionality of mind map APIs. 3815 3816 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 3817 :type board_id: str 3818 :param mindmap_create_request: (required) 3819 :type mindmap_create_request: MindmapCreateRequest 3820 :param _request_timeout: timeout setting for this request. If one 3821 number provided, it will be total request 3822 timeout. It can also be a pair (tuple) of 3823 (connection, read) timeouts. 3824 :type _request_timeout: int, tuple(int, int), optional 3825 :param _request_auth: set to override the auth_settings for an a single 3826 request; this effectively ignores the 3827 authentication in the spec for a single request. 3828 :type _request_auth: dict, optional 3829 :param _content_type: force content-type for the request. 3830 :type _content_type: str, Optional 3831 :param _headers: set to override the headers for a single 3832 request; this effectively ignores the headers 3833 in the spec for a single request. 3834 :type _headers: dict, optional 3835 :param _host_index: set to override the host_index for a single 3836 request; this effectively ignores the host_index 3837 in the spec for a single request. 3838 :type _host_index: int, optional 3839 :return: Returns the result object. 3840 """ # noqa: E501 3841 3842 _param = self._create_mindmap_nodes_experimental_serialize( 3843 board_id=board_id, 3844 mindmap_create_request=mindmap_create_request, 3845 _request_auth=_request_auth, 3846 _content_type=_content_type, 3847 _headers=_headers, 3848 _host_index=_host_index, 3849 ) 3850 3851 _response_types_map: Dict[str, Optional[str]] = { 3852 "201": "MindmapItem", 3853 "400": "CreateFrameItem400Response", 3854 "404": "CreateFrameItem400Response", 3855 "429": "CreateFrameItem400Response", 3856 } 3857 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3858 response_data.read() 3859 return self.api_client.response_deserialize( 3860 response_data=response_data, 3861 response_types_map=_response_types_map, 3862 ).data 3863 3864 def _create_mindmap_nodes_experimental_serialize( 3865 self, 3866 board_id, 3867 mindmap_create_request, 3868 _request_auth, 3869 _content_type, 3870 _headers, 3871 _host_index, 3872 ) -> RequestSerialized: 3873 3874 _host = None 3875 3876 _collection_formats: Dict[str, str] = {} 3877 3878 _path_params: Dict[str, str] = {} 3879 _query_params: List[Tuple[str, str]] = [] 3880 _header_params: Dict[str, Optional[str]] = _headers or {} 3881 _form_params: List[Tuple[str, str]] = [] 3882 _files: Dict[str, str] = {} 3883 _body_params: Optional[bytes] = None 3884 3885 # process the path parameters 3886 if board_id is not None: 3887 _path_params["board_id"] = board_id 3888 # process the query parameters 3889 # process the header parameters 3890 # process the form parameters 3891 # process the body parameter 3892 if mindmap_create_request is not None: 3893 _body_params = mindmap_create_request 3894 3895 # set the HTTP header `Accept` 3896 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3897 3898 # set the HTTP header `Content-Type` 3899 if _content_type: 3900 _header_params["Content-Type"] = _content_type 3901 else: 3902 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 3903 if _default_content_type is not None: 3904 _header_params["Content-Type"] = _default_content_type 3905 3906 # authentication setting 3907 _auth_settings: List[str] = [] 3908 3909 return self.api_client.param_serialize( 3910 method="POST", 3911 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes", 3912 path_params=_path_params, 3913 query_params=_query_params, 3914 header_params=_header_params, 3915 body=_body_params, 3916 post_params=_form_params, 3917 files=_files, 3918 auth_settings=_auth_settings, 3919 collection_formats=_collection_formats, 3920 _host=_host, 3921 _request_auth=_request_auth, 3922 ) 3923 3924 @validate_call 3925 def delete_mindmap_node_experimental( 3926 self, 3927 board_id: Annotated[ 3928 StrictStr, 3929 Field(description="Unique identifier (ID) of the board from which you want to delete the mind map node."), 3930 ], 3931 item_id: Annotated[ 3932 StrictStr, Field(description="Unique identifier (ID) of the mind map node that you want to delete.") 3933 ], 3934 _request_timeout: Union[ 3935 None, 3936 Annotated[StrictFloat, Field(gt=0)], 3937 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3938 ] = None, 3939 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3940 _content_type: Optional[StrictStr] = None, 3941 _headers: Optional[Dict[StrictStr, Any]] = None, 3942 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3943 ) -> object: 3944 """Delete mind map node 3945 3946 Deletes a mind map node item and its child nodes from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 3947 3948 :param board_id: Unique identifier (ID) of the board from which you want to delete the mind map node. (required) 3949 :type board_id: str 3950 :param item_id: Unique identifier (ID) of the mind map node that you want to delete. (required) 3951 :type item_id: str 3952 :param _request_timeout: timeout setting for this request. If one 3953 number provided, it will be total request 3954 timeout. It can also be a pair (tuple) of 3955 (connection, read) timeouts. 3956 :type _request_timeout: int, tuple(int, int), optional 3957 :param _request_auth: set to override the auth_settings for an a single 3958 request; this effectively ignores the 3959 authentication in the spec for a single request. 3960 :type _request_auth: dict, optional 3961 :param _content_type: force content-type for the request. 3962 :type _content_type: str, Optional 3963 :param _headers: set to override the headers for a single 3964 request; this effectively ignores the headers 3965 in the spec for a single request. 3966 :type _headers: dict, optional 3967 :param _host_index: set to override the host_index for a single 3968 request; this effectively ignores the host_index 3969 in the spec for a single request. 3970 :type _host_index: int, optional 3971 :return: Returns the result object. 3972 """ # noqa: E501 3973 3974 _param = self._delete_mindmap_node_experimental_serialize( 3975 board_id=board_id, 3976 item_id=item_id, 3977 _request_auth=_request_auth, 3978 _content_type=_content_type, 3979 _headers=_headers, 3980 _host_index=_host_index, 3981 ) 3982 3983 _response_types_map: Dict[str, Optional[str]] = { 3984 "204": "object", 3985 "400": "CreateFrameItem400Response", 3986 "404": "CreateFrameItem400Response", 3987 "429": "CreateFrameItem400Response", 3988 } 3989 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3990 response_data.read() 3991 return self.api_client.response_deserialize( 3992 response_data=response_data, 3993 response_types_map=_response_types_map, 3994 ).data 3995 3996 def _delete_mindmap_node_experimental_serialize( 3997 self, 3998 board_id, 3999 item_id, 4000 _request_auth, 4001 _content_type, 4002 _headers, 4003 _host_index, 4004 ) -> RequestSerialized: 4005 4006 _host = None 4007 4008 _collection_formats: Dict[str, str] = {} 4009 4010 _path_params: Dict[str, str] = {} 4011 _query_params: List[Tuple[str, str]] = [] 4012 _header_params: Dict[str, Optional[str]] = _headers or {} 4013 _form_params: List[Tuple[str, str]] = [] 4014 _files: Dict[str, str] = {} 4015 _body_params: Optional[bytes] = None 4016 4017 # process the path parameters 4018 if board_id is not None: 4019 _path_params["board_id"] = board_id 4020 if item_id is not None: 4021 _path_params["item_id"] = item_id 4022 # process the query parameters 4023 # process the header parameters 4024 # process the form parameters 4025 # process the body parameter 4026 4027 # set the HTTP header `Accept` 4028 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4029 4030 # authentication setting 4031 _auth_settings: List[str] = [] 4032 4033 return self.api_client.param_serialize( 4034 method="DELETE", 4035 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes/{item_id}", 4036 path_params=_path_params, 4037 query_params=_query_params, 4038 header_params=_header_params, 4039 body=_body_params, 4040 post_params=_form_params, 4041 files=_files, 4042 auth_settings=_auth_settings, 4043 collection_formats=_collection_formats, 4044 _host=_host, 4045 _request_auth=_request_auth, 4046 ) 4047 4048 @validate_call 4049 def get_mindmap_node_experimental( 4050 self, 4051 board_id: Annotated[ 4052 StrictStr, 4053 Field(description="Unique identifier (ID) of the board from which you want to retrieve a mind map node."), 4054 ], 4055 item_id: Annotated[ 4056 StrictStr, Field(description="Unique identifier (ID) of the mind map node that you want to retrieve.") 4057 ], 4058 _request_timeout: Union[ 4059 None, 4060 Annotated[StrictFloat, Field(gt=0)], 4061 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4062 ] = None, 4063 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4064 _content_type: Optional[StrictStr] = None, 4065 _headers: Optional[Dict[StrictStr, Any]] = None, 4066 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4067 ) -> MindmapItem: 4068 """Get specific mind map node 4069 4070 Retrieves information for a specific mind map node on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 4071 4072 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a mind map node. (required) 4073 :type board_id: str 4074 :param item_id: Unique identifier (ID) of the mind map node that you want to retrieve. (required) 4075 :type item_id: str 4076 :param _request_timeout: timeout setting for this request. If one 4077 number provided, it will be total request 4078 timeout. It can also be a pair (tuple) of 4079 (connection, read) timeouts. 4080 :type _request_timeout: int, tuple(int, int), optional 4081 :param _request_auth: set to override the auth_settings for an a single 4082 request; this effectively ignores the 4083 authentication in the spec for a single request. 4084 :type _request_auth: dict, optional 4085 :param _content_type: force content-type for the request. 4086 :type _content_type: str, Optional 4087 :param _headers: set to override the headers for a single 4088 request; this effectively ignores the headers 4089 in the spec for a single request. 4090 :type _headers: dict, optional 4091 :param _host_index: set to override the host_index for a single 4092 request; this effectively ignores the host_index 4093 in the spec for a single request. 4094 :type _host_index: int, optional 4095 :return: Returns the result object. 4096 """ # noqa: E501 4097 4098 _param = self._get_mindmap_node_experimental_serialize( 4099 board_id=board_id, 4100 item_id=item_id, 4101 _request_auth=_request_auth, 4102 _content_type=_content_type, 4103 _headers=_headers, 4104 _host_index=_host_index, 4105 ) 4106 4107 _response_types_map: Dict[str, Optional[str]] = { 4108 "200": "MindmapItem", 4109 } 4110 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4111 response_data.read() 4112 return self.api_client.response_deserialize( 4113 response_data=response_data, 4114 response_types_map=_response_types_map, 4115 ).data 4116 4117 def _get_mindmap_node_experimental_serialize( 4118 self, 4119 board_id, 4120 item_id, 4121 _request_auth, 4122 _content_type, 4123 _headers, 4124 _host_index, 4125 ) -> RequestSerialized: 4126 4127 _host = None 4128 4129 _collection_formats: Dict[str, str] = {} 4130 4131 _path_params: Dict[str, str] = {} 4132 _query_params: List[Tuple[str, str]] = [] 4133 _header_params: Dict[str, Optional[str]] = _headers or {} 4134 _form_params: List[Tuple[str, str]] = [] 4135 _files: Dict[str, str] = {} 4136 _body_params: Optional[bytes] = None 4137 4138 # process the path parameters 4139 if board_id is not None: 4140 _path_params["board_id"] = board_id 4141 if item_id is not None: 4142 _path_params["item_id"] = item_id 4143 # process the query parameters 4144 # process the header parameters 4145 # process the form parameters 4146 # process the body parameter 4147 4148 # set the HTTP header `Accept` 4149 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4150 4151 # authentication setting 4152 _auth_settings: List[str] = [] 4153 4154 return self.api_client.param_serialize( 4155 method="GET", 4156 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes/{item_id}", 4157 path_params=_path_params, 4158 query_params=_query_params, 4159 header_params=_header_params, 4160 body=_body_params, 4161 post_params=_form_params, 4162 files=_files, 4163 auth_settings=_auth_settings, 4164 collection_formats=_collection_formats, 4165 _host=_host, 4166 _request_auth=_request_auth, 4167 ) 4168 4169 @validate_call 4170 def get_mindmap_nodes_experimental( 4171 self, 4172 board_id: Annotated[ 4173 StrictStr, 4174 Field(description="Unique identifier (ID) of the board from which you want to retrieve mind map nodes."), 4175 ], 4176 limit: Annotated[Optional[StrictStr], Field(description="Maximum number of results returned")] = None, 4177 cursor: Annotated[ 4178 Optional[StrictStr], Field(description="Points to the next portion of the results set") 4179 ] = None, 4180 _request_timeout: Union[ 4181 None, 4182 Annotated[StrictFloat, Field(gt=0)], 4183 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4184 ] = None, 4185 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4186 _content_type: Optional[StrictStr] = None, 4187 _headers: Optional[Dict[StrictStr, Any]] = None, 4188 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4189 ) -> MindmapCursorPaged: 4190 """Get mind map nodes 4191 4192 Retrieves a list of mind map nodes for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 4193 4194 :param board_id: Unique identifier (ID) of the board from which you want to retrieve mind map nodes. (required) 4195 :type board_id: str 4196 :param limit: Maximum number of results returned 4197 :type limit: str 4198 :param cursor: Points to the next portion of the results set 4199 :type cursor: str 4200 :param _request_timeout: timeout setting for this request. If one 4201 number provided, it will be total request 4202 timeout. It can also be a pair (tuple) of 4203 (connection, read) timeouts. 4204 :type _request_timeout: int, tuple(int, int), optional 4205 :param _request_auth: set to override the auth_settings for an a single 4206 request; this effectively ignores the 4207 authentication in the spec for a single request. 4208 :type _request_auth: dict, optional 4209 :param _content_type: force content-type for the request. 4210 :type _content_type: str, Optional 4211 :param _headers: set to override the headers for a single 4212 request; this effectively ignores the headers 4213 in the spec for a single request. 4214 :type _headers: dict, optional 4215 :param _host_index: set to override the host_index for a single 4216 request; this effectively ignores the host_index 4217 in the spec for a single request. 4218 :type _host_index: int, optional 4219 :return: Returns the result object. 4220 """ # noqa: E501 4221 4222 _param = self._get_mindmap_nodes_experimental_serialize( 4223 board_id=board_id, 4224 limit=limit, 4225 cursor=cursor, 4226 _request_auth=_request_auth, 4227 _content_type=_content_type, 4228 _headers=_headers, 4229 _host_index=_host_index, 4230 ) 4231 4232 _response_types_map: Dict[str, Optional[str]] = { 4233 "200": "MindmapCursorPaged", 4234 } 4235 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4236 response_data.read() 4237 return self.api_client.response_deserialize( 4238 response_data=response_data, 4239 response_types_map=_response_types_map, 4240 ).data 4241 4242 def _get_mindmap_nodes_experimental_serialize( 4243 self, 4244 board_id, 4245 limit, 4246 cursor, 4247 _request_auth, 4248 _content_type, 4249 _headers, 4250 _host_index, 4251 ) -> RequestSerialized: 4252 4253 _host = None 4254 4255 _collection_formats: Dict[str, str] = {} 4256 4257 _path_params: Dict[str, str] = {} 4258 _query_params: List[Tuple[str, str]] = [] 4259 _header_params: Dict[str, Optional[str]] = _headers or {} 4260 _form_params: List[Tuple[str, str]] = [] 4261 _files: Dict[str, str] = {} 4262 _body_params: Optional[bytes] = None 4263 4264 # process the path parameters 4265 if board_id is not None: 4266 _path_params["board_id"] = board_id 4267 # process the query parameters 4268 if limit is not None: 4269 4270 _query_params.append(("limit", limit)) 4271 4272 if cursor is not None: 4273 4274 _query_params.append(("cursor", cursor)) 4275 4276 # process the header parameters 4277 # process the form parameters 4278 # process the body parameter 4279 4280 # set the HTTP header `Accept` 4281 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4282 4283 # authentication setting 4284 _auth_settings: List[str] = [] 4285 4286 return self.api_client.param_serialize( 4287 method="GET", 4288 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes", 4289 path_params=_path_params, 4290 query_params=_query_params, 4291 header_params=_header_params, 4292 body=_body_params, 4293 post_params=_form_params, 4294 files=_files, 4295 auth_settings=_auth_settings, 4296 collection_formats=_collection_formats, 4297 _host=_host, 4298 _request_auth=_request_auth, 4299 ) 4300 4301 @validate_call 4302 def revoke_token_v2( 4303 self, 4304 revoke_token_request: RevokeTokenRequest, 4305 _request_timeout: Union[ 4306 None, 4307 Annotated[StrictFloat, Field(gt=0)], 4308 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4309 ] = None, 4310 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4311 _content_type: Optional[StrictStr] = None, 4312 _headers: Optional[Dict[StrictStr, Any]] = None, 4313 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4314 ) -> None: 4315 """Revoke token (v2) 4316 4317 Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user. 4318 4319 :param revoke_token_request: (required) 4320 :type revoke_token_request: RevokeTokenRequest 4321 :param _request_timeout: timeout setting for this request. If one 4322 number provided, it will be total request 4323 timeout. It can also be a pair (tuple) of 4324 (connection, read) timeouts. 4325 :type _request_timeout: int, tuple(int, int), optional 4326 :param _request_auth: set to override the auth_settings for an a single 4327 request; this effectively ignores the 4328 authentication in the spec for a single request. 4329 :type _request_auth: dict, optional 4330 :param _content_type: force content-type for the request. 4331 :type _content_type: str, Optional 4332 :param _headers: set to override the headers for a single 4333 request; this effectively ignores the headers 4334 in the spec for a single request. 4335 :type _headers: dict, optional 4336 :param _host_index: set to override the host_index for a single 4337 request; this effectively ignores the host_index 4338 in the spec for a single request. 4339 :type _host_index: int, optional 4340 :return: Returns the result object. 4341 """ # noqa: E501 4342 4343 _param = self._revoke_token_v2_serialize( 4344 revoke_token_request=revoke_token_request, 4345 _request_auth=_request_auth, 4346 _content_type=_content_type, 4347 _headers=_headers, 4348 _host_index=_host_index, 4349 ) 4350 4351 _response_types_map: Dict[str, Optional[str]] = { 4352 "204": None, 4353 "404": "ErrorResponse", 4354 } 4355 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4356 response_data.read() 4357 return self.api_client.response_deserialize( 4358 response_data=response_data, 4359 response_types_map=_response_types_map, 4360 ).data 4361 4362 def _revoke_token_v2_serialize( 4363 self, 4364 revoke_token_request, 4365 _request_auth, 4366 _content_type, 4367 _headers, 4368 _host_index, 4369 ) -> RequestSerialized: 4370 4371 _host = None 4372 4373 _collection_formats: Dict[str, str] = {} 4374 4375 _path_params: Dict[str, str] = {} 4376 _query_params: List[Tuple[str, str]] = [] 4377 _header_params: Dict[str, Optional[str]] = _headers or {} 4378 _form_params: List[Tuple[str, str]] = [] 4379 _files: Dict[str, str] = {} 4380 _body_params: Optional[bytes] = None 4381 4382 # process the path parameters 4383 # process the query parameters 4384 # process the header parameters 4385 # process the form parameters 4386 # process the body parameter 4387 if revoke_token_request is not None: 4388 _body_params = revoke_token_request 4389 4390 # set the HTTP header `Accept` 4391 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4392 4393 # set the HTTP header `Content-Type` 4394 if _content_type: 4395 _header_params["Content-Type"] = _content_type 4396 else: 4397 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 4398 if _default_content_type is not None: 4399 _header_params["Content-Type"] = _default_content_type 4400 4401 # authentication setting 4402 _auth_settings: List[str] = [] 4403 4404 return self.api_client.param_serialize( 4405 method="POST", 4406 resource_path="/v2/oauth/revoke", 4407 path_params=_path_params, 4408 query_params=_query_params, 4409 header_params=_header_params, 4410 body=_body_params, 4411 post_params=_form_params, 4412 files=_files, 4413 auth_settings=_auth_settings, 4414 collection_formats=_collection_formats, 4415 _host=_host, 4416 _request_auth=_request_auth, 4417 ) 4418 4419 @validate_call 4420 def enterprise_get_organization_member( 4421 self, 4422 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4423 member_id: Annotated[StrictStr, Field(description="id of the organization member")], 4424 _request_timeout: Union[ 4425 None, 4426 Annotated[StrictFloat, Field(gt=0)], 4427 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4428 ] = None, 4429 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4430 _content_type: Optional[StrictStr] = None, 4431 _headers: Optional[Dict[StrictStr, Any]] = None, 4432 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4433 ) -> OrganizationMember: 4434 """Get organization member 4435 4436 Retrieves organization member information for an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4437 4438 :param org_id: id of the organization (required) 4439 :type org_id: str 4440 :param member_id: id of the organization member (required) 4441 :type member_id: str 4442 :param _request_timeout: timeout setting for this request. If one 4443 number provided, it will be total request 4444 timeout. It can also be a pair (tuple) of 4445 (connection, read) timeouts. 4446 :type _request_timeout: int, tuple(int, int), optional 4447 :param _request_auth: set to override the auth_settings for an a single 4448 request; this effectively ignores the 4449 authentication in the spec for a single request. 4450 :type _request_auth: dict, optional 4451 :param _content_type: force content-type for the request. 4452 :type _content_type: str, Optional 4453 :param _headers: set to override the headers for a single 4454 request; this effectively ignores the headers 4455 in the spec for a single request. 4456 :type _headers: dict, optional 4457 :param _host_index: set to override the host_index for a single 4458 request; this effectively ignores the host_index 4459 in the spec for a single request. 4460 :type _host_index: int, optional 4461 :return: Returns the result object. 4462 """ # noqa: E501 4463 4464 _param = self._enterprise_get_organization_member_serialize( 4465 org_id=org_id, 4466 member_id=member_id, 4467 _request_auth=_request_auth, 4468 _content_type=_content_type, 4469 _headers=_headers, 4470 _host_index=_host_index, 4471 ) 4472 4473 _response_types_map: Dict[str, Optional[str]] = { 4474 "200": "OrganizationMember", 4475 "400": None, 4476 "401": None, 4477 "403": None, 4478 "404": None, 4479 "409": None, 4480 "429": None, 4481 } 4482 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4483 response_data.read() 4484 return self.api_client.response_deserialize( 4485 response_data=response_data, 4486 response_types_map=_response_types_map, 4487 ).data 4488 4489 def _enterprise_get_organization_member_serialize( 4490 self, 4491 org_id, 4492 member_id, 4493 _request_auth, 4494 _content_type, 4495 _headers, 4496 _host_index, 4497 ) -> RequestSerialized: 4498 4499 _host = None 4500 4501 _collection_formats: Dict[str, str] = {} 4502 4503 _path_params: Dict[str, str] = {} 4504 _query_params: List[Tuple[str, str]] = [] 4505 _header_params: Dict[str, Optional[str]] = _headers or {} 4506 _form_params: List[Tuple[str, str]] = [] 4507 _files: Dict[str, str] = {} 4508 _body_params: Optional[bytes] = None 4509 4510 # process the path parameters 4511 if org_id is not None: 4512 _path_params["org_id"] = org_id 4513 if member_id is not None: 4514 _path_params["member_id"] = member_id 4515 # process the query parameters 4516 # process the header parameters 4517 # process the form parameters 4518 # process the body parameter 4519 4520 # set the HTTP header `Accept` 4521 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4522 4523 # authentication setting 4524 _auth_settings: List[str] = [] 4525 4526 return self.api_client.param_serialize( 4527 method="GET", 4528 resource_path="/v2/orgs/{org_id}/members/{member_id}", 4529 path_params=_path_params, 4530 query_params=_query_params, 4531 header_params=_header_params, 4532 body=_body_params, 4533 post_params=_form_params, 4534 files=_files, 4535 auth_settings=_auth_settings, 4536 collection_formats=_collection_formats, 4537 _host=_host, 4538 _request_auth=_request_auth, 4539 ) 4540 4541 @validate_call 4542 def enterprise_get_organization_members( 4543 self, 4544 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4545 emails: Optional[StrictStr] = None, 4546 role: Optional[StrictStr] = None, 4547 license: Optional[StrictStr] = None, 4548 active: Optional[StrictBool] = None, 4549 cursor: Optional[StrictStr] = None, 4550 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 4551 _request_timeout: Union[ 4552 None, 4553 Annotated[StrictFloat, Field(gt=0)], 4554 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4555 ] = None, 4556 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4557 _content_type: Optional[StrictStr] = None, 4558 _headers: Optional[Dict[StrictStr, Any]] = None, 4559 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4560 ) -> EnterpriseGetOrganizationMembers200Response: 4561 """Get organization members 4562 4563 Retrieves organization members based on the organization ID and the cursor, or based on the user emails provided in the request.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4564 4565 :param org_id: id of the organization (required) 4566 :type org_id: str 4567 :param emails: 4568 :type emails: str 4569 :param role: 4570 :type role: str 4571 :param license: 4572 :type license: str 4573 :param active: 4574 :type active: bool 4575 :param cursor: 4576 :type cursor: str 4577 :param limit: 4578 :type limit: int 4579 :param _request_timeout: timeout setting for this request. If one 4580 number provided, it will be total request 4581 timeout. It can also be a pair (tuple) of 4582 (connection, read) timeouts. 4583 :type _request_timeout: int, tuple(int, int), optional 4584 :param _request_auth: set to override the auth_settings for an a single 4585 request; this effectively ignores the 4586 authentication in the spec for a single request. 4587 :type _request_auth: dict, optional 4588 :param _content_type: force content-type for the request. 4589 :type _content_type: str, Optional 4590 :param _headers: set to override the headers for a single 4591 request; this effectively ignores the headers 4592 in the spec for a single request. 4593 :type _headers: dict, optional 4594 :param _host_index: set to override the host_index for a single 4595 request; this effectively ignores the host_index 4596 in the spec for a single request. 4597 :type _host_index: int, optional 4598 :return: Returns the result object. 4599 """ # noqa: E501 4600 4601 _param = self._enterprise_get_organization_members_serialize( 4602 org_id=org_id, 4603 emails=emails, 4604 role=role, 4605 license=license, 4606 active=active, 4607 cursor=cursor, 4608 limit=limit, 4609 _request_auth=_request_auth, 4610 _content_type=_content_type, 4611 _headers=_headers, 4612 _host_index=_host_index, 4613 ) 4614 4615 _response_types_map: Dict[str, Optional[str]] = { 4616 "200": "EnterpriseGetOrganizationMembers200Response", 4617 "400": None, 4618 "401": None, 4619 "403": None, 4620 "404": None, 4621 "409": None, 4622 "429": None, 4623 } 4624 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4625 response_data.read() 4626 return self.api_client.response_deserialize( 4627 response_data=response_data, 4628 response_types_map=_response_types_map, 4629 ).data 4630 4631 def _enterprise_get_organization_members_serialize( 4632 self, 4633 org_id, 4634 emails, 4635 role, 4636 license, 4637 active, 4638 cursor, 4639 limit, 4640 _request_auth, 4641 _content_type, 4642 _headers, 4643 _host_index, 4644 ) -> RequestSerialized: 4645 4646 _host = None 4647 4648 _collection_formats: Dict[str, str] = {} 4649 4650 _path_params: Dict[str, str] = {} 4651 _query_params: List[Tuple[str, str]] = [] 4652 _header_params: Dict[str, Optional[str]] = _headers or {} 4653 _form_params: List[Tuple[str, str]] = [] 4654 _files: Dict[str, str] = {} 4655 _body_params: Optional[bytes] = None 4656 4657 # process the path parameters 4658 if org_id is not None: 4659 _path_params["org_id"] = org_id 4660 # process the query parameters 4661 if emails is not None: 4662 4663 _query_params.append(("emails", emails)) 4664 4665 if role is not None: 4666 4667 _query_params.append(("role", role)) 4668 4669 if license is not None: 4670 4671 _query_params.append(("license", license)) 4672 4673 if active is not None: 4674 4675 _query_params.append(("active", active)) 4676 4677 if cursor is not None: 4678 4679 _query_params.append(("cursor", cursor)) 4680 4681 if limit is not None: 4682 4683 _query_params.append(("limit", limit)) 4684 4685 # process the header parameters 4686 # process the form parameters 4687 # process the body parameter 4688 4689 # set the HTTP header `Accept` 4690 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4691 4692 # authentication setting 4693 _auth_settings: List[str] = [] 4694 4695 return self.api_client.param_serialize( 4696 method="GET", 4697 resource_path="/v2/orgs/{org_id}/members", 4698 path_params=_path_params, 4699 query_params=_query_params, 4700 header_params=_header_params, 4701 body=_body_params, 4702 post_params=_form_params, 4703 files=_files, 4704 auth_settings=_auth_settings, 4705 collection_formats=_collection_formats, 4706 _host=_host, 4707 _request_auth=_request_auth, 4708 ) 4709 4710 @validate_call 4711 def enterprise_get_organization( 4712 self, 4713 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4714 _request_timeout: Union[ 4715 None, 4716 Annotated[StrictFloat, Field(gt=0)], 4717 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4718 ] = None, 4719 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4720 _content_type: Optional[StrictStr] = None, 4721 _headers: Optional[Dict[StrictStr, Any]] = None, 4722 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4723 ) -> Organization: 4724 """Get organization info 4725 4726 Retrieves organization information.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4727 4728 :param org_id: id of the organization (required) 4729 :type org_id: str 4730 :param _request_timeout: timeout setting for this request. If one 4731 number provided, it will be total request 4732 timeout. It can also be a pair (tuple) of 4733 (connection, read) timeouts. 4734 :type _request_timeout: int, tuple(int, int), optional 4735 :param _request_auth: set to override the auth_settings for an a single 4736 request; this effectively ignores the 4737 authentication in the spec for a single request. 4738 :type _request_auth: dict, optional 4739 :param _content_type: force content-type for the request. 4740 :type _content_type: str, Optional 4741 :param _headers: set to override the headers for a single 4742 request; this effectively ignores the headers 4743 in the spec for a single request. 4744 :type _headers: dict, optional 4745 :param _host_index: set to override the host_index for a single 4746 request; this effectively ignores the host_index 4747 in the spec for a single request. 4748 :type _host_index: int, optional 4749 :return: Returns the result object. 4750 """ # noqa: E501 4751 4752 _param = self._enterprise_get_organization_serialize( 4753 org_id=org_id, 4754 _request_auth=_request_auth, 4755 _content_type=_content_type, 4756 _headers=_headers, 4757 _host_index=_host_index, 4758 ) 4759 4760 _response_types_map: Dict[str, Optional[str]] = { 4761 "200": "Organization", 4762 "400": None, 4763 "401": None, 4764 "403": None, 4765 "404": None, 4766 "409": None, 4767 "429": None, 4768 } 4769 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4770 response_data.read() 4771 return self.api_client.response_deserialize( 4772 response_data=response_data, 4773 response_types_map=_response_types_map, 4774 ).data 4775 4776 def _enterprise_get_organization_serialize( 4777 self, 4778 org_id, 4779 _request_auth, 4780 _content_type, 4781 _headers, 4782 _host_index, 4783 ) -> RequestSerialized: 4784 4785 _host = None 4786 4787 _collection_formats: Dict[str, str] = {} 4788 4789 _path_params: Dict[str, str] = {} 4790 _query_params: List[Tuple[str, str]] = [] 4791 _header_params: Dict[str, Optional[str]] = _headers or {} 4792 _form_params: List[Tuple[str, str]] = [] 4793 _files: Dict[str, str] = {} 4794 _body_params: Optional[bytes] = None 4795 4796 # process the path parameters 4797 if org_id is not None: 4798 _path_params["org_id"] = org_id 4799 # process the query parameters 4800 # process the header parameters 4801 # process the form parameters 4802 # process the body parameter 4803 4804 # set the HTTP header `Accept` 4805 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4806 4807 # authentication setting 4808 _auth_settings: List[str] = [] 4809 4810 return self.api_client.param_serialize( 4811 method="GET", 4812 resource_path="/v2/orgs/{org_id}", 4813 path_params=_path_params, 4814 query_params=_query_params, 4815 header_params=_header_params, 4816 body=_body_params, 4817 post_params=_form_params, 4818 files=_files, 4819 auth_settings=_auth_settings, 4820 collection_formats=_collection_formats, 4821 _host=_host, 4822 _request_auth=_request_auth, 4823 ) 4824 4825 @validate_call 4826 def enterprise_add_project_member( 4827 self, 4828 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 4829 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 4830 project_id: Annotated[StrictStr, Field(description="The ID of the project to which you want to add a user.")], 4831 add_project_member_request: AddProjectMemberRequest, 4832 _request_timeout: Union[ 4833 None, 4834 Annotated[StrictFloat, Field(gt=0)], 4835 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4836 ] = None, 4837 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4838 _content_type: Optional[StrictStr] = None, 4839 _headers: Optional[Dict[StrictStr, Any]] = None, 4840 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4841 ) -> ProjectMember: 4842 """Add member in a project 4843 4844 Add a Miro user to a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4845 4846 :param org_id: The ID of the organization to which the project belongs. (required) 4847 :type org_id: str 4848 :param team_id: The ID of the team to which the project belongs. (required) 4849 :type team_id: str 4850 :param project_id: The ID of the project to which you want to add a user. (required) 4851 :type project_id: str 4852 :param add_project_member_request: (required) 4853 :type add_project_member_request: AddProjectMemberRequest 4854 :param _request_timeout: timeout setting for this request. If one 4855 number provided, it will be total request 4856 timeout. It can also be a pair (tuple) of 4857 (connection, read) timeouts. 4858 :type _request_timeout: int, tuple(int, int), optional 4859 :param _request_auth: set to override the auth_settings for an a single 4860 request; this effectively ignores the 4861 authentication in the spec for a single request. 4862 :type _request_auth: dict, optional 4863 :param _content_type: force content-type for the request. 4864 :type _content_type: str, Optional 4865 :param _headers: set to override the headers for a single 4866 request; this effectively ignores the headers 4867 in the spec for a single request. 4868 :type _headers: dict, optional 4869 :param _host_index: set to override the host_index for a single 4870 request; this effectively ignores the host_index 4871 in the spec for a single request. 4872 :type _host_index: int, optional 4873 :return: Returns the result object. 4874 """ # noqa: E501 4875 4876 _param = self._enterprise_add_project_member_serialize( 4877 org_id=org_id, 4878 team_id=team_id, 4879 project_id=project_id, 4880 add_project_member_request=add_project_member_request, 4881 _request_auth=_request_auth, 4882 _content_type=_content_type, 4883 _headers=_headers, 4884 _host_index=_host_index, 4885 ) 4886 4887 _response_types_map: Dict[str, Optional[str]] = { 4888 "201": "ProjectMember", 4889 "400": "Error400", 4890 "401": "Error401", 4891 "403": "Error403", 4892 "404": "Error404", 4893 "409": "Error409", 4894 "429": "Error429", 4895 } 4896 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4897 response_data.read() 4898 return self.api_client.response_deserialize( 4899 response_data=response_data, 4900 response_types_map=_response_types_map, 4901 ).data 4902 4903 def _enterprise_add_project_member_serialize( 4904 self, 4905 org_id, 4906 team_id, 4907 project_id, 4908 add_project_member_request, 4909 _request_auth, 4910 _content_type, 4911 _headers, 4912 _host_index, 4913 ) -> RequestSerialized: 4914 4915 _host = None 4916 4917 _collection_formats: Dict[str, str] = {} 4918 4919 _path_params: Dict[str, str] = {} 4920 _query_params: List[Tuple[str, str]] = [] 4921 _header_params: Dict[str, Optional[str]] = _headers or {} 4922 _form_params: List[Tuple[str, str]] = [] 4923 _files: Dict[str, str] = {} 4924 _body_params: Optional[bytes] = None 4925 4926 # process the path parameters 4927 if org_id is not None: 4928 _path_params["org_id"] = org_id 4929 if team_id is not None: 4930 _path_params["team_id"] = team_id 4931 if project_id is not None: 4932 _path_params["project_id"] = project_id 4933 # process the query parameters 4934 # process the header parameters 4935 # process the form parameters 4936 # process the body parameter 4937 if add_project_member_request is not None: 4938 _body_params = add_project_member_request 4939 4940 # set the HTTP header `Accept` 4941 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4942 4943 # set the HTTP header `Content-Type` 4944 if _content_type: 4945 _header_params["Content-Type"] = _content_type 4946 else: 4947 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 4948 if _default_content_type is not None: 4949 _header_params["Content-Type"] = _default_content_type 4950 4951 # authentication setting 4952 _auth_settings: List[str] = [] 4953 4954 return self.api_client.param_serialize( 4955 method="POST", 4956 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members", 4957 path_params=_path_params, 4958 query_params=_query_params, 4959 header_params=_header_params, 4960 body=_body_params, 4961 post_params=_form_params, 4962 files=_files, 4963 auth_settings=_auth_settings, 4964 collection_formats=_collection_formats, 4965 _host=_host, 4966 _request_auth=_request_auth, 4967 ) 4968 4969 @validate_call 4970 def enterprise_delete_project_member( 4971 self, 4972 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 4973 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 4974 project_id: Annotated[ 4975 StrictStr, Field(description="The ID of the project from which you want to remove a member.") 4976 ], 4977 member_id: Annotated[ 4978 StrictStr, Field(description="The ID of the member that you want to remove from a project.") 4979 ], 4980 _request_timeout: Union[ 4981 None, 4982 Annotated[StrictFloat, Field(gt=0)], 4983 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4984 ] = None, 4985 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4986 _content_type: Optional[StrictStr] = None, 4987 _headers: Optional[Dict[StrictStr, Any]] = None, 4988 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4989 ) -> None: 4990 """Remove project member 4991 4992 Remove a member from a project. The user remains in the team even after the member is removed from a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4993 4994 :param org_id: The ID of the organization to which the project belongs. (required) 4995 :type org_id: str 4996 :param team_id: The ID of the team to which the project belongs. (required) 4997 :type team_id: str 4998 :param project_id: The ID of the project from which you want to remove a member. (required) 4999 :type project_id: str 5000 :param member_id: The ID of the member that you want to remove from a project. (required) 5001 :type member_id: str 5002 :param _request_timeout: timeout setting for this request. If one 5003 number provided, it will be total request 5004 timeout. It can also be a pair (tuple) of 5005 (connection, read) timeouts. 5006 :type _request_timeout: int, tuple(int, int), optional 5007 :param _request_auth: set to override the auth_settings for an a single 5008 request; this effectively ignores the 5009 authentication in the spec for a single request. 5010 :type _request_auth: dict, optional 5011 :param _content_type: force content-type for the request. 5012 :type _content_type: str, Optional 5013 :param _headers: set to override the headers for a single 5014 request; this effectively ignores the headers 5015 in the spec for a single request. 5016 :type _headers: dict, optional 5017 :param _host_index: set to override the host_index for a single 5018 request; this effectively ignores the host_index 5019 in the spec for a single request. 5020 :type _host_index: int, optional 5021 :return: Returns the result object. 5022 """ # noqa: E501 5023 5024 _param = self._enterprise_delete_project_member_serialize( 5025 org_id=org_id, 5026 team_id=team_id, 5027 project_id=project_id, 5028 member_id=member_id, 5029 _request_auth=_request_auth, 5030 _content_type=_content_type, 5031 _headers=_headers, 5032 _host_index=_host_index, 5033 ) 5034 5035 _response_types_map: Dict[str, Optional[str]] = { 5036 "204": None, 5037 "400": "Error400", 5038 "401": "Error401", 5039 "403": "Error403", 5040 "404": "Error404", 5041 "409": "Error409", 5042 "429": "Error429", 5043 } 5044 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5045 response_data.read() 5046 return self.api_client.response_deserialize( 5047 response_data=response_data, 5048 response_types_map=_response_types_map, 5049 ).data 5050 5051 def _enterprise_delete_project_member_serialize( 5052 self, 5053 org_id, 5054 team_id, 5055 project_id, 5056 member_id, 5057 _request_auth, 5058 _content_type, 5059 _headers, 5060 _host_index, 5061 ) -> RequestSerialized: 5062 5063 _host = None 5064 5065 _collection_formats: Dict[str, str] = {} 5066 5067 _path_params: Dict[str, str] = {} 5068 _query_params: List[Tuple[str, str]] = [] 5069 _header_params: Dict[str, Optional[str]] = _headers or {} 5070 _form_params: List[Tuple[str, str]] = [] 5071 _files: Dict[str, str] = {} 5072 _body_params: Optional[bytes] = None 5073 5074 # process the path parameters 5075 if org_id is not None: 5076 _path_params["org_id"] = org_id 5077 if team_id is not None: 5078 _path_params["team_id"] = team_id 5079 if project_id is not None: 5080 _path_params["project_id"] = project_id 5081 if member_id is not None: 5082 _path_params["member_id"] = member_id 5083 # process the query parameters 5084 # process the header parameters 5085 # process the form parameters 5086 # process the body parameter 5087 5088 # set the HTTP header `Accept` 5089 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5090 5091 # authentication setting 5092 _auth_settings: List[str] = [] 5093 5094 return self.api_client.param_serialize( 5095 method="DELETE", 5096 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members/{member_id}", 5097 path_params=_path_params, 5098 query_params=_query_params, 5099 header_params=_header_params, 5100 body=_body_params, 5101 post_params=_form_params, 5102 files=_files, 5103 auth_settings=_auth_settings, 5104 collection_formats=_collection_formats, 5105 _host=_host, 5106 _request_auth=_request_auth, 5107 ) 5108 5109 @validate_call 5110 def enterprise_get_project_member( 5111 self, 5112 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5113 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5114 project_id: Annotated[ 5115 StrictStr, 5116 Field(description="The ID of the project from which you want to retrieve specific member information."), 5117 ], 5118 member_id: Annotated[ 5119 StrictStr, Field(description="The ID of the member for which you want to retrieve information.") 5120 ], 5121 _request_timeout: Union[ 5122 None, 5123 Annotated[StrictFloat, Field(gt=0)], 5124 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5125 ] = None, 5126 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5127 _content_type: Optional[StrictStr] = None, 5128 _headers: Optional[Dict[StrictStr, Any]] = None, 5129 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5130 ) -> ProjectMember: 5131 """Get project member 5132 5133 Retrieves information for a specific project member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5134 5135 :param org_id: The ID of the organization to which the project belongs. (required) 5136 :type org_id: str 5137 :param team_id: The ID of the team to which the project belongs. (required) 5138 :type team_id: str 5139 :param project_id: The ID of the project from which you want to retrieve specific member information. (required) 5140 :type project_id: str 5141 :param member_id: The ID of the member for which you want to retrieve information. (required) 5142 :type member_id: str 5143 :param _request_timeout: timeout setting for this request. If one 5144 number provided, it will be total request 5145 timeout. It can also be a pair (tuple) of 5146 (connection, read) timeouts. 5147 :type _request_timeout: int, tuple(int, int), optional 5148 :param _request_auth: set to override the auth_settings for an a single 5149 request; this effectively ignores the 5150 authentication in the spec for a single request. 5151 :type _request_auth: dict, optional 5152 :param _content_type: force content-type for the request. 5153 :type _content_type: str, Optional 5154 :param _headers: set to override the headers for a single 5155 request; this effectively ignores the headers 5156 in the spec for a single request. 5157 :type _headers: dict, optional 5158 :param _host_index: set to override the host_index for a single 5159 request; this effectively ignores the host_index 5160 in the spec for a single request. 5161 :type _host_index: int, optional 5162 :return: Returns the result object. 5163 """ # noqa: E501 5164 5165 _param = self._enterprise_get_project_member_serialize( 5166 org_id=org_id, 5167 team_id=team_id, 5168 project_id=project_id, 5169 member_id=member_id, 5170 _request_auth=_request_auth, 5171 _content_type=_content_type, 5172 _headers=_headers, 5173 _host_index=_host_index, 5174 ) 5175 5176 _response_types_map: Dict[str, Optional[str]] = { 5177 "200": "ProjectMember", 5178 "400": "Error400", 5179 "401": "Error401", 5180 "403": "Error403", 5181 "404": "Error404", 5182 "409": "Error409", 5183 "429": "Error429", 5184 } 5185 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5186 response_data.read() 5187 return self.api_client.response_deserialize( 5188 response_data=response_data, 5189 response_types_map=_response_types_map, 5190 ).data 5191 5192 def _enterprise_get_project_member_serialize( 5193 self, 5194 org_id, 5195 team_id, 5196 project_id, 5197 member_id, 5198 _request_auth, 5199 _content_type, 5200 _headers, 5201 _host_index, 5202 ) -> RequestSerialized: 5203 5204 _host = None 5205 5206 _collection_formats: Dict[str, str] = {} 5207 5208 _path_params: Dict[str, str] = {} 5209 _query_params: List[Tuple[str, str]] = [] 5210 _header_params: Dict[str, Optional[str]] = _headers or {} 5211 _form_params: List[Tuple[str, str]] = [] 5212 _files: Dict[str, str] = {} 5213 _body_params: Optional[bytes] = None 5214 5215 # process the path parameters 5216 if org_id is not None: 5217 _path_params["org_id"] = org_id 5218 if team_id is not None: 5219 _path_params["team_id"] = team_id 5220 if project_id is not None: 5221 _path_params["project_id"] = project_id 5222 if member_id is not None: 5223 _path_params["member_id"] = member_id 5224 # process the query parameters 5225 # process the header parameters 5226 # process the form parameters 5227 # process the body parameter 5228 5229 # set the HTTP header `Accept` 5230 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5231 5232 # authentication setting 5233 _auth_settings: List[str] = [] 5234 5235 return self.api_client.param_serialize( 5236 method="GET", 5237 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members/{member_id}", 5238 path_params=_path_params, 5239 query_params=_query_params, 5240 header_params=_header_params, 5241 body=_body_params, 5242 post_params=_form_params, 5243 files=_files, 5244 auth_settings=_auth_settings, 5245 collection_formats=_collection_formats, 5246 _host=_host, 5247 _request_auth=_request_auth, 5248 ) 5249 5250 @validate_call 5251 def enterprise_get_project_members( 5252 self, 5253 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5254 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5255 project_id: Annotated[ 5256 StrictStr, Field(description="The ID of the project for which you want to retrieve the list of members.") 5257 ], 5258 limit: Annotated[ 5259 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 5260 Field( 5261 description="The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value." 5262 ), 5263 ] = None, 5264 cursor: Annotated[ 5265 Optional[StrictStr], 5266 Field( 5267 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 5268 ), 5269 ] = None, 5270 _request_timeout: Union[ 5271 None, 5272 Annotated[StrictFloat, Field(gt=0)], 5273 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5274 ] = None, 5275 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5276 _content_type: Optional[StrictStr] = None, 5277 _headers: Optional[Dict[StrictStr, Any]] = None, 5278 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5279 ) -> ProjectMemberPage: 5280 """List of project members 5281 5282 Retrieves the list of members for a specific project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5283 5284 :param org_id: The ID of the organization to which the project belongs. (required) 5285 :type org_id: str 5286 :param team_id: The ID of the team to which the project belongs. (required) 5287 :type team_id: str 5288 :param project_id: The ID of the project for which you want to retrieve the list of members. (required) 5289 :type project_id: str 5290 :param limit: The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value. 5291 :type limit: int 5292 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 5293 :type cursor: str 5294 :param _request_timeout: timeout setting for this request. If one 5295 number provided, it will be total request 5296 timeout. It can also be a pair (tuple) of 5297 (connection, read) timeouts. 5298 :type _request_timeout: int, tuple(int, int), optional 5299 :param _request_auth: set to override the auth_settings for an a single 5300 request; this effectively ignores the 5301 authentication in the spec for a single request. 5302 :type _request_auth: dict, optional 5303 :param _content_type: force content-type for the request. 5304 :type _content_type: str, Optional 5305 :param _headers: set to override the headers for a single 5306 request; this effectively ignores the headers 5307 in the spec for a single request. 5308 :type _headers: dict, optional 5309 :param _host_index: set to override the host_index for a single 5310 request; this effectively ignores the host_index 5311 in the spec for a single request. 5312 :type _host_index: int, optional 5313 :return: Returns the result object. 5314 """ # noqa: E501 5315 5316 _param = self._enterprise_get_project_members_serialize( 5317 org_id=org_id, 5318 team_id=team_id, 5319 project_id=project_id, 5320 limit=limit, 5321 cursor=cursor, 5322 _request_auth=_request_auth, 5323 _content_type=_content_type, 5324 _headers=_headers, 5325 _host_index=_host_index, 5326 ) 5327 5328 _response_types_map: Dict[str, Optional[str]] = { 5329 "200": "ProjectMemberPage", 5330 "400": "Error400", 5331 "401": "Error401", 5332 "403": "Error403", 5333 "404": "Error404", 5334 "409": "Error409", 5335 "429": "Error429", 5336 } 5337 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5338 response_data.read() 5339 return self.api_client.response_deserialize( 5340 response_data=response_data, 5341 response_types_map=_response_types_map, 5342 ).data 5343 5344 def _enterprise_get_project_members_serialize( 5345 self, 5346 org_id, 5347 team_id, 5348 project_id, 5349 limit, 5350 cursor, 5351 _request_auth, 5352 _content_type, 5353 _headers, 5354 _host_index, 5355 ) -> RequestSerialized: 5356 5357 _host = None 5358 5359 _collection_formats: Dict[str, str] = {} 5360 5361 _path_params: Dict[str, str] = {} 5362 _query_params: List[Tuple[str, str]] = [] 5363 _header_params: Dict[str, Optional[str]] = _headers or {} 5364 _form_params: List[Tuple[str, str]] = [] 5365 _files: Dict[str, str] = {} 5366 _body_params: Optional[bytes] = None 5367 5368 # process the path parameters 5369 if org_id is not None: 5370 _path_params["org_id"] = org_id 5371 if team_id is not None: 5372 _path_params["team_id"] = team_id 5373 if project_id is not None: 5374 _path_params["project_id"] = project_id 5375 # process the query parameters 5376 if limit is not None: 5377 5378 _query_params.append(("limit", limit)) 5379 5380 if cursor is not None: 5381 5382 _query_params.append(("cursor", cursor)) 5383 5384 # process the header parameters 5385 # process the form parameters 5386 # process the body parameter 5387 5388 # set the HTTP header `Accept` 5389 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5390 5391 # authentication setting 5392 _auth_settings: List[str] = [] 5393 5394 return self.api_client.param_serialize( 5395 method="GET", 5396 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members", 5397 path_params=_path_params, 5398 query_params=_query_params, 5399 header_params=_header_params, 5400 body=_body_params, 5401 post_params=_form_params, 5402 files=_files, 5403 auth_settings=_auth_settings, 5404 collection_formats=_collection_formats, 5405 _host=_host, 5406 _request_auth=_request_auth, 5407 ) 5408 5409 @validate_call 5410 def enterprise_update_project_member( 5411 self, 5412 org_id: Annotated[ 5413 StrictStr, Field(description="The ID of the organization to which the project member belongs.") 5414 ], 5415 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project member belongs.")], 5416 project_id: Annotated[StrictStr, Field(description="The ID of a Project.")], 5417 member_id: Annotated[StrictStr, Field(description="The ID of the member whose details you want to update.")], 5418 update_project_member_request: UpdateProjectMemberRequest, 5419 _request_timeout: Union[ 5420 None, 5421 Annotated[StrictFloat, Field(gt=0)], 5422 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5423 ] = None, 5424 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5425 _content_type: Optional[StrictStr] = None, 5426 _headers: Optional[Dict[StrictStr, Any]] = None, 5427 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5428 ) -> ProjectMember: 5429 """Update project member 5430 5431 Updates details of a project member, such as the member's role.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5432 5433 :param org_id: The ID of the organization to which the project member belongs. (required) 5434 :type org_id: str 5435 :param team_id: The ID of the team to which the project member belongs. (required) 5436 :type team_id: str 5437 :param project_id: The ID of a Project. (required) 5438 :type project_id: str 5439 :param member_id: The ID of the member whose details you want to update. (required) 5440 :type member_id: str 5441 :param update_project_member_request: (required) 5442 :type update_project_member_request: UpdateProjectMemberRequest 5443 :param _request_timeout: timeout setting for this request. If one 5444 number provided, it will be total request 5445 timeout. It can also be a pair (tuple) of 5446 (connection, read) timeouts. 5447 :type _request_timeout: int, tuple(int, int), optional 5448 :param _request_auth: set to override the auth_settings for an a single 5449 request; this effectively ignores the 5450 authentication in the spec for a single request. 5451 :type _request_auth: dict, optional 5452 :param _content_type: force content-type for the request. 5453 :type _content_type: str, Optional 5454 :param _headers: set to override the headers for a single 5455 request; this effectively ignores the headers 5456 in the spec for a single request. 5457 :type _headers: dict, optional 5458 :param _host_index: set to override the host_index for a single 5459 request; this effectively ignores the host_index 5460 in the spec for a single request. 5461 :type _host_index: int, optional 5462 :return: Returns the result object. 5463 """ # noqa: E501 5464 5465 _param = self._enterprise_update_project_member_serialize( 5466 org_id=org_id, 5467 team_id=team_id, 5468 project_id=project_id, 5469 member_id=member_id, 5470 update_project_member_request=update_project_member_request, 5471 _request_auth=_request_auth, 5472 _content_type=_content_type, 5473 _headers=_headers, 5474 _host_index=_host_index, 5475 ) 5476 5477 _response_types_map: Dict[str, Optional[str]] = { 5478 "200": "ProjectMember", 5479 "400": "Error400", 5480 "401": "Error401", 5481 "403": "Error403", 5482 "404": "Error404", 5483 "409": "Error409", 5484 "429": "Error429", 5485 } 5486 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5487 response_data.read() 5488 return self.api_client.response_deserialize( 5489 response_data=response_data, 5490 response_types_map=_response_types_map, 5491 ).data 5492 5493 def _enterprise_update_project_member_serialize( 5494 self, 5495 org_id, 5496 team_id, 5497 project_id, 5498 member_id, 5499 update_project_member_request, 5500 _request_auth, 5501 _content_type, 5502 _headers, 5503 _host_index, 5504 ) -> RequestSerialized: 5505 5506 _host = None 5507 5508 _collection_formats: Dict[str, str] = {} 5509 5510 _path_params: Dict[str, str] = {} 5511 _query_params: List[Tuple[str, str]] = [] 5512 _header_params: Dict[str, Optional[str]] = _headers or {} 5513 _form_params: List[Tuple[str, str]] = [] 5514 _files: Dict[str, str] = {} 5515 _body_params: Optional[bytes] = None 5516 5517 # process the path parameters 5518 if org_id is not None: 5519 _path_params["org_id"] = org_id 5520 if team_id is not None: 5521 _path_params["team_id"] = team_id 5522 if project_id is not None: 5523 _path_params["project_id"] = project_id 5524 if member_id is not None: 5525 _path_params["member_id"] = member_id 5526 # process the query parameters 5527 # process the header parameters 5528 # process the form parameters 5529 # process the body parameter 5530 if update_project_member_request is not None: 5531 _body_params = update_project_member_request 5532 5533 # set the HTTP header `Accept` 5534 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5535 5536 # set the HTTP header `Content-Type` 5537 if _content_type: 5538 _header_params["Content-Type"] = _content_type 5539 else: 5540 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 5541 if _default_content_type is not None: 5542 _header_params["Content-Type"] = _default_content_type 5543 5544 # authentication setting 5545 _auth_settings: List[str] = [] 5546 5547 return self.api_client.param_serialize( 5548 method="PATCH", 5549 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members/{member_id}", 5550 path_params=_path_params, 5551 query_params=_query_params, 5552 header_params=_header_params, 5553 body=_body_params, 5554 post_params=_form_params, 5555 files=_files, 5556 auth_settings=_auth_settings, 5557 collection_formats=_collection_formats, 5558 _host=_host, 5559 _request_auth=_request_auth, 5560 ) 5561 5562 @validate_call 5563 def enterprise_get_project_settings( 5564 self, 5565 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5566 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5567 project_id: Annotated[ 5568 StrictStr, Field(description="The ID of the project for which you want to retrieve the project settings.") 5569 ], 5570 _request_timeout: Union[ 5571 None, 5572 Annotated[StrictFloat, Field(gt=0)], 5573 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5574 ] = None, 5575 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5576 _content_type: Optional[StrictStr] = None, 5577 _headers: Optional[Dict[StrictStr, Any]] = None, 5578 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5579 ) -> ProjectSettings: 5580 """Get project settings 5581 5582 Retrieves the project settings.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5583 5584 :param org_id: The ID of the organization to which the project belongs. (required) 5585 :type org_id: str 5586 :param team_id: The ID of the team to which the project belongs. (required) 5587 :type team_id: str 5588 :param project_id: The ID of the project for which you want to retrieve the project settings. (required) 5589 :type project_id: str 5590 :param _request_timeout: timeout setting for this request. If one 5591 number provided, it will be total request 5592 timeout. It can also be a pair (tuple) of 5593 (connection, read) timeouts. 5594 :type _request_timeout: int, tuple(int, int), optional 5595 :param _request_auth: set to override the auth_settings for an a single 5596 request; this effectively ignores the 5597 authentication in the spec for a single request. 5598 :type _request_auth: dict, optional 5599 :param _content_type: force content-type for the request. 5600 :type _content_type: str, Optional 5601 :param _headers: set to override the headers for a single 5602 request; this effectively ignores the headers 5603 in the spec for a single request. 5604 :type _headers: dict, optional 5605 :param _host_index: set to override the host_index for a single 5606 request; this effectively ignores the host_index 5607 in the spec for a single request. 5608 :type _host_index: int, optional 5609 :return: Returns the result object. 5610 """ # noqa: E501 5611 5612 _param = self._enterprise_get_project_settings_serialize( 5613 org_id=org_id, 5614 team_id=team_id, 5615 project_id=project_id, 5616 _request_auth=_request_auth, 5617 _content_type=_content_type, 5618 _headers=_headers, 5619 _host_index=_host_index, 5620 ) 5621 5622 _response_types_map: Dict[str, Optional[str]] = { 5623 "200": "ProjectSettings", 5624 "400": "Error400", 5625 "401": "Error401", 5626 "403": "Error403", 5627 "404": "Error404", 5628 "429": "Error429", 5629 } 5630 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5631 response_data.read() 5632 return self.api_client.response_deserialize( 5633 response_data=response_data, 5634 response_types_map=_response_types_map, 5635 ).data 5636 5637 def _enterprise_get_project_settings_serialize( 5638 self, 5639 org_id, 5640 team_id, 5641 project_id, 5642 _request_auth, 5643 _content_type, 5644 _headers, 5645 _host_index, 5646 ) -> RequestSerialized: 5647 5648 _host = None 5649 5650 _collection_formats: Dict[str, str] = {} 5651 5652 _path_params: Dict[str, str] = {} 5653 _query_params: List[Tuple[str, str]] = [] 5654 _header_params: Dict[str, Optional[str]] = _headers or {} 5655 _form_params: List[Tuple[str, str]] = [] 5656 _files: Dict[str, str] = {} 5657 _body_params: Optional[bytes] = None 5658 5659 # process the path parameters 5660 if org_id is not None: 5661 _path_params["org_id"] = org_id 5662 if team_id is not None: 5663 _path_params["team_id"] = team_id 5664 if project_id is not None: 5665 _path_params["project_id"] = project_id 5666 # process the query parameters 5667 # process the header parameters 5668 # process the form parameters 5669 # process the body parameter 5670 5671 # set the HTTP header `Accept` 5672 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5673 5674 # authentication setting 5675 _auth_settings: List[str] = [] 5676 5677 return self.api_client.param_serialize( 5678 method="GET", 5679 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/settings", 5680 path_params=_path_params, 5681 query_params=_query_params, 5682 header_params=_header_params, 5683 body=_body_params, 5684 post_params=_form_params, 5685 files=_files, 5686 auth_settings=_auth_settings, 5687 collection_formats=_collection_formats, 5688 _host=_host, 5689 _request_auth=_request_auth, 5690 ) 5691 5692 @validate_call 5693 def enterprise_update_project_settings( 5694 self, 5695 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5696 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5697 project_id: Annotated[StrictStr, Field(description="The ID of the project whose settings you want to update.")], 5698 update_project_settings_request: UpdateProjectSettingsRequest, 5699 _request_timeout: Union[ 5700 None, 5701 Annotated[StrictFloat, Field(gt=0)], 5702 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5703 ] = None, 5704 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5705 _content_type: Optional[StrictStr] = None, 5706 _headers: Optional[Dict[StrictStr, Any]] = None, 5707 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5708 ) -> ProjectSettings: 5709 """Update project settings 5710 5711 Updates the settings of a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5712 5713 :param org_id: The ID of the organization to which the project belongs. (required) 5714 :type org_id: str 5715 :param team_id: The ID of the team to which the project belongs. (required) 5716 :type team_id: str 5717 :param project_id: The ID of the project whose settings you want to update. (required) 5718 :type project_id: str 5719 :param update_project_settings_request: (required) 5720 :type update_project_settings_request: UpdateProjectSettingsRequest 5721 :param _request_timeout: timeout setting for this request. If one 5722 number provided, it will be total request 5723 timeout. It can also be a pair (tuple) of 5724 (connection, read) timeouts. 5725 :type _request_timeout: int, tuple(int, int), optional 5726 :param _request_auth: set to override the auth_settings for an a single 5727 request; this effectively ignores the 5728 authentication in the spec for a single request. 5729 :type _request_auth: dict, optional 5730 :param _content_type: force content-type for the request. 5731 :type _content_type: str, Optional 5732 :param _headers: set to override the headers for a single 5733 request; this effectively ignores the headers 5734 in the spec for a single request. 5735 :type _headers: dict, optional 5736 :param _host_index: set to override the host_index for a single 5737 request; this effectively ignores the host_index 5738 in the spec for a single request. 5739 :type _host_index: int, optional 5740 :return: Returns the result object. 5741 """ # noqa: E501 5742 5743 _param = self._enterprise_update_project_settings_serialize( 5744 org_id=org_id, 5745 team_id=team_id, 5746 project_id=project_id, 5747 update_project_settings_request=update_project_settings_request, 5748 _request_auth=_request_auth, 5749 _content_type=_content_type, 5750 _headers=_headers, 5751 _host_index=_host_index, 5752 ) 5753 5754 _response_types_map: Dict[str, Optional[str]] = { 5755 "200": "ProjectSettings", 5756 "400": "Error400", 5757 "401": "Error401", 5758 "403": "Error403", 5759 "404": "Error404", 5760 "409": "Error409", 5761 "429": "Error429", 5762 } 5763 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5764 response_data.read() 5765 return self.api_client.response_deserialize( 5766 response_data=response_data, 5767 response_types_map=_response_types_map, 5768 ).data 5769 5770 def _enterprise_update_project_settings_serialize( 5771 self, 5772 org_id, 5773 team_id, 5774 project_id, 5775 update_project_settings_request, 5776 _request_auth, 5777 _content_type, 5778 _headers, 5779 _host_index, 5780 ) -> RequestSerialized: 5781 5782 _host = None 5783 5784 _collection_formats: Dict[str, str] = {} 5785 5786 _path_params: Dict[str, str] = {} 5787 _query_params: List[Tuple[str, str]] = [] 5788 _header_params: Dict[str, Optional[str]] = _headers or {} 5789 _form_params: List[Tuple[str, str]] = [] 5790 _files: Dict[str, str] = {} 5791 _body_params: Optional[bytes] = None 5792 5793 # process the path parameters 5794 if org_id is not None: 5795 _path_params["org_id"] = org_id 5796 if team_id is not None: 5797 _path_params["team_id"] = team_id 5798 if project_id is not None: 5799 _path_params["project_id"] = project_id 5800 # process the query parameters 5801 # process the header parameters 5802 # process the form parameters 5803 # process the body parameter 5804 if update_project_settings_request is not None: 5805 _body_params = update_project_settings_request 5806 5807 # set the HTTP header `Accept` 5808 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5809 5810 # set the HTTP header `Content-Type` 5811 if _content_type: 5812 _header_params["Content-Type"] = _content_type 5813 else: 5814 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 5815 if _default_content_type is not None: 5816 _header_params["Content-Type"] = _default_content_type 5817 5818 # authentication setting 5819 _auth_settings: List[str] = [] 5820 5821 return self.api_client.param_serialize( 5822 method="PATCH", 5823 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/settings", 5824 path_params=_path_params, 5825 query_params=_query_params, 5826 header_params=_header_params, 5827 body=_body_params, 5828 post_params=_form_params, 5829 files=_files, 5830 auth_settings=_auth_settings, 5831 collection_formats=_collection_formats, 5832 _host=_host, 5833 _request_auth=_request_auth, 5834 ) 5835 5836 @validate_call 5837 def enterprise_create_project( 5838 self, 5839 org_id: Annotated[ 5840 StrictStr, Field(description="The ID of the organization within which you you want to create a project.") 5841 ], 5842 team_id: Annotated[ 5843 StrictStr, Field(description="The ID of the team within which you you want to create a project.") 5844 ], 5845 create_project_request: CreateProjectRequest, 5846 _request_timeout: Union[ 5847 None, 5848 Annotated[StrictFloat, Field(gt=0)], 5849 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5850 ] = None, 5851 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5852 _content_type: Optional[StrictStr] = None, 5853 _headers: Optional[Dict[StrictStr, Any]] = None, 5854 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5855 ) -> Project: 5856 """Create project 5857 5858 Projects are essentially folders of boards with the option to manage user access for a smaller group of people within a team. Projects are here to help you organize your boards and make them easier to find and share. In other words, a project is a group of boards that you can share with your teammates all at once. For more information, see our <a href=\"https://help.miro.com/hc/en-us/articles/360018262033-Projects\" target=_blank>Help Center page on Projects</a>. <br><br>This API creates a new project in an existing team of an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5859 5860 :param org_id: The ID of the organization within which you you want to create a project. (required) 5861 :type org_id: str 5862 :param team_id: The ID of the team within which you you want to create a project. (required) 5863 :type team_id: str 5864 :param create_project_request: (required) 5865 :type create_project_request: CreateProjectRequest 5866 :param _request_timeout: timeout setting for this request. If one 5867 number provided, it will be total request 5868 timeout. It can also be a pair (tuple) of 5869 (connection, read) timeouts. 5870 :type _request_timeout: int, tuple(int, int), optional 5871 :param _request_auth: set to override the auth_settings for an a single 5872 request; this effectively ignores the 5873 authentication in the spec for a single request. 5874 :type _request_auth: dict, optional 5875 :param _content_type: force content-type for the request. 5876 :type _content_type: str, Optional 5877 :param _headers: set to override the headers for a single 5878 request; this effectively ignores the headers 5879 in the spec for a single request. 5880 :type _headers: dict, optional 5881 :param _host_index: set to override the host_index for a single 5882 request; this effectively ignores the host_index 5883 in the spec for a single request. 5884 :type _host_index: int, optional 5885 :return: Returns the result object. 5886 """ # noqa: E501 5887 5888 _param = self._enterprise_create_project_serialize( 5889 org_id=org_id, 5890 team_id=team_id, 5891 create_project_request=create_project_request, 5892 _request_auth=_request_auth, 5893 _content_type=_content_type, 5894 _headers=_headers, 5895 _host_index=_host_index, 5896 ) 5897 5898 _response_types_map: Dict[str, Optional[str]] = { 5899 "201": "Project", 5900 "400": "Error400", 5901 "401": "Error401", 5902 "403": "Error403", 5903 "404": "Error404", 5904 "409": "Error409", 5905 "429": "Error429", 5906 } 5907 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5908 response_data.read() 5909 return self.api_client.response_deserialize( 5910 response_data=response_data, 5911 response_types_map=_response_types_map, 5912 ).data 5913 5914 def _enterprise_create_project_serialize( 5915 self, 5916 org_id, 5917 team_id, 5918 create_project_request, 5919 _request_auth, 5920 _content_type, 5921 _headers, 5922 _host_index, 5923 ) -> RequestSerialized: 5924 5925 _host = None 5926 5927 _collection_formats: Dict[str, str] = {} 5928 5929 _path_params: Dict[str, str] = {} 5930 _query_params: List[Tuple[str, str]] = [] 5931 _header_params: Dict[str, Optional[str]] = _headers or {} 5932 _form_params: List[Tuple[str, str]] = [] 5933 _files: Dict[str, str] = {} 5934 _body_params: Optional[bytes] = None 5935 5936 # process the path parameters 5937 if org_id is not None: 5938 _path_params["org_id"] = org_id 5939 if team_id is not None: 5940 _path_params["team_id"] = team_id 5941 # process the query parameters 5942 # process the header parameters 5943 # process the form parameters 5944 # process the body parameter 5945 if create_project_request is not None: 5946 _body_params = create_project_request 5947 5948 # set the HTTP header `Accept` 5949 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5950 5951 # set the HTTP header `Content-Type` 5952 if _content_type: 5953 _header_params["Content-Type"] = _content_type 5954 else: 5955 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 5956 if _default_content_type is not None: 5957 _header_params["Content-Type"] = _default_content_type 5958 5959 # authentication setting 5960 _auth_settings: List[str] = [] 5961 5962 return self.api_client.param_serialize( 5963 method="POST", 5964 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects", 5965 path_params=_path_params, 5966 query_params=_query_params, 5967 header_params=_header_params, 5968 body=_body_params, 5969 post_params=_form_params, 5970 files=_files, 5971 auth_settings=_auth_settings, 5972 collection_formats=_collection_formats, 5973 _host=_host, 5974 _request_auth=_request_auth, 5975 ) 5976 5977 @validate_call 5978 def enterprise_delete_project( 5979 self, 5980 org_id: Annotated[ 5981 StrictStr, Field(description="The ID of the organization from which you want to delete a project.") 5982 ], 5983 team_id: Annotated[StrictStr, Field(description="The ID of the team from which you want to delete a project.")], 5984 project_id: Annotated[StrictStr, Field(description="The ID of the project that you want to delete.")], 5985 _request_timeout: Union[ 5986 None, 5987 Annotated[StrictFloat, Field(gt=0)], 5988 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5989 ] = None, 5990 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5991 _content_type: Optional[StrictStr] = None, 5992 _headers: Optional[Dict[StrictStr, Any]] = None, 5993 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5994 ) -> None: 5995 """Delete project 5996 5997 Deletes a project. After a project is deleted, all boards and users that belong to the project remain in the team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5998 5999 :param org_id: The ID of the organization from which you want to delete a project. (required) 6000 :type org_id: str 6001 :param team_id: The ID of the team from which you want to delete a project. (required) 6002 :type team_id: str 6003 :param project_id: The ID of the project that you want to delete. (required) 6004 :type project_id: str 6005 :param _request_timeout: timeout setting for this request. If one 6006 number provided, it will be total request 6007 timeout. It can also be a pair (tuple) of 6008 (connection, read) timeouts. 6009 :type _request_timeout: int, tuple(int, int), optional 6010 :param _request_auth: set to override the auth_settings for an a single 6011 request; this effectively ignores the 6012 authentication in the spec for a single request. 6013 :type _request_auth: dict, optional 6014 :param _content_type: force content-type for the request. 6015 :type _content_type: str, Optional 6016 :param _headers: set to override the headers for a single 6017 request; this effectively ignores the headers 6018 in the spec for a single request. 6019 :type _headers: dict, optional 6020 :param _host_index: set to override the host_index for a single 6021 request; this effectively ignores the host_index 6022 in the spec for a single request. 6023 :type _host_index: int, optional 6024 :return: Returns the result object. 6025 """ # noqa: E501 6026 6027 _param = self._enterprise_delete_project_serialize( 6028 org_id=org_id, 6029 team_id=team_id, 6030 project_id=project_id, 6031 _request_auth=_request_auth, 6032 _content_type=_content_type, 6033 _headers=_headers, 6034 _host_index=_host_index, 6035 ) 6036 6037 _response_types_map: Dict[str, Optional[str]] = { 6038 "204": None, 6039 "400": "Error400", 6040 "401": "Error401", 6041 "403": "Error403", 6042 "404": "Error404", 6043 "409": "Error409", 6044 "429": "Error429", 6045 } 6046 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6047 response_data.read() 6048 return self.api_client.response_deserialize( 6049 response_data=response_data, 6050 response_types_map=_response_types_map, 6051 ).data 6052 6053 def _enterprise_delete_project_serialize( 6054 self, 6055 org_id, 6056 team_id, 6057 project_id, 6058 _request_auth, 6059 _content_type, 6060 _headers, 6061 _host_index, 6062 ) -> RequestSerialized: 6063 6064 _host = None 6065 6066 _collection_formats: Dict[str, str] = {} 6067 6068 _path_params: Dict[str, str] = {} 6069 _query_params: List[Tuple[str, str]] = [] 6070 _header_params: Dict[str, Optional[str]] = _headers or {} 6071 _form_params: List[Tuple[str, str]] = [] 6072 _files: Dict[str, str] = {} 6073 _body_params: Optional[bytes] = None 6074 6075 # process the path parameters 6076 if org_id is not None: 6077 _path_params["org_id"] = org_id 6078 if team_id is not None: 6079 _path_params["team_id"] = team_id 6080 if project_id is not None: 6081 _path_params["project_id"] = project_id 6082 # process the query parameters 6083 # process the header parameters 6084 # process the form parameters 6085 # process the body parameter 6086 6087 # set the HTTP header `Accept` 6088 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6089 6090 # authentication setting 6091 _auth_settings: List[str] = [] 6092 6093 return self.api_client.param_serialize( 6094 method="DELETE", 6095 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}", 6096 path_params=_path_params, 6097 query_params=_query_params, 6098 header_params=_header_params, 6099 body=_body_params, 6100 post_params=_form_params, 6101 files=_files, 6102 auth_settings=_auth_settings, 6103 collection_formats=_collection_formats, 6104 _host=_host, 6105 _request_auth=_request_auth, 6106 ) 6107 6108 @validate_call 6109 def enterprise_get_project( 6110 self, 6111 org_id: Annotated[ 6112 StrictStr, 6113 Field(description="The ID of the organization from which you want to retrieve the project information."), 6114 ], 6115 team_id: Annotated[ 6116 StrictStr, Field(description="The ID of the team from which you want to retrieve the project information.") 6117 ], 6118 project_id: Annotated[ 6119 StrictStr, Field(description="The ID of the project for which you want to retrieve the information.") 6120 ], 6121 _request_timeout: Union[ 6122 None, 6123 Annotated[StrictFloat, Field(gt=0)], 6124 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6125 ] = None, 6126 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6127 _content_type: Optional[StrictStr] = None, 6128 _headers: Optional[Dict[StrictStr, Any]] = None, 6129 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6130 ) -> Project: 6131 """Get project 6132 6133 Retrieves project information, such as a name for an existing project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6134 6135 :param org_id: The ID of the organization from which you want to retrieve the project information. (required) 6136 :type org_id: str 6137 :param team_id: The ID of the team from which you want to retrieve the project information. (required) 6138 :type team_id: str 6139 :param project_id: The ID of the project for which you want to retrieve the information. (required) 6140 :type project_id: str 6141 :param _request_timeout: timeout setting for this request. If one 6142 number provided, it will be total request 6143 timeout. It can also be a pair (tuple) of 6144 (connection, read) timeouts. 6145 :type _request_timeout: int, tuple(int, int), optional 6146 :param _request_auth: set to override the auth_settings for an a single 6147 request; this effectively ignores the 6148 authentication in the spec for a single request. 6149 :type _request_auth: dict, optional 6150 :param _content_type: force content-type for the request. 6151 :type _content_type: str, Optional 6152 :param _headers: set to override the headers for a single 6153 request; this effectively ignores the headers 6154 in the spec for a single request. 6155 :type _headers: dict, optional 6156 :param _host_index: set to override the host_index for a single 6157 request; this effectively ignores the host_index 6158 in the spec for a single request. 6159 :type _host_index: int, optional 6160 :return: Returns the result object. 6161 """ # noqa: E501 6162 6163 _param = self._enterprise_get_project_serialize( 6164 org_id=org_id, 6165 team_id=team_id, 6166 project_id=project_id, 6167 _request_auth=_request_auth, 6168 _content_type=_content_type, 6169 _headers=_headers, 6170 _host_index=_host_index, 6171 ) 6172 6173 _response_types_map: Dict[str, Optional[str]] = { 6174 "200": "Project", 6175 "400": "Error400", 6176 "401": "Error401", 6177 "403": "Error403", 6178 "404": "Error404", 6179 "429": "Error429", 6180 } 6181 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6182 response_data.read() 6183 return self.api_client.response_deserialize( 6184 response_data=response_data, 6185 response_types_map=_response_types_map, 6186 ).data 6187 6188 def _enterprise_get_project_serialize( 6189 self, 6190 org_id, 6191 team_id, 6192 project_id, 6193 _request_auth, 6194 _content_type, 6195 _headers, 6196 _host_index, 6197 ) -> RequestSerialized: 6198 6199 _host = None 6200 6201 _collection_formats: Dict[str, str] = {} 6202 6203 _path_params: Dict[str, str] = {} 6204 _query_params: List[Tuple[str, str]] = [] 6205 _header_params: Dict[str, Optional[str]] = _headers or {} 6206 _form_params: List[Tuple[str, str]] = [] 6207 _files: Dict[str, str] = {} 6208 _body_params: Optional[bytes] = None 6209 6210 # process the path parameters 6211 if org_id is not None: 6212 _path_params["org_id"] = org_id 6213 if team_id is not None: 6214 _path_params["team_id"] = team_id 6215 if project_id is not None: 6216 _path_params["project_id"] = project_id 6217 # process the query parameters 6218 # process the header parameters 6219 # process the form parameters 6220 # process the body parameter 6221 6222 # set the HTTP header `Accept` 6223 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6224 6225 # authentication setting 6226 _auth_settings: List[str] = [] 6227 6228 return self.api_client.param_serialize( 6229 method="GET", 6230 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}", 6231 path_params=_path_params, 6232 query_params=_query_params, 6233 header_params=_header_params, 6234 body=_body_params, 6235 post_params=_form_params, 6236 files=_files, 6237 auth_settings=_auth_settings, 6238 collection_formats=_collection_formats, 6239 _host=_host, 6240 _request_auth=_request_auth, 6241 ) 6242 6243 @validate_call 6244 def enterprise_get_projects( 6245 self, 6246 org_id: Annotated[ 6247 StrictStr, 6248 Field( 6249 description="The ID of the organization from which you want to retrieve the list of available projects." 6250 ), 6251 ], 6252 team_id: Annotated[ 6253 StrictStr, 6254 Field(description="The ID of the team from which you want to retrieve the list of available projects."), 6255 ], 6256 limit: Annotated[ 6257 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 6258 Field( 6259 description="The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value." 6260 ), 6261 ] = None, 6262 cursor: Annotated[ 6263 Optional[StrictStr], 6264 Field( 6265 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 6266 ), 6267 ] = None, 6268 _request_timeout: Union[ 6269 None, 6270 Annotated[StrictFloat, Field(gt=0)], 6271 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6272 ] = None, 6273 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6274 _content_type: Optional[StrictStr] = None, 6275 _headers: Optional[Dict[StrictStr, Any]] = None, 6276 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6277 ) -> ProjectPage: 6278 """List of projects 6279 6280 Retrieves the list of projects in an existing team of an organization. You can retrieve all projects, including all private projects (projects that haven't been specifically shared with you) by enabling Content Admin permissions. To enable Content Admin permissions, see [Content Admin permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins).<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6281 6282 :param org_id: The ID of the organization from which you want to retrieve the list of available projects. (required) 6283 :type org_id: str 6284 :param team_id: The ID of the team from which you want to retrieve the list of available projects. (required) 6285 :type team_id: str 6286 :param limit: The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value. 6287 :type limit: int 6288 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 6289 :type cursor: str 6290 :param _request_timeout: timeout setting for this request. If one 6291 number provided, it will be total request 6292 timeout. It can also be a pair (tuple) of 6293 (connection, read) timeouts. 6294 :type _request_timeout: int, tuple(int, int), optional 6295 :param _request_auth: set to override the auth_settings for an a single 6296 request; this effectively ignores the 6297 authentication in the spec for a single request. 6298 :type _request_auth: dict, optional 6299 :param _content_type: force content-type for the request. 6300 :type _content_type: str, Optional 6301 :param _headers: set to override the headers for a single 6302 request; this effectively ignores the headers 6303 in the spec for a single request. 6304 :type _headers: dict, optional 6305 :param _host_index: set to override the host_index for a single 6306 request; this effectively ignores the host_index 6307 in the spec for a single request. 6308 :type _host_index: int, optional 6309 :return: Returns the result object. 6310 """ # noqa: E501 6311 6312 _param = self._enterprise_get_projects_serialize( 6313 org_id=org_id, 6314 team_id=team_id, 6315 limit=limit, 6316 cursor=cursor, 6317 _request_auth=_request_auth, 6318 _content_type=_content_type, 6319 _headers=_headers, 6320 _host_index=_host_index, 6321 ) 6322 6323 _response_types_map: Dict[str, Optional[str]] = { 6324 "200": "ProjectPage", 6325 "400": "Error400", 6326 "401": "Error401", 6327 "403": "Error403", 6328 "404": "Error404", 6329 "429": "Error429", 6330 } 6331 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6332 response_data.read() 6333 return self.api_client.response_deserialize( 6334 response_data=response_data, 6335 response_types_map=_response_types_map, 6336 ).data 6337 6338 def _enterprise_get_projects_serialize( 6339 self, 6340 org_id, 6341 team_id, 6342 limit, 6343 cursor, 6344 _request_auth, 6345 _content_type, 6346 _headers, 6347 _host_index, 6348 ) -> RequestSerialized: 6349 6350 _host = None 6351 6352 _collection_formats: Dict[str, str] = {} 6353 6354 _path_params: Dict[str, str] = {} 6355 _query_params: List[Tuple[str, str]] = [] 6356 _header_params: Dict[str, Optional[str]] = _headers or {} 6357 _form_params: List[Tuple[str, str]] = [] 6358 _files: Dict[str, str] = {} 6359 _body_params: Optional[bytes] = None 6360 6361 # process the path parameters 6362 if org_id is not None: 6363 _path_params["org_id"] = org_id 6364 if team_id is not None: 6365 _path_params["team_id"] = team_id 6366 # process the query parameters 6367 if limit is not None: 6368 6369 _query_params.append(("limit", limit)) 6370 6371 if cursor is not None: 6372 6373 _query_params.append(("cursor", cursor)) 6374 6375 # process the header parameters 6376 # process the form parameters 6377 # process the body parameter 6378 6379 # set the HTTP header `Accept` 6380 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6381 6382 # authentication setting 6383 _auth_settings: List[str] = [] 6384 6385 return self.api_client.param_serialize( 6386 method="GET", 6387 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects", 6388 path_params=_path_params, 6389 query_params=_query_params, 6390 header_params=_header_params, 6391 body=_body_params, 6392 post_params=_form_params, 6393 files=_files, 6394 auth_settings=_auth_settings, 6395 collection_formats=_collection_formats, 6396 _host=_host, 6397 _request_auth=_request_auth, 6398 ) 6399 6400 @validate_call 6401 def enterprise_update_project( 6402 self, 6403 org_id: Annotated[StrictStr, Field(description="The ID of an Organization.")], 6404 team_id: Annotated[StrictStr, Field(description="The ID of a Team.")], 6405 project_id: Annotated[StrictStr, Field(description="The ID of a Project.")], 6406 update_project_request: UpdateProjectRequest, 6407 _request_timeout: Union[ 6408 None, 6409 Annotated[StrictFloat, Field(gt=0)], 6410 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6411 ] = None, 6412 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6413 _content_type: Optional[StrictStr] = None, 6414 _headers: Optional[Dict[StrictStr, Any]] = None, 6415 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6416 ) -> Project: 6417 """Update project 6418 6419 Update information about a project, such as the project name.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6420 6421 :param org_id: The ID of an Organization. (required) 6422 :type org_id: str 6423 :param team_id: The ID of a Team. (required) 6424 :type team_id: str 6425 :param project_id: The ID of a Project. (required) 6426 :type project_id: str 6427 :param update_project_request: (required) 6428 :type update_project_request: UpdateProjectRequest 6429 :param _request_timeout: timeout setting for this request. If one 6430 number provided, it will be total request 6431 timeout. It can also be a pair (tuple) of 6432 (connection, read) timeouts. 6433 :type _request_timeout: int, tuple(int, int), optional 6434 :param _request_auth: set to override the auth_settings for an a single 6435 request; this effectively ignores the 6436 authentication in the spec for a single request. 6437 :type _request_auth: dict, optional 6438 :param _content_type: force content-type for the request. 6439 :type _content_type: str, Optional 6440 :param _headers: set to override the headers for a single 6441 request; this effectively ignores the headers 6442 in the spec for a single request. 6443 :type _headers: dict, optional 6444 :param _host_index: set to override the host_index for a single 6445 request; this effectively ignores the host_index 6446 in the spec for a single request. 6447 :type _host_index: int, optional 6448 :return: Returns the result object. 6449 """ # noqa: E501 6450 6451 _param = self._enterprise_update_project_serialize( 6452 org_id=org_id, 6453 team_id=team_id, 6454 project_id=project_id, 6455 update_project_request=update_project_request, 6456 _request_auth=_request_auth, 6457 _content_type=_content_type, 6458 _headers=_headers, 6459 _host_index=_host_index, 6460 ) 6461 6462 _response_types_map: Dict[str, Optional[str]] = { 6463 "200": "Project", 6464 "400": "Error400", 6465 "401": "Error401", 6466 "403": "Error403", 6467 "404": "Error404", 6468 "409": "Error409", 6469 "429": "Error429", 6470 } 6471 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6472 response_data.read() 6473 return self.api_client.response_deserialize( 6474 response_data=response_data, 6475 response_types_map=_response_types_map, 6476 ).data 6477 6478 def _enterprise_update_project_serialize( 6479 self, 6480 org_id, 6481 team_id, 6482 project_id, 6483 update_project_request, 6484 _request_auth, 6485 _content_type, 6486 _headers, 6487 _host_index, 6488 ) -> RequestSerialized: 6489 6490 _host = None 6491 6492 _collection_formats: Dict[str, str] = {} 6493 6494 _path_params: Dict[str, str] = {} 6495 _query_params: List[Tuple[str, str]] = [] 6496 _header_params: Dict[str, Optional[str]] = _headers or {} 6497 _form_params: List[Tuple[str, str]] = [] 6498 _files: Dict[str, str] = {} 6499 _body_params: Optional[bytes] = None 6500 6501 # process the path parameters 6502 if org_id is not None: 6503 _path_params["org_id"] = org_id 6504 if team_id is not None: 6505 _path_params["team_id"] = team_id 6506 if project_id is not None: 6507 _path_params["project_id"] = project_id 6508 # process the query parameters 6509 # process the header parameters 6510 # process the form parameters 6511 # process the body parameter 6512 if update_project_request is not None: 6513 _body_params = update_project_request 6514 6515 # set the HTTP header `Accept` 6516 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6517 6518 # set the HTTP header `Content-Type` 6519 if _content_type: 6520 _header_params["Content-Type"] = _content_type 6521 else: 6522 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 6523 if _default_content_type is not None: 6524 _header_params["Content-Type"] = _default_content_type 6525 6526 # authentication setting 6527 _auth_settings: List[str] = [] 6528 6529 return self.api_client.param_serialize( 6530 method="PATCH", 6531 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}", 6532 path_params=_path_params, 6533 query_params=_query_params, 6534 header_params=_header_params, 6535 body=_body_params, 6536 post_params=_form_params, 6537 files=_files, 6538 auth_settings=_auth_settings, 6539 collection_formats=_collection_formats, 6540 _host=_host, 6541 _request_auth=_request_auth, 6542 ) 6543 6544 @validate_call 6545 def enterprise_post_user_sessions_reset( 6546 self, 6547 email: Annotated[ 6548 StrictStr, 6549 Field( 6550 description="Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices." 6551 ), 6552 ], 6553 _request_timeout: Union[ 6554 None, 6555 Annotated[StrictFloat, Field(gt=0)], 6556 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6557 ] = None, 6558 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6559 _content_type: Optional[StrictStr] = None, 6560 _headers: Optional[Dict[StrictStr, Any]] = None, 6561 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6562 ) -> None: 6563 """Reset all sessions of a user 6564 6565 Reset all sessions of a user. Admins can now take immediate action to restrict user access to company data in case of security concerns. Calling this API ends all active Miro sessions across devices for a particular user, requiring the user to sign in again. This is useful in situations where a user leaves the company, their credentials are compromised, or there's suspicious activity on their account.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>sessions:delete</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6566 6567 :param email: Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices. (required) 6568 :type email: str 6569 :param _request_timeout: timeout setting for this request. If one 6570 number provided, it will be total request 6571 timeout. It can also be a pair (tuple) of 6572 (connection, read) timeouts. 6573 :type _request_timeout: int, tuple(int, int), optional 6574 :param _request_auth: set to override the auth_settings for an a single 6575 request; this effectively ignores the 6576 authentication in the spec for a single request. 6577 :type _request_auth: dict, optional 6578 :param _content_type: force content-type for the request. 6579 :type _content_type: str, Optional 6580 :param _headers: set to override the headers for a single 6581 request; this effectively ignores the headers 6582 in the spec for a single request. 6583 :type _headers: dict, optional 6584 :param _host_index: set to override the host_index for a single 6585 request; this effectively ignores the host_index 6586 in the spec for a single request. 6587 :type _host_index: int, optional 6588 :return: Returns the result object. 6589 """ # noqa: E501 6590 6591 _param = self._enterprise_post_user_sessions_reset_serialize( 6592 email=email, 6593 _request_auth=_request_auth, 6594 _content_type=_content_type, 6595 _headers=_headers, 6596 _host_index=_host_index, 6597 ) 6598 6599 _response_types_map: Dict[str, Optional[str]] = { 6600 "200": None, 6601 "400": None, 6602 "401": None, 6603 "403": None, 6604 "404": None, 6605 "429": None, 6606 } 6607 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6608 response_data.read() 6609 return self.api_client.response_deserialize( 6610 response_data=response_data, 6611 response_types_map=_response_types_map, 6612 ).data 6613 6614 def _enterprise_post_user_sessions_reset_serialize( 6615 self, 6616 email, 6617 _request_auth, 6618 _content_type, 6619 _headers, 6620 _host_index, 6621 ) -> RequestSerialized: 6622 6623 _host = None 6624 6625 _collection_formats: Dict[str, str] = {} 6626 6627 _path_params: Dict[str, str] = {} 6628 _query_params: List[Tuple[str, str]] = [] 6629 _header_params: Dict[str, Optional[str]] = _headers or {} 6630 _form_params: List[Tuple[str, str]] = [] 6631 _files: Dict[str, str] = {} 6632 _body_params: Optional[bytes] = None 6633 6634 # process the path parameters 6635 # process the query parameters 6636 if email is not None: 6637 6638 _query_params.append(("email", email)) 6639 6640 # process the header parameters 6641 # process the form parameters 6642 # process the body parameter 6643 6644 # authentication setting 6645 _auth_settings: List[str] = [] 6646 6647 return self.api_client.param_serialize( 6648 method="POST", 6649 resource_path="/v2/sessions/reset_all", 6650 path_params=_path_params, 6651 query_params=_query_params, 6652 header_params=_header_params, 6653 body=_body_params, 6654 post_params=_form_params, 6655 files=_files, 6656 auth_settings=_auth_settings, 6657 collection_formats=_collection_formats, 6658 _host=_host, 6659 _request_auth=_request_auth, 6660 ) 6661 6662 @validate_call 6663 def enterprise_delete_team_member( 6664 self, 6665 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6666 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6667 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 6668 _request_timeout: Union[ 6669 None, 6670 Annotated[StrictFloat, Field(gt=0)], 6671 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6672 ] = None, 6673 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6674 _content_type: Optional[StrictStr] = None, 6675 _headers: Optional[Dict[StrictStr, Any]] = None, 6676 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6677 ) -> None: 6678 """Delete team member from team 6679 6680 Deletes team member from team by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6681 6682 :param org_id: The id of the Organization. (required) 6683 :type org_id: str 6684 :param team_id: The id of the Team. (required) 6685 :type team_id: str 6686 :param member_id: The id of the Team Member (required) 6687 :type member_id: str 6688 :param _request_timeout: timeout setting for this request. If one 6689 number provided, it will be total request 6690 timeout. It can also be a pair (tuple) of 6691 (connection, read) timeouts. 6692 :type _request_timeout: int, tuple(int, int), optional 6693 :param _request_auth: set to override the auth_settings for an a single 6694 request; this effectively ignores the 6695 authentication in the spec for a single request. 6696 :type _request_auth: dict, optional 6697 :param _content_type: force content-type for the request. 6698 :type _content_type: str, Optional 6699 :param _headers: set to override the headers for a single 6700 request; this effectively ignores the headers 6701 in the spec for a single request. 6702 :type _headers: dict, optional 6703 :param _host_index: set to override the host_index for a single 6704 request; this effectively ignores the host_index 6705 in the spec for a single request. 6706 :type _host_index: int, optional 6707 :return: Returns the result object. 6708 """ # noqa: E501 6709 6710 _param = self._enterprise_delete_team_member_serialize( 6711 org_id=org_id, 6712 team_id=team_id, 6713 member_id=member_id, 6714 _request_auth=_request_auth, 6715 _content_type=_content_type, 6716 _headers=_headers, 6717 _host_index=_host_index, 6718 ) 6719 6720 _response_types_map: Dict[str, Optional[str]] = { 6721 "204": None, 6722 "400": None, 6723 "401": None, 6724 "403": None, 6725 "404": None, 6726 "409": None, 6727 "429": None, 6728 } 6729 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6730 response_data.read() 6731 return self.api_client.response_deserialize( 6732 response_data=response_data, 6733 response_types_map=_response_types_map, 6734 ).data 6735 6736 def _enterprise_delete_team_member_serialize( 6737 self, 6738 org_id, 6739 team_id, 6740 member_id, 6741 _request_auth, 6742 _content_type, 6743 _headers, 6744 _host_index, 6745 ) -> RequestSerialized: 6746 6747 _host = None 6748 6749 _collection_formats: Dict[str, str] = {} 6750 6751 _path_params: Dict[str, str] = {} 6752 _query_params: List[Tuple[str, str]] = [] 6753 _header_params: Dict[str, Optional[str]] = _headers or {} 6754 _form_params: List[Tuple[str, str]] = [] 6755 _files: Dict[str, str] = {} 6756 _body_params: Optional[bytes] = None 6757 6758 # process the path parameters 6759 if org_id is not None: 6760 _path_params["org_id"] = org_id 6761 if team_id is not None: 6762 _path_params["team_id"] = team_id 6763 if member_id is not None: 6764 _path_params["member_id"] = member_id 6765 # process the query parameters 6766 # process the header parameters 6767 # process the form parameters 6768 # process the body parameter 6769 6770 # authentication setting 6771 _auth_settings: List[str] = [] 6772 6773 return self.api_client.param_serialize( 6774 method="DELETE", 6775 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members/{member_id}", 6776 path_params=_path_params, 6777 query_params=_query_params, 6778 header_params=_header_params, 6779 body=_body_params, 6780 post_params=_form_params, 6781 files=_files, 6782 auth_settings=_auth_settings, 6783 collection_formats=_collection_formats, 6784 _host=_host, 6785 _request_auth=_request_auth, 6786 ) 6787 6788 @validate_call 6789 def enterprise_get_team_member( 6790 self, 6791 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6792 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6793 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 6794 _request_timeout: Union[ 6795 None, 6796 Annotated[StrictFloat, Field(gt=0)], 6797 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6798 ] = None, 6799 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6800 _content_type: Optional[StrictStr] = None, 6801 _headers: Optional[Dict[StrictStr, Any]] = None, 6802 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6803 ) -> TeamMember: 6804 """Get team member 6805 6806 Retrieves team member by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6807 6808 :param org_id: The id of the Organization. (required) 6809 :type org_id: str 6810 :param team_id: The id of the Team. (required) 6811 :type team_id: str 6812 :param member_id: The id of the Team Member (required) 6813 :type member_id: str 6814 :param _request_timeout: timeout setting for this request. If one 6815 number provided, it will be total request 6816 timeout. It can also be a pair (tuple) of 6817 (connection, read) timeouts. 6818 :type _request_timeout: int, tuple(int, int), optional 6819 :param _request_auth: set to override the auth_settings for an a single 6820 request; this effectively ignores the 6821 authentication in the spec for a single request. 6822 :type _request_auth: dict, optional 6823 :param _content_type: force content-type for the request. 6824 :type _content_type: str, Optional 6825 :param _headers: set to override the headers for a single 6826 request; this effectively ignores the headers 6827 in the spec for a single request. 6828 :type _headers: dict, optional 6829 :param _host_index: set to override the host_index for a single 6830 request; this effectively ignores the host_index 6831 in the spec for a single request. 6832 :type _host_index: int, optional 6833 :return: Returns the result object. 6834 """ # noqa: E501 6835 6836 _param = self._enterprise_get_team_member_serialize( 6837 org_id=org_id, 6838 team_id=team_id, 6839 member_id=member_id, 6840 _request_auth=_request_auth, 6841 _content_type=_content_type, 6842 _headers=_headers, 6843 _host_index=_host_index, 6844 ) 6845 6846 _response_types_map: Dict[str, Optional[str]] = { 6847 "200": "TeamMember", 6848 "400": None, 6849 "401": None, 6850 "403": None, 6851 "404": None, 6852 "429": None, 6853 } 6854 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6855 response_data.read() 6856 return self.api_client.response_deserialize( 6857 response_data=response_data, 6858 response_types_map=_response_types_map, 6859 ).data 6860 6861 def _enterprise_get_team_member_serialize( 6862 self, 6863 org_id, 6864 team_id, 6865 member_id, 6866 _request_auth, 6867 _content_type, 6868 _headers, 6869 _host_index, 6870 ) -> RequestSerialized: 6871 6872 _host = None 6873 6874 _collection_formats: Dict[str, str] = {} 6875 6876 _path_params: Dict[str, str] = {} 6877 _query_params: List[Tuple[str, str]] = [] 6878 _header_params: Dict[str, Optional[str]] = _headers or {} 6879 _form_params: List[Tuple[str, str]] = [] 6880 _files: Dict[str, str] = {} 6881 _body_params: Optional[bytes] = None 6882 6883 # process the path parameters 6884 if org_id is not None: 6885 _path_params["org_id"] = org_id 6886 if team_id is not None: 6887 _path_params["team_id"] = team_id 6888 if member_id is not None: 6889 _path_params["member_id"] = member_id 6890 # process the query parameters 6891 # process the header parameters 6892 # process the form parameters 6893 # process the body parameter 6894 6895 # set the HTTP header `Accept` 6896 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6897 6898 # authentication setting 6899 _auth_settings: List[str] = [] 6900 6901 return self.api_client.param_serialize( 6902 method="GET", 6903 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members/{member_id}", 6904 path_params=_path_params, 6905 query_params=_query_params, 6906 header_params=_header_params, 6907 body=_body_params, 6908 post_params=_form_params, 6909 files=_files, 6910 auth_settings=_auth_settings, 6911 collection_formats=_collection_formats, 6912 _host=_host, 6913 _request_auth=_request_auth, 6914 ) 6915 6916 @validate_call 6917 def enterprise_get_team_members( 6918 self, 6919 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6920 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6921 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 6922 cursor: Annotated[ 6923 Optional[StrictStr], 6924 Field( 6925 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 6926 ), 6927 ] = None, 6928 role: Annotated[ 6929 Optional[StrictStr], 6930 Field( 6931 description=' Role query. Filters members by role using full word match. Accepted values are: * "member": Team member with full member permissions. * "admin": Admin of a team. Team member with permission to manage team. * "non_team": External user, non-team user. * "team_guest": Team-guest user, user with access only to a team without access to organization. ' 6932 ), 6933 ] = None, 6934 _request_timeout: Union[ 6935 None, 6936 Annotated[StrictFloat, Field(gt=0)], 6937 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6938 ] = None, 6939 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6940 _content_type: Optional[StrictStr] = None, 6941 _headers: Optional[Dict[StrictStr, Any]] = None, 6942 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6943 ) -> TeamMembersPage: 6944 """List team members 6945 6946 Retrieves team members by cursor.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6947 6948 :param org_id: The id of the Organization. (required) 6949 :type org_id: str 6950 :param team_id: The id of the Team. (required) 6951 :type team_id: str 6952 :param limit: 6953 :type limit: int 6954 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 6955 :type cursor: str 6956 :param role: Role query. Filters members by role using full word match. Accepted values are: * \"member\": Team member with full member permissions. * \"admin\": Admin of a team. Team member with permission to manage team. * \"non_team\": External user, non-team user. * \"team_guest\": Team-guest user, user with access only to a team without access to organization. 6957 :type role: str 6958 :param _request_timeout: timeout setting for this request. If one 6959 number provided, it will be total request 6960 timeout. It can also be a pair (tuple) of 6961 (connection, read) timeouts. 6962 :type _request_timeout: int, tuple(int, int), optional 6963 :param _request_auth: set to override the auth_settings for an a single 6964 request; this effectively ignores the 6965 authentication in the spec for a single request. 6966 :type _request_auth: dict, optional 6967 :param _content_type: force content-type for the request. 6968 :type _content_type: str, Optional 6969 :param _headers: set to override the headers for a single 6970 request; this effectively ignores the headers 6971 in the spec for a single request. 6972 :type _headers: dict, optional 6973 :param _host_index: set to override the host_index for a single 6974 request; this effectively ignores the host_index 6975 in the spec for a single request. 6976 :type _host_index: int, optional 6977 :return: Returns the result object. 6978 """ # noqa: E501 6979 6980 _param = self._enterprise_get_team_members_serialize( 6981 org_id=org_id, 6982 team_id=team_id, 6983 limit=limit, 6984 cursor=cursor, 6985 role=role, 6986 _request_auth=_request_auth, 6987 _content_type=_content_type, 6988 _headers=_headers, 6989 _host_index=_host_index, 6990 ) 6991 6992 _response_types_map: Dict[str, Optional[str]] = { 6993 "200": "TeamMembersPage", 6994 "400": None, 6995 "401": None, 6996 "403": None, 6997 "404": None, 6998 "429": None, 6999 } 7000 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7001 response_data.read() 7002 return self.api_client.response_deserialize( 7003 response_data=response_data, 7004 response_types_map=_response_types_map, 7005 ).data 7006 7007 def _enterprise_get_team_members_serialize( 7008 self, 7009 org_id, 7010 team_id, 7011 limit, 7012 cursor, 7013 role, 7014 _request_auth, 7015 _content_type, 7016 _headers, 7017 _host_index, 7018 ) -> RequestSerialized: 7019 7020 _host = None 7021 7022 _collection_formats: Dict[str, str] = {} 7023 7024 _path_params: Dict[str, str] = {} 7025 _query_params: List[Tuple[str, str]] = [] 7026 _header_params: Dict[str, Optional[str]] = _headers or {} 7027 _form_params: List[Tuple[str, str]] = [] 7028 _files: Dict[str, str] = {} 7029 _body_params: Optional[bytes] = None 7030 7031 # process the path parameters 7032 if org_id is not None: 7033 _path_params["org_id"] = org_id 7034 if team_id is not None: 7035 _path_params["team_id"] = team_id 7036 # process the query parameters 7037 if limit is not None: 7038 7039 _query_params.append(("limit", limit)) 7040 7041 if cursor is not None: 7042 7043 _query_params.append(("cursor", cursor)) 7044 7045 if role is not None: 7046 7047 _query_params.append(("role", role)) 7048 7049 # process the header parameters 7050 # process the form parameters 7051 # process the body parameter 7052 7053 # set the HTTP header `Accept` 7054 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7055 7056 # authentication setting 7057 _auth_settings: List[str] = [] 7058 7059 return self.api_client.param_serialize( 7060 method="GET", 7061 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members", 7062 path_params=_path_params, 7063 query_params=_query_params, 7064 header_params=_header_params, 7065 body=_body_params, 7066 post_params=_form_params, 7067 files=_files, 7068 auth_settings=_auth_settings, 7069 collection_formats=_collection_formats, 7070 _host=_host, 7071 _request_auth=_request_auth, 7072 ) 7073 7074 @validate_call 7075 def enterprise_invite_team_member( 7076 self, 7077 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7078 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7079 team_member_invite: TeamMemberInvite, 7080 _request_timeout: Union[ 7081 None, 7082 Annotated[StrictFloat, Field(gt=0)], 7083 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7084 ] = None, 7085 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7086 _content_type: Optional[StrictStr] = None, 7087 _headers: Optional[Dict[StrictStr, Any]] = None, 7088 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7089 ) -> TeamMember: 7090 """Invite team members 7091 7092 Invites a new Miro user to an existing team. The user must exist in your Miro organization. Users who do not exist in your Miro organization can be invited to the team via [SCIM](https://developers.miro.com/docs/scim) and an external identity provider, such as Okta or Azure Active Directory.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7093 7094 :param org_id: The id of the Organization. (required) 7095 :type org_id: str 7096 :param team_id: The id of the Team. (required) 7097 :type team_id: str 7098 :param team_member_invite: (required) 7099 :type team_member_invite: TeamMemberInvite 7100 :param _request_timeout: timeout setting for this request. If one 7101 number provided, it will be total request 7102 timeout. It can also be a pair (tuple) of 7103 (connection, read) timeouts. 7104 :type _request_timeout: int, tuple(int, int), optional 7105 :param _request_auth: set to override the auth_settings for an a single 7106 request; this effectively ignores the 7107 authentication in the spec for a single request. 7108 :type _request_auth: dict, optional 7109 :param _content_type: force content-type for the request. 7110 :type _content_type: str, Optional 7111 :param _headers: set to override the headers for a single 7112 request; this effectively ignores the headers 7113 in the spec for a single request. 7114 :type _headers: dict, optional 7115 :param _host_index: set to override the host_index for a single 7116 request; this effectively ignores the host_index 7117 in the spec for a single request. 7118 :type _host_index: int, optional 7119 :return: Returns the result object. 7120 """ # noqa: E501 7121 7122 _param = self._enterprise_invite_team_member_serialize( 7123 org_id=org_id, 7124 team_id=team_id, 7125 team_member_invite=team_member_invite, 7126 _request_auth=_request_auth, 7127 _content_type=_content_type, 7128 _headers=_headers, 7129 _host_index=_host_index, 7130 ) 7131 7132 _response_types_map: Dict[str, Optional[str]] = { 7133 "201": "TeamMember", 7134 "400": None, 7135 "401": None, 7136 "403": None, 7137 "404": None, 7138 "409": None, 7139 "429": None, 7140 } 7141 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7142 response_data.read() 7143 return self.api_client.response_deserialize( 7144 response_data=response_data, 7145 response_types_map=_response_types_map, 7146 ).data 7147 7148 def _enterprise_invite_team_member_serialize( 7149 self, 7150 org_id, 7151 team_id, 7152 team_member_invite, 7153 _request_auth, 7154 _content_type, 7155 _headers, 7156 _host_index, 7157 ) -> RequestSerialized: 7158 7159 _host = None 7160 7161 _collection_formats: Dict[str, str] = {} 7162 7163 _path_params: Dict[str, str] = {} 7164 _query_params: List[Tuple[str, str]] = [] 7165 _header_params: Dict[str, Optional[str]] = _headers or {} 7166 _form_params: List[Tuple[str, str]] = [] 7167 _files: Dict[str, str] = {} 7168 _body_params: Optional[bytes] = None 7169 7170 # process the path parameters 7171 if org_id is not None: 7172 _path_params["org_id"] = org_id 7173 if team_id is not None: 7174 _path_params["team_id"] = team_id 7175 # process the query parameters 7176 # process the header parameters 7177 # process the form parameters 7178 # process the body parameter 7179 if team_member_invite is not None: 7180 _body_params = team_member_invite 7181 7182 # set the HTTP header `Accept` 7183 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7184 7185 # set the HTTP header `Content-Type` 7186 if _content_type: 7187 _header_params["Content-Type"] = _content_type 7188 else: 7189 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7190 if _default_content_type is not None: 7191 _header_params["Content-Type"] = _default_content_type 7192 7193 # authentication setting 7194 _auth_settings: List[str] = [] 7195 7196 return self.api_client.param_serialize( 7197 method="POST", 7198 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members", 7199 path_params=_path_params, 7200 query_params=_query_params, 7201 header_params=_header_params, 7202 body=_body_params, 7203 post_params=_form_params, 7204 files=_files, 7205 auth_settings=_auth_settings, 7206 collection_formats=_collection_formats, 7207 _host=_host, 7208 _request_auth=_request_auth, 7209 ) 7210 7211 @validate_call 7212 def enterprise_update_team_member( 7213 self, 7214 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7215 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7216 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 7217 team_member_changes: TeamMemberChanges, 7218 _request_timeout: Union[ 7219 None, 7220 Annotated[StrictFloat, Field(gt=0)], 7221 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7222 ] = None, 7223 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7224 _content_type: Optional[StrictStr] = None, 7225 _headers: Optional[Dict[StrictStr, Any]] = None, 7226 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7227 ) -> TeamMember: 7228 """Update team member 7229 7230 Updates team member role in team by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7231 7232 :param org_id: The id of the Organization. (required) 7233 :type org_id: str 7234 :param team_id: The id of the Team. (required) 7235 :type team_id: str 7236 :param member_id: The id of the Team Member (required) 7237 :type member_id: str 7238 :param team_member_changes: (required) 7239 :type team_member_changes: TeamMemberChanges 7240 :param _request_timeout: timeout setting for this request. If one 7241 number provided, it will be total request 7242 timeout. It can also be a pair (tuple) of 7243 (connection, read) timeouts. 7244 :type _request_timeout: int, tuple(int, int), optional 7245 :param _request_auth: set to override the auth_settings for an a single 7246 request; this effectively ignores the 7247 authentication in the spec for a single request. 7248 :type _request_auth: dict, optional 7249 :param _content_type: force content-type for the request. 7250 :type _content_type: str, Optional 7251 :param _headers: set to override the headers for a single 7252 request; this effectively ignores the headers 7253 in the spec for a single request. 7254 :type _headers: dict, optional 7255 :param _host_index: set to override the host_index for a single 7256 request; this effectively ignores the host_index 7257 in the spec for a single request. 7258 :type _host_index: int, optional 7259 :return: Returns the result object. 7260 """ # noqa: E501 7261 7262 _param = self._enterprise_update_team_member_serialize( 7263 org_id=org_id, 7264 team_id=team_id, 7265 member_id=member_id, 7266 team_member_changes=team_member_changes, 7267 _request_auth=_request_auth, 7268 _content_type=_content_type, 7269 _headers=_headers, 7270 _host_index=_host_index, 7271 ) 7272 7273 _response_types_map: Dict[str, Optional[str]] = { 7274 "200": "TeamMember", 7275 "400": None, 7276 "401": None, 7277 "403": None, 7278 "404": None, 7279 "409": None, 7280 "429": None, 7281 } 7282 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7283 response_data.read() 7284 return self.api_client.response_deserialize( 7285 response_data=response_data, 7286 response_types_map=_response_types_map, 7287 ).data 7288 7289 def _enterprise_update_team_member_serialize( 7290 self, 7291 org_id, 7292 team_id, 7293 member_id, 7294 team_member_changes, 7295 _request_auth, 7296 _content_type, 7297 _headers, 7298 _host_index, 7299 ) -> RequestSerialized: 7300 7301 _host = None 7302 7303 _collection_formats: Dict[str, str] = {} 7304 7305 _path_params: Dict[str, str] = {} 7306 _query_params: List[Tuple[str, str]] = [] 7307 _header_params: Dict[str, Optional[str]] = _headers or {} 7308 _form_params: List[Tuple[str, str]] = [] 7309 _files: Dict[str, str] = {} 7310 _body_params: Optional[bytes] = None 7311 7312 # process the path parameters 7313 if org_id is not None: 7314 _path_params["org_id"] = org_id 7315 if team_id is not None: 7316 _path_params["team_id"] = team_id 7317 if member_id is not None: 7318 _path_params["member_id"] = member_id 7319 # process the query parameters 7320 # process the header parameters 7321 # process the form parameters 7322 # process the body parameter 7323 if team_member_changes is not None: 7324 _body_params = team_member_changes 7325 7326 # set the HTTP header `Accept` 7327 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7328 7329 # set the HTTP header `Content-Type` 7330 if _content_type: 7331 _header_params["Content-Type"] = _content_type 7332 else: 7333 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7334 if _default_content_type is not None: 7335 _header_params["Content-Type"] = _default_content_type 7336 7337 # authentication setting 7338 _auth_settings: List[str] = [] 7339 7340 return self.api_client.param_serialize( 7341 method="PATCH", 7342 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members/{member_id}", 7343 path_params=_path_params, 7344 query_params=_query_params, 7345 header_params=_header_params, 7346 body=_body_params, 7347 post_params=_form_params, 7348 files=_files, 7349 auth_settings=_auth_settings, 7350 collection_formats=_collection_formats, 7351 _host=_host, 7352 _request_auth=_request_auth, 7353 ) 7354 7355 @validate_call 7356 def enterprise_get_default_team_settings( 7357 self, 7358 org_id: Annotated[StrictStr, Field(description="The id of an Organization.")], 7359 _request_timeout: Union[ 7360 None, 7361 Annotated[StrictFloat, Field(gt=0)], 7362 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7363 ] = None, 7364 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7365 _content_type: Optional[StrictStr] = None, 7366 _headers: Optional[Dict[StrictStr, Any]] = None, 7367 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7368 ) -> TeamSettings: 7369 """Get default team settings 7370 7371 Retrieves default team settings of an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7372 7373 :param org_id: The id of an Organization. (required) 7374 :type org_id: str 7375 :param _request_timeout: timeout setting for this request. If one 7376 number provided, it will be total request 7377 timeout. It can also be a pair (tuple) of 7378 (connection, read) timeouts. 7379 :type _request_timeout: int, tuple(int, int), optional 7380 :param _request_auth: set to override the auth_settings for an a single 7381 request; this effectively ignores the 7382 authentication in the spec for a single request. 7383 :type _request_auth: dict, optional 7384 :param _content_type: force content-type for the request. 7385 :type _content_type: str, Optional 7386 :param _headers: set to override the headers for a single 7387 request; this effectively ignores the headers 7388 in the spec for a single request. 7389 :type _headers: dict, optional 7390 :param _host_index: set to override the host_index for a single 7391 request; this effectively ignores the host_index 7392 in the spec for a single request. 7393 :type _host_index: int, optional 7394 :return: Returns the result object. 7395 """ # noqa: E501 7396 7397 _param = self._enterprise_get_default_team_settings_serialize( 7398 org_id=org_id, 7399 _request_auth=_request_auth, 7400 _content_type=_content_type, 7401 _headers=_headers, 7402 _host_index=_host_index, 7403 ) 7404 7405 _response_types_map: Dict[str, Optional[str]] = { 7406 "200": "TeamSettings", 7407 "400": None, 7408 "401": None, 7409 "403": None, 7410 "404": None, 7411 "429": None, 7412 } 7413 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7414 response_data.read() 7415 return self.api_client.response_deserialize( 7416 response_data=response_data, 7417 response_types_map=_response_types_map, 7418 ).data 7419 7420 def _enterprise_get_default_team_settings_serialize( 7421 self, 7422 org_id, 7423 _request_auth, 7424 _content_type, 7425 _headers, 7426 _host_index, 7427 ) -> RequestSerialized: 7428 7429 _host = None 7430 7431 _collection_formats: Dict[str, str] = {} 7432 7433 _path_params: Dict[str, str] = {} 7434 _query_params: List[Tuple[str, str]] = [] 7435 _header_params: Dict[str, Optional[str]] = _headers or {} 7436 _form_params: List[Tuple[str, str]] = [] 7437 _files: Dict[str, str] = {} 7438 _body_params: Optional[bytes] = None 7439 7440 # process the path parameters 7441 if org_id is not None: 7442 _path_params["org_id"] = org_id 7443 # process the query parameters 7444 # process the header parameters 7445 # process the form parameters 7446 # process the body parameter 7447 7448 # set the HTTP header `Accept` 7449 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7450 7451 # authentication setting 7452 _auth_settings: List[str] = [] 7453 7454 return self.api_client.param_serialize( 7455 method="GET", 7456 resource_path="/v2/orgs/{org_id}/default_teams_settings", 7457 path_params=_path_params, 7458 query_params=_query_params, 7459 header_params=_header_params, 7460 body=_body_params, 7461 post_params=_form_params, 7462 files=_files, 7463 auth_settings=_auth_settings, 7464 collection_formats=_collection_formats, 7465 _host=_host, 7466 _request_auth=_request_auth, 7467 ) 7468 7469 @validate_call 7470 def enterprise_get_team_settings( 7471 self, 7472 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7473 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7474 _request_timeout: Union[ 7475 None, 7476 Annotated[StrictFloat, Field(gt=0)], 7477 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7478 ] = None, 7479 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7480 _content_type: Optional[StrictStr] = None, 7481 _headers: Optional[Dict[StrictStr, Any]] = None, 7482 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7483 ) -> TeamSettings: 7484 """Get team settings 7485 7486 Retrieves team settings of an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7487 7488 :param org_id: The id of the Organization. (required) 7489 :type org_id: str 7490 :param team_id: The id of the Team. (required) 7491 :type team_id: str 7492 :param _request_timeout: timeout setting for this request. If one 7493 number provided, it will be total request 7494 timeout. It can also be a pair (tuple) of 7495 (connection, read) timeouts. 7496 :type _request_timeout: int, tuple(int, int), optional 7497 :param _request_auth: set to override the auth_settings for an a single 7498 request; this effectively ignores the 7499 authentication in the spec for a single request. 7500 :type _request_auth: dict, optional 7501 :param _content_type: force content-type for the request. 7502 :type _content_type: str, Optional 7503 :param _headers: set to override the headers for a single 7504 request; this effectively ignores the headers 7505 in the spec for a single request. 7506 :type _headers: dict, optional 7507 :param _host_index: set to override the host_index for a single 7508 request; this effectively ignores the host_index 7509 in the spec for a single request. 7510 :type _host_index: int, optional 7511 :return: Returns the result object. 7512 """ # noqa: E501 7513 7514 _param = self._enterprise_get_team_settings_serialize( 7515 org_id=org_id, 7516 team_id=team_id, 7517 _request_auth=_request_auth, 7518 _content_type=_content_type, 7519 _headers=_headers, 7520 _host_index=_host_index, 7521 ) 7522 7523 _response_types_map: Dict[str, Optional[str]] = { 7524 "200": "TeamSettings", 7525 "400": None, 7526 "401": None, 7527 "403": None, 7528 "404": None, 7529 "429": None, 7530 } 7531 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7532 response_data.read() 7533 return self.api_client.response_deserialize( 7534 response_data=response_data, 7535 response_types_map=_response_types_map, 7536 ).data 7537 7538 def _enterprise_get_team_settings_serialize( 7539 self, 7540 org_id, 7541 team_id, 7542 _request_auth, 7543 _content_type, 7544 _headers, 7545 _host_index, 7546 ) -> RequestSerialized: 7547 7548 _host = None 7549 7550 _collection_formats: Dict[str, str] = {} 7551 7552 _path_params: Dict[str, str] = {} 7553 _query_params: List[Tuple[str, str]] = [] 7554 _header_params: Dict[str, Optional[str]] = _headers or {} 7555 _form_params: List[Tuple[str, str]] = [] 7556 _files: Dict[str, str] = {} 7557 _body_params: Optional[bytes] = None 7558 7559 # process the path parameters 7560 if org_id is not None: 7561 _path_params["org_id"] = org_id 7562 if team_id is not None: 7563 _path_params["team_id"] = team_id 7564 # process the query parameters 7565 # process the header parameters 7566 # process the form parameters 7567 # process the body parameter 7568 7569 # set the HTTP header `Accept` 7570 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7571 7572 # authentication setting 7573 _auth_settings: List[str] = [] 7574 7575 return self.api_client.param_serialize( 7576 method="GET", 7577 resource_path="/v2/orgs/{org_id}/teams/{team_id}/settings", 7578 path_params=_path_params, 7579 query_params=_query_params, 7580 header_params=_header_params, 7581 body=_body_params, 7582 post_params=_form_params, 7583 files=_files, 7584 auth_settings=_auth_settings, 7585 collection_formats=_collection_formats, 7586 _host=_host, 7587 _request_auth=_request_auth, 7588 ) 7589 7590 @validate_call 7591 def enterprise_update_team_settings( 7592 self, 7593 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7594 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7595 team_settings_changes: TeamSettingsChanges, 7596 _request_timeout: Union[ 7597 None, 7598 Annotated[StrictFloat, Field(gt=0)], 7599 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7600 ] = None, 7601 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7602 _content_type: Optional[StrictStr] = None, 7603 _headers: Optional[Dict[StrictStr, Any]] = None, 7604 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7605 ) -> TeamSettings: 7606 """Update team settings 7607 7608 Updates team settings of an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7609 7610 :param org_id: The id of the Organization. (required) 7611 :type org_id: str 7612 :param team_id: The id of the Team. (required) 7613 :type team_id: str 7614 :param team_settings_changes: (required) 7615 :type team_settings_changes: TeamSettingsChanges 7616 :param _request_timeout: timeout setting for this request. If one 7617 number provided, it will be total request 7618 timeout. It can also be a pair (tuple) of 7619 (connection, read) timeouts. 7620 :type _request_timeout: int, tuple(int, int), optional 7621 :param _request_auth: set to override the auth_settings for an a single 7622 request; this effectively ignores the 7623 authentication in the spec for a single request. 7624 :type _request_auth: dict, optional 7625 :param _content_type: force content-type for the request. 7626 :type _content_type: str, Optional 7627 :param _headers: set to override the headers for a single 7628 request; this effectively ignores the headers 7629 in the spec for a single request. 7630 :type _headers: dict, optional 7631 :param _host_index: set to override the host_index for a single 7632 request; this effectively ignores the host_index 7633 in the spec for a single request. 7634 :type _host_index: int, optional 7635 :return: Returns the result object. 7636 """ # noqa: E501 7637 7638 _param = self._enterprise_update_team_settings_serialize( 7639 org_id=org_id, 7640 team_id=team_id, 7641 team_settings_changes=team_settings_changes, 7642 _request_auth=_request_auth, 7643 _content_type=_content_type, 7644 _headers=_headers, 7645 _host_index=_host_index, 7646 ) 7647 7648 _response_types_map: Dict[str, Optional[str]] = { 7649 "200": "TeamSettings", 7650 "400": None, 7651 "401": None, 7652 "403": None, 7653 "404": None, 7654 "409": None, 7655 "429": None, 7656 } 7657 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7658 response_data.read() 7659 return self.api_client.response_deserialize( 7660 response_data=response_data, 7661 response_types_map=_response_types_map, 7662 ).data 7663 7664 def _enterprise_update_team_settings_serialize( 7665 self, 7666 org_id, 7667 team_id, 7668 team_settings_changes, 7669 _request_auth, 7670 _content_type, 7671 _headers, 7672 _host_index, 7673 ) -> RequestSerialized: 7674 7675 _host = None 7676 7677 _collection_formats: Dict[str, str] = {} 7678 7679 _path_params: Dict[str, str] = {} 7680 _query_params: List[Tuple[str, str]] = [] 7681 _header_params: Dict[str, Optional[str]] = _headers or {} 7682 _form_params: List[Tuple[str, str]] = [] 7683 _files: Dict[str, str] = {} 7684 _body_params: Optional[bytes] = None 7685 7686 # process the path parameters 7687 if org_id is not None: 7688 _path_params["org_id"] = org_id 7689 if team_id is not None: 7690 _path_params["team_id"] = team_id 7691 # process the query parameters 7692 # process the header parameters 7693 # process the form parameters 7694 # process the body parameter 7695 if team_settings_changes is not None: 7696 _body_params = team_settings_changes 7697 7698 # set the HTTP header `Accept` 7699 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7700 7701 # set the HTTP header `Content-Type` 7702 if _content_type: 7703 _header_params["Content-Type"] = _content_type 7704 else: 7705 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7706 if _default_content_type is not None: 7707 _header_params["Content-Type"] = _default_content_type 7708 7709 # authentication setting 7710 _auth_settings: List[str] = [] 7711 7712 return self.api_client.param_serialize( 7713 method="PATCH", 7714 resource_path="/v2/orgs/{org_id}/teams/{team_id}/settings", 7715 path_params=_path_params, 7716 query_params=_query_params, 7717 header_params=_header_params, 7718 body=_body_params, 7719 post_params=_form_params, 7720 files=_files, 7721 auth_settings=_auth_settings, 7722 collection_formats=_collection_formats, 7723 _host=_host, 7724 _request_auth=_request_auth, 7725 ) 7726 7727 @validate_call 7728 def enterprise_create_team( 7729 self, 7730 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7731 create_team_request: CreateTeamRequest, 7732 _request_timeout: Union[ 7733 None, 7734 Annotated[StrictFloat, Field(gt=0)], 7735 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7736 ] = None, 7737 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7738 _content_type: Optional[StrictStr] = None, 7739 _headers: Optional[Dict[StrictStr, Any]] = None, 7740 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7741 ) -> Team: 7742 """Create team 7743 7744 Creates a new team in an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7745 7746 :param org_id: The id of the Organization. (required) 7747 :type org_id: str 7748 :param create_team_request: (required) 7749 :type create_team_request: CreateTeamRequest 7750 :param _request_timeout: timeout setting for this request. If one 7751 number provided, it will be total request 7752 timeout. It can also be a pair (tuple) of 7753 (connection, read) timeouts. 7754 :type _request_timeout: int, tuple(int, int), optional 7755 :param _request_auth: set to override the auth_settings for an a single 7756 request; this effectively ignores the 7757 authentication in the spec for a single request. 7758 :type _request_auth: dict, optional 7759 :param _content_type: force content-type for the request. 7760 :type _content_type: str, Optional 7761 :param _headers: set to override the headers for a single 7762 request; this effectively ignores the headers 7763 in the spec for a single request. 7764 :type _headers: dict, optional 7765 :param _host_index: set to override the host_index for a single 7766 request; this effectively ignores the host_index 7767 in the spec for a single request. 7768 :type _host_index: int, optional 7769 :return: Returns the result object. 7770 """ # noqa: E501 7771 7772 _param = self._enterprise_create_team_serialize( 7773 org_id=org_id, 7774 create_team_request=create_team_request, 7775 _request_auth=_request_auth, 7776 _content_type=_content_type, 7777 _headers=_headers, 7778 _host_index=_host_index, 7779 ) 7780 7781 _response_types_map: Dict[str, Optional[str]] = { 7782 "201": "Team", 7783 "400": None, 7784 "401": None, 7785 "403": None, 7786 "404": None, 7787 "429": None, 7788 } 7789 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7790 response_data.read() 7791 return self.api_client.response_deserialize( 7792 response_data=response_data, 7793 response_types_map=_response_types_map, 7794 ).data 7795 7796 def _enterprise_create_team_serialize( 7797 self, 7798 org_id, 7799 create_team_request, 7800 _request_auth, 7801 _content_type, 7802 _headers, 7803 _host_index, 7804 ) -> RequestSerialized: 7805 7806 _host = None 7807 7808 _collection_formats: Dict[str, str] = {} 7809 7810 _path_params: Dict[str, str] = {} 7811 _query_params: List[Tuple[str, str]] = [] 7812 _header_params: Dict[str, Optional[str]] = _headers or {} 7813 _form_params: List[Tuple[str, str]] = [] 7814 _files: Dict[str, str] = {} 7815 _body_params: Optional[bytes] = None 7816 7817 # process the path parameters 7818 if org_id is not None: 7819 _path_params["org_id"] = org_id 7820 # process the query parameters 7821 # process the header parameters 7822 # process the form parameters 7823 # process the body parameter 7824 if create_team_request is not None: 7825 _body_params = create_team_request 7826 7827 # set the HTTP header `Accept` 7828 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7829 7830 # set the HTTP header `Content-Type` 7831 if _content_type: 7832 _header_params["Content-Type"] = _content_type 7833 else: 7834 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7835 if _default_content_type is not None: 7836 _header_params["Content-Type"] = _default_content_type 7837 7838 # authentication setting 7839 _auth_settings: List[str] = [] 7840 7841 return self.api_client.param_serialize( 7842 method="POST", 7843 resource_path="/v2/orgs/{org_id}/teams", 7844 path_params=_path_params, 7845 query_params=_query_params, 7846 header_params=_header_params, 7847 body=_body_params, 7848 post_params=_form_params, 7849 files=_files, 7850 auth_settings=_auth_settings, 7851 collection_formats=_collection_formats, 7852 _host=_host, 7853 _request_auth=_request_auth, 7854 ) 7855 7856 @validate_call 7857 def enterprise_delete_team( 7858 self, 7859 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7860 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7861 _request_timeout: Union[ 7862 None, 7863 Annotated[StrictFloat, Field(gt=0)], 7864 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7865 ] = None, 7866 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7867 _content_type: Optional[StrictStr] = None, 7868 _headers: Optional[Dict[StrictStr, Any]] = None, 7869 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7870 ) -> None: 7871 """Delete team 7872 7873 Deletes an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7874 7875 :param org_id: The id of the Organization. (required) 7876 :type org_id: str 7877 :param team_id: The id of the Team. (required) 7878 :type team_id: str 7879 :param _request_timeout: timeout setting for this request. If one 7880 number provided, it will be total request 7881 timeout. It can also be a pair (tuple) of 7882 (connection, read) timeouts. 7883 :type _request_timeout: int, tuple(int, int), optional 7884 :param _request_auth: set to override the auth_settings for an a single 7885 request; this effectively ignores the 7886 authentication in the spec for a single request. 7887 :type _request_auth: dict, optional 7888 :param _content_type: force content-type for the request. 7889 :type _content_type: str, Optional 7890 :param _headers: set to override the headers for a single 7891 request; this effectively ignores the headers 7892 in the spec for a single request. 7893 :type _headers: dict, optional 7894 :param _host_index: set to override the host_index for a single 7895 request; this effectively ignores the host_index 7896 in the spec for a single request. 7897 :type _host_index: int, optional 7898 :return: Returns the result object. 7899 """ # noqa: E501 7900 7901 _param = self._enterprise_delete_team_serialize( 7902 org_id=org_id, 7903 team_id=team_id, 7904 _request_auth=_request_auth, 7905 _content_type=_content_type, 7906 _headers=_headers, 7907 _host_index=_host_index, 7908 ) 7909 7910 _response_types_map: Dict[str, Optional[str]] = { 7911 "204": None, 7912 "400": None, 7913 "401": None, 7914 "403": None, 7915 "404": None, 7916 "429": None, 7917 } 7918 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7919 response_data.read() 7920 return self.api_client.response_deserialize( 7921 response_data=response_data, 7922 response_types_map=_response_types_map, 7923 ).data 7924 7925 def _enterprise_delete_team_serialize( 7926 self, 7927 org_id, 7928 team_id, 7929 _request_auth, 7930 _content_type, 7931 _headers, 7932 _host_index, 7933 ) -> RequestSerialized: 7934 7935 _host = None 7936 7937 _collection_formats: Dict[str, str] = {} 7938 7939 _path_params: Dict[str, str] = {} 7940 _query_params: List[Tuple[str, str]] = [] 7941 _header_params: Dict[str, Optional[str]] = _headers or {} 7942 _form_params: List[Tuple[str, str]] = [] 7943 _files: Dict[str, str] = {} 7944 _body_params: Optional[bytes] = None 7945 7946 # process the path parameters 7947 if org_id is not None: 7948 _path_params["org_id"] = org_id 7949 if team_id is not None: 7950 _path_params["team_id"] = team_id 7951 # process the query parameters 7952 # process the header parameters 7953 # process the form parameters 7954 # process the body parameter 7955 7956 # authentication setting 7957 _auth_settings: List[str] = [] 7958 7959 return self.api_client.param_serialize( 7960 method="DELETE", 7961 resource_path="/v2/orgs/{org_id}/teams/{team_id}", 7962 path_params=_path_params, 7963 query_params=_query_params, 7964 header_params=_header_params, 7965 body=_body_params, 7966 post_params=_form_params, 7967 files=_files, 7968 auth_settings=_auth_settings, 7969 collection_formats=_collection_formats, 7970 _host=_host, 7971 _request_auth=_request_auth, 7972 ) 7973 7974 @validate_call 7975 def enterprise_get_team( 7976 self, 7977 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7978 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7979 _request_timeout: Union[ 7980 None, 7981 Annotated[StrictFloat, Field(gt=0)], 7982 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7983 ] = None, 7984 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7985 _content_type: Optional[StrictStr] = None, 7986 _headers: Optional[Dict[StrictStr, Any]] = None, 7987 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7988 ) -> Team: 7989 """Get team 7990 7991 Retrieves team information for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7992 7993 :param org_id: The id of the Organization. (required) 7994 :type org_id: str 7995 :param team_id: The id of the Team. (required) 7996 :type team_id: str 7997 :param _request_timeout: timeout setting for this request. If one 7998 number provided, it will be total request 7999 timeout. It can also be a pair (tuple) of 8000 (connection, read) timeouts. 8001 :type _request_timeout: int, tuple(int, int), optional 8002 :param _request_auth: set to override the auth_settings for an a single 8003 request; this effectively ignores the 8004 authentication in the spec for a single request. 8005 :type _request_auth: dict, optional 8006 :param _content_type: force content-type for the request. 8007 :type _content_type: str, Optional 8008 :param _headers: set to override the headers for a single 8009 request; this effectively ignores the headers 8010 in the spec for a single request. 8011 :type _headers: dict, optional 8012 :param _host_index: set to override the host_index for a single 8013 request; this effectively ignores the host_index 8014 in the spec for a single request. 8015 :type _host_index: int, optional 8016 :return: Returns the result object. 8017 """ # noqa: E501 8018 8019 _param = self._enterprise_get_team_serialize( 8020 org_id=org_id, 8021 team_id=team_id, 8022 _request_auth=_request_auth, 8023 _content_type=_content_type, 8024 _headers=_headers, 8025 _host_index=_host_index, 8026 ) 8027 8028 _response_types_map: Dict[str, Optional[str]] = { 8029 "200": "Team", 8030 "400": None, 8031 "401": None, 8032 "403": None, 8033 "404": None, 8034 "429": None, 8035 } 8036 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8037 response_data.read() 8038 return self.api_client.response_deserialize( 8039 response_data=response_data, 8040 response_types_map=_response_types_map, 8041 ).data 8042 8043 def _enterprise_get_team_serialize( 8044 self, 8045 org_id, 8046 team_id, 8047 _request_auth, 8048 _content_type, 8049 _headers, 8050 _host_index, 8051 ) -> RequestSerialized: 8052 8053 _host = None 8054 8055 _collection_formats: Dict[str, str] = {} 8056 8057 _path_params: Dict[str, str] = {} 8058 _query_params: List[Tuple[str, str]] = [] 8059 _header_params: Dict[str, Optional[str]] = _headers or {} 8060 _form_params: List[Tuple[str, str]] = [] 8061 _files: Dict[str, str] = {} 8062 _body_params: Optional[bytes] = None 8063 8064 # process the path parameters 8065 if org_id is not None: 8066 _path_params["org_id"] = org_id 8067 if team_id is not None: 8068 _path_params["team_id"] = team_id 8069 # process the query parameters 8070 # process the header parameters 8071 # process the form parameters 8072 # process the body parameter 8073 8074 # set the HTTP header `Accept` 8075 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8076 8077 # authentication setting 8078 _auth_settings: List[str] = [] 8079 8080 return self.api_client.param_serialize( 8081 method="GET", 8082 resource_path="/v2/orgs/{org_id}/teams/{team_id}", 8083 path_params=_path_params, 8084 query_params=_query_params, 8085 header_params=_header_params, 8086 body=_body_params, 8087 post_params=_form_params, 8088 files=_files, 8089 auth_settings=_auth_settings, 8090 collection_formats=_collection_formats, 8091 _host=_host, 8092 _request_auth=_request_auth, 8093 ) 8094 8095 @validate_call 8096 def enterprise_get_teams( 8097 self, 8098 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 8099 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 8100 cursor: Annotated[ 8101 Optional[StrictStr], 8102 Field( 8103 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 8104 ), 8105 ] = None, 8106 name: Annotated[ 8107 Optional[StrictStr], 8108 Field( 8109 description='Name query. Filters teams by name using case insensitive partial match. A value "dev" will return both "Developer\'s team" and "Team for developers".' 8110 ), 8111 ] = None, 8112 _request_timeout: Union[ 8113 None, 8114 Annotated[StrictFloat, Field(gt=0)], 8115 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8116 ] = None, 8117 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8118 _content_type: Optional[StrictStr] = None, 8119 _headers: Optional[Dict[StrictStr, Any]] = None, 8120 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8121 ) -> TeamsPage: 8122 """List teams 8123 8124 Retrieves list of teams in an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 8125 8126 :param org_id: The id of the Organization. (required) 8127 :type org_id: str 8128 :param limit: 8129 :type limit: int 8130 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 8131 :type cursor: str 8132 :param name: Name query. Filters teams by name using case insensitive partial match. A value \"dev\" will return both \"Developer's team\" and \"Team for developers\". 8133 :type name: str 8134 :param _request_timeout: timeout setting for this request. If one 8135 number provided, it will be total request 8136 timeout. It can also be a pair (tuple) of 8137 (connection, read) timeouts. 8138 :type _request_timeout: int, tuple(int, int), optional 8139 :param _request_auth: set to override the auth_settings for an a single 8140 request; this effectively ignores the 8141 authentication in the spec for a single request. 8142 :type _request_auth: dict, optional 8143 :param _content_type: force content-type for the request. 8144 :type _content_type: str, Optional 8145 :param _headers: set to override the headers for a single 8146 request; this effectively ignores the headers 8147 in the spec for a single request. 8148 :type _headers: dict, optional 8149 :param _host_index: set to override the host_index for a single 8150 request; this effectively ignores the host_index 8151 in the spec for a single request. 8152 :type _host_index: int, optional 8153 :return: Returns the result object. 8154 """ # noqa: E501 8155 8156 _param = self._enterprise_get_teams_serialize( 8157 org_id=org_id, 8158 limit=limit, 8159 cursor=cursor, 8160 name=name, 8161 _request_auth=_request_auth, 8162 _content_type=_content_type, 8163 _headers=_headers, 8164 _host_index=_host_index, 8165 ) 8166 8167 _response_types_map: Dict[str, Optional[str]] = { 8168 "200": "TeamsPage", 8169 "400": None, 8170 "401": None, 8171 "403": None, 8172 "404": None, 8173 "429": None, 8174 } 8175 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8176 response_data.read() 8177 return self.api_client.response_deserialize( 8178 response_data=response_data, 8179 response_types_map=_response_types_map, 8180 ).data 8181 8182 def _enterprise_get_teams_serialize( 8183 self, 8184 org_id, 8185 limit, 8186 cursor, 8187 name, 8188 _request_auth, 8189 _content_type, 8190 _headers, 8191 _host_index, 8192 ) -> RequestSerialized: 8193 8194 _host = None 8195 8196 _collection_formats: Dict[str, str] = {} 8197 8198 _path_params: Dict[str, str] = {} 8199 _query_params: List[Tuple[str, str]] = [] 8200 _header_params: Dict[str, Optional[str]] = _headers or {} 8201 _form_params: List[Tuple[str, str]] = [] 8202 _files: Dict[str, str] = {} 8203 _body_params: Optional[bytes] = None 8204 8205 # process the path parameters 8206 if org_id is not None: 8207 _path_params["org_id"] = org_id 8208 # process the query parameters 8209 if limit is not None: 8210 8211 _query_params.append(("limit", limit)) 8212 8213 if cursor is not None: 8214 8215 _query_params.append(("cursor", cursor)) 8216 8217 if name is not None: 8218 8219 _query_params.append(("name", name)) 8220 8221 # process the header parameters 8222 # process the form parameters 8223 # process the body parameter 8224 8225 # set the HTTP header `Accept` 8226 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8227 8228 # authentication setting 8229 _auth_settings: List[str] = [] 8230 8231 return self.api_client.param_serialize( 8232 method="GET", 8233 resource_path="/v2/orgs/{org_id}/teams", 8234 path_params=_path_params, 8235 query_params=_query_params, 8236 header_params=_header_params, 8237 body=_body_params, 8238 post_params=_form_params, 8239 files=_files, 8240 auth_settings=_auth_settings, 8241 collection_formats=_collection_formats, 8242 _host=_host, 8243 _request_auth=_request_auth, 8244 ) 8245 8246 @validate_call 8247 def enterprise_update_team( 8248 self, 8249 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 8250 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 8251 team_changes: TeamChanges, 8252 _request_timeout: Union[ 8253 None, 8254 Annotated[StrictFloat, Field(gt=0)], 8255 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8256 ] = None, 8257 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8258 _content_type: Optional[StrictStr] = None, 8259 _headers: Optional[Dict[StrictStr, Any]] = None, 8260 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8261 ) -> Team: 8262 """Update team 8263 8264 Updates an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 8265 8266 :param org_id: The id of the Organization. (required) 8267 :type org_id: str 8268 :param team_id: The id of the Team. (required) 8269 :type team_id: str 8270 :param team_changes: (required) 8271 :type team_changes: TeamChanges 8272 :param _request_timeout: timeout setting for this request. If one 8273 number provided, it will be total request 8274 timeout. It can also be a pair (tuple) of 8275 (connection, read) timeouts. 8276 :type _request_timeout: int, tuple(int, int), optional 8277 :param _request_auth: set to override the auth_settings for an a single 8278 request; this effectively ignores the 8279 authentication in the spec for a single request. 8280 :type _request_auth: dict, optional 8281 :param _content_type: force content-type for the request. 8282 :type _content_type: str, Optional 8283 :param _headers: set to override the headers for a single 8284 request; this effectively ignores the headers 8285 in the spec for a single request. 8286 :type _headers: dict, optional 8287 :param _host_index: set to override the host_index for a single 8288 request; this effectively ignores the host_index 8289 in the spec for a single request. 8290 :type _host_index: int, optional 8291 :return: Returns the result object. 8292 """ # noqa: E501 8293 8294 _param = self._enterprise_update_team_serialize( 8295 org_id=org_id, 8296 team_id=team_id, 8297 team_changes=team_changes, 8298 _request_auth=_request_auth, 8299 _content_type=_content_type, 8300 _headers=_headers, 8301 _host_index=_host_index, 8302 ) 8303 8304 _response_types_map: Dict[str, Optional[str]] = { 8305 "200": "Team", 8306 "400": None, 8307 "401": None, 8308 "403": None, 8309 "404": None, 8310 "429": None, 8311 } 8312 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8313 response_data.read() 8314 return self.api_client.response_deserialize( 8315 response_data=response_data, 8316 response_types_map=_response_types_map, 8317 ).data 8318 8319 def _enterprise_update_team_serialize( 8320 self, 8321 org_id, 8322 team_id, 8323 team_changes, 8324 _request_auth, 8325 _content_type, 8326 _headers, 8327 _host_index, 8328 ) -> RequestSerialized: 8329 8330 _host = None 8331 8332 _collection_formats: Dict[str, str] = {} 8333 8334 _path_params: Dict[str, str] = {} 8335 _query_params: List[Tuple[str, str]] = [] 8336 _header_params: Dict[str, Optional[str]] = _headers or {} 8337 _form_params: List[Tuple[str, str]] = [] 8338 _files: Dict[str, str] = {} 8339 _body_params: Optional[bytes] = None 8340 8341 # process the path parameters 8342 if org_id is not None: 8343 _path_params["org_id"] = org_id 8344 if team_id is not None: 8345 _path_params["team_id"] = team_id 8346 # process the query parameters 8347 # process the header parameters 8348 # process the form parameters 8349 # process the body parameter 8350 if team_changes is not None: 8351 _body_params = team_changes 8352 8353 # set the HTTP header `Accept` 8354 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8355 8356 # set the HTTP header `Content-Type` 8357 if _content_type: 8358 _header_params["Content-Type"] = _content_type 8359 else: 8360 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 8361 if _default_content_type is not None: 8362 _header_params["Content-Type"] = _default_content_type 8363 8364 # authentication setting 8365 _auth_settings: List[str] = [] 8366 8367 return self.api_client.param_serialize( 8368 method="PATCH", 8369 resource_path="/v2/orgs/{org_id}/teams/{team_id}", 8370 path_params=_path_params, 8371 query_params=_query_params, 8372 header_params=_header_params, 8373 body=_body_params, 8374 post_params=_form_params, 8375 files=_files, 8376 auth_settings=_auth_settings, 8377 collection_formats=_collection_formats, 8378 _host=_host, 8379 _request_auth=_request_auth, 8380 ) 8381 8382 @validate_call 8383 def create_board_subscription( 8384 self, 8385 create_board_subscription_request: CreateBoardSubscriptionRequest, 8386 _request_timeout: Union[ 8387 None, 8388 Annotated[StrictFloat, Field(gt=0)], 8389 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8390 ] = None, 8391 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8392 _content_type: Optional[StrictStr] = None, 8393 _headers: Optional[Dict[StrictStr, Any]] = None, 8394 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8395 ) -> BoardSubscription: 8396 """Create webhook subscription 8397 8398 Creates a webhook subscription to receive notifications when an item on a board is updated. Subscriptions are created per user, per board. You can create multiple subscriptions. We currently support all board items except tags, connectors, and comments.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8399 8400 :param create_board_subscription_request: (required) 8401 :type create_board_subscription_request: CreateBoardSubscriptionRequest 8402 :param _request_timeout: timeout setting for this request. If one 8403 number provided, it will be total request 8404 timeout. It can also be a pair (tuple) of 8405 (connection, read) timeouts. 8406 :type _request_timeout: int, tuple(int, int), optional 8407 :param _request_auth: set to override the auth_settings for an a single 8408 request; this effectively ignores the 8409 authentication in the spec for a single request. 8410 :type _request_auth: dict, optional 8411 :param _content_type: force content-type for the request. 8412 :type _content_type: str, Optional 8413 :param _headers: set to override the headers for a single 8414 request; this effectively ignores the headers 8415 in the spec for a single request. 8416 :type _headers: dict, optional 8417 :param _host_index: set to override the host_index for a single 8418 request; this effectively ignores the host_index 8419 in the spec for a single request. 8420 :type _host_index: int, optional 8421 :return: Returns the result object. 8422 """ # noqa: E501 8423 8424 _param = self._create_board_subscription_serialize( 8425 create_board_subscription_request=create_board_subscription_request, 8426 _request_auth=_request_auth, 8427 _content_type=_content_type, 8428 _headers=_headers, 8429 _host_index=_host_index, 8430 ) 8431 8432 _response_types_map: Dict[str, Optional[str]] = { 8433 "201": "BoardSubscription", 8434 "400": "CreateFrameItem400Response", 8435 "404": "CreateFrameItem400Response", 8436 "429": "CreateFrameItem400Response", 8437 } 8438 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8439 response_data.read() 8440 return self.api_client.response_deserialize( 8441 response_data=response_data, 8442 response_types_map=_response_types_map, 8443 ).data 8444 8445 def _create_board_subscription_serialize( 8446 self, 8447 create_board_subscription_request, 8448 _request_auth, 8449 _content_type, 8450 _headers, 8451 _host_index, 8452 ) -> RequestSerialized: 8453 8454 _host = None 8455 8456 _collection_formats: Dict[str, str] = {} 8457 8458 _path_params: Dict[str, str] = {} 8459 _query_params: List[Tuple[str, str]] = [] 8460 _header_params: Dict[str, Optional[str]] = _headers or {} 8461 _form_params: List[Tuple[str, str]] = [] 8462 _files: Dict[str, str] = {} 8463 _body_params: Optional[bytes] = None 8464 8465 # process the path parameters 8466 # process the query parameters 8467 # process the header parameters 8468 # process the form parameters 8469 # process the body parameter 8470 if create_board_subscription_request is not None: 8471 _body_params = create_board_subscription_request 8472 8473 # set the HTTP header `Accept` 8474 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8475 8476 # set the HTTP header `Content-Type` 8477 if _content_type: 8478 _header_params["Content-Type"] = _content_type 8479 else: 8480 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 8481 if _default_content_type is not None: 8482 _header_params["Content-Type"] = _default_content_type 8483 8484 # authentication setting 8485 _auth_settings: List[str] = [] 8486 8487 return self.api_client.param_serialize( 8488 method="POST", 8489 resource_path="/v2-experimental/webhooks/board_subscriptions", 8490 path_params=_path_params, 8491 query_params=_query_params, 8492 header_params=_header_params, 8493 body=_body_params, 8494 post_params=_form_params, 8495 files=_files, 8496 auth_settings=_auth_settings, 8497 collection_formats=_collection_formats, 8498 _host=_host, 8499 _request_auth=_request_auth, 8500 ) 8501 8502 @validate_call 8503 def delete_subscription_by_id( 8504 self, 8505 subscription_id: Annotated[ 8506 StrictStr, Field(description="Unique identifier (ID) of the subscription that you want to delete") 8507 ], 8508 _request_timeout: Union[ 8509 None, 8510 Annotated[StrictFloat, Field(gt=0)], 8511 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8512 ] = None, 8513 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8514 _content_type: Optional[StrictStr] = None, 8515 _headers: Optional[Dict[StrictStr, Any]] = None, 8516 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8517 ) -> object: 8518 """Delete webhook subscription 8519 8520 Deletes the specified webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8521 8522 :param subscription_id: Unique identifier (ID) of the subscription that you want to delete (required) 8523 :type subscription_id: str 8524 :param _request_timeout: timeout setting for this request. If one 8525 number provided, it will be total request 8526 timeout. It can also be a pair (tuple) of 8527 (connection, read) timeouts. 8528 :type _request_timeout: int, tuple(int, int), optional 8529 :param _request_auth: set to override the auth_settings for an a single 8530 request; this effectively ignores the 8531 authentication in the spec for a single request. 8532 :type _request_auth: dict, optional 8533 :param _content_type: force content-type for the request. 8534 :type _content_type: str, Optional 8535 :param _headers: set to override the headers for a single 8536 request; this effectively ignores the headers 8537 in the spec for a single request. 8538 :type _headers: dict, optional 8539 :param _host_index: set to override the host_index for a single 8540 request; this effectively ignores the host_index 8541 in the spec for a single request. 8542 :type _host_index: int, optional 8543 :return: Returns the result object. 8544 """ # noqa: E501 8545 8546 _param = self._delete_subscription_by_id_serialize( 8547 subscription_id=subscription_id, 8548 _request_auth=_request_auth, 8549 _content_type=_content_type, 8550 _headers=_headers, 8551 _host_index=_host_index, 8552 ) 8553 8554 _response_types_map: Dict[str, Optional[str]] = { 8555 "204": "object", 8556 "400": "CreateFrameItem400Response", 8557 "404": "CreateFrameItem400Response", 8558 "429": "CreateFrameItem400Response", 8559 } 8560 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8561 response_data.read() 8562 return self.api_client.response_deserialize( 8563 response_data=response_data, 8564 response_types_map=_response_types_map, 8565 ).data 8566 8567 def _delete_subscription_by_id_serialize( 8568 self, 8569 subscription_id, 8570 _request_auth, 8571 _content_type, 8572 _headers, 8573 _host_index, 8574 ) -> RequestSerialized: 8575 8576 _host = None 8577 8578 _collection_formats: Dict[str, str] = {} 8579 8580 _path_params: Dict[str, str] = {} 8581 _query_params: List[Tuple[str, str]] = [] 8582 _header_params: Dict[str, Optional[str]] = _headers or {} 8583 _form_params: List[Tuple[str, str]] = [] 8584 _files: Dict[str, str] = {} 8585 _body_params: Optional[bytes] = None 8586 8587 # process the path parameters 8588 if subscription_id is not None: 8589 _path_params["subscription_id"] = subscription_id 8590 # process the query parameters 8591 # process the header parameters 8592 # process the form parameters 8593 # process the body parameter 8594 8595 # set the HTTP header `Accept` 8596 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8597 8598 # authentication setting 8599 _auth_settings: List[str] = [] 8600 8601 return self.api_client.param_serialize( 8602 method="DELETE", 8603 resource_path="/v2-experimental/webhooks/subscriptions/{subscription_id}", 8604 path_params=_path_params, 8605 query_params=_query_params, 8606 header_params=_header_params, 8607 body=_body_params, 8608 post_params=_form_params, 8609 files=_files, 8610 auth_settings=_auth_settings, 8611 collection_formats=_collection_formats, 8612 _host=_host, 8613 _request_auth=_request_auth, 8614 ) 8615 8616 @validate_call 8617 def get_subscription_by_id( 8618 self, 8619 subscription_id: Annotated[ 8620 StrictStr, Field(description="Unique identifier (ID) of the subscription that you want to retrieve") 8621 ], 8622 _request_timeout: Union[ 8623 None, 8624 Annotated[StrictFloat, Field(gt=0)], 8625 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8626 ] = None, 8627 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8628 _content_type: Optional[StrictStr] = None, 8629 _headers: Optional[Dict[StrictStr, Any]] = None, 8630 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8631 ) -> GenericSubscription: 8632 """Get specific webhook subscription 8633 8634 Retrieves information for a specific webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8635 8636 :param subscription_id: Unique identifier (ID) of the subscription that you want to retrieve (required) 8637 :type subscription_id: str 8638 :param _request_timeout: timeout setting for this request. If one 8639 number provided, it will be total request 8640 timeout. It can also be a pair (tuple) of 8641 (connection, read) timeouts. 8642 :type _request_timeout: int, tuple(int, int), optional 8643 :param _request_auth: set to override the auth_settings for an a single 8644 request; this effectively ignores the 8645 authentication in the spec for a single request. 8646 :type _request_auth: dict, optional 8647 :param _content_type: force content-type for the request. 8648 :type _content_type: str, Optional 8649 :param _headers: set to override the headers for a single 8650 request; this effectively ignores the headers 8651 in the spec for a single request. 8652 :type _headers: dict, optional 8653 :param _host_index: set to override the host_index for a single 8654 request; this effectively ignores the host_index 8655 in the spec for a single request. 8656 :type _host_index: int, optional 8657 :return: Returns the result object. 8658 """ # noqa: E501 8659 8660 _param = self._get_subscription_by_id_serialize( 8661 subscription_id=subscription_id, 8662 _request_auth=_request_auth, 8663 _content_type=_content_type, 8664 _headers=_headers, 8665 _host_index=_host_index, 8666 ) 8667 8668 _response_types_map: Dict[str, Optional[str]] = { 8669 "200": "GenericSubscription", 8670 "400": "CreateFrameItem400Response", 8671 "404": "CreateFrameItem400Response", 8672 "429": "CreateFrameItem400Response", 8673 } 8674 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8675 response_data.read() 8676 return self.api_client.response_deserialize( 8677 response_data=response_data, 8678 response_types_map=_response_types_map, 8679 ).data 8680 8681 def _get_subscription_by_id_serialize( 8682 self, 8683 subscription_id, 8684 _request_auth, 8685 _content_type, 8686 _headers, 8687 _host_index, 8688 ) -> RequestSerialized: 8689 8690 _host = None 8691 8692 _collection_formats: Dict[str, str] = {} 8693 8694 _path_params: Dict[str, str] = {} 8695 _query_params: List[Tuple[str, str]] = [] 8696 _header_params: Dict[str, Optional[str]] = _headers or {} 8697 _form_params: List[Tuple[str, str]] = [] 8698 _files: Dict[str, str] = {} 8699 _body_params: Optional[bytes] = None 8700 8701 # process the path parameters 8702 if subscription_id is not None: 8703 _path_params["subscription_id"] = subscription_id 8704 # process the query parameters 8705 # process the header parameters 8706 # process the form parameters 8707 # process the body parameter 8708 8709 # set the HTTP header `Accept` 8710 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8711 8712 # authentication setting 8713 _auth_settings: List[str] = [] 8714 8715 return self.api_client.param_serialize( 8716 method="GET", 8717 resource_path="/v2-experimental/webhooks/subscriptions/{subscription_id}", 8718 path_params=_path_params, 8719 query_params=_query_params, 8720 header_params=_header_params, 8721 body=_body_params, 8722 post_params=_form_params, 8723 files=_files, 8724 auth_settings=_auth_settings, 8725 collection_formats=_collection_formats, 8726 _host=_host, 8727 _request_auth=_request_auth, 8728 ) 8729 8730 @validate_call 8731 def get_user_subscriptions( 8732 self, 8733 limit: Optional[Annotated[str, Field(strict=True)]] = None, 8734 cursor: Optional[StrictStr] = None, 8735 _request_timeout: Union[ 8736 None, 8737 Annotated[StrictFloat, Field(gt=0)], 8738 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8739 ] = None, 8740 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8741 _content_type: Optional[StrictStr] = None, 8742 _headers: Optional[Dict[StrictStr, Any]] = None, 8743 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8744 ) -> GenericSubscriptionsCursorPaged: 8745 """Get webhook subscriptions 8746 8747 Retrieves information about all webhook subscriptions for a specific user.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a><br/> 8748 8749 :param limit: 8750 :type limit: str 8751 :param cursor: 8752 :type cursor: str 8753 :param _request_timeout: timeout setting for this request. If one 8754 number provided, it will be total request 8755 timeout. It can also be a pair (tuple) of 8756 (connection, read) timeouts. 8757 :type _request_timeout: int, tuple(int, int), optional 8758 :param _request_auth: set to override the auth_settings for an a single 8759 request; this effectively ignores the 8760 authentication in the spec for a single request. 8761 :type _request_auth: dict, optional 8762 :param _content_type: force content-type for the request. 8763 :type _content_type: str, Optional 8764 :param _headers: set to override the headers for a single 8765 request; this effectively ignores the headers 8766 in the spec for a single request. 8767 :type _headers: dict, optional 8768 :param _host_index: set to override the host_index for a single 8769 request; this effectively ignores the host_index 8770 in the spec for a single request. 8771 :type _host_index: int, optional 8772 :return: Returns the result object. 8773 """ # noqa: E501 8774 8775 _param = self._get_user_subscriptions_serialize( 8776 limit=limit, 8777 cursor=cursor, 8778 _request_auth=_request_auth, 8779 _content_type=_content_type, 8780 _headers=_headers, 8781 _host_index=_host_index, 8782 ) 8783 8784 _response_types_map: Dict[str, Optional[str]] = { 8785 "200": "GenericSubscriptionsCursorPaged", 8786 "400": "CreateFrameItem400Response", 8787 "404": "CreateFrameItem400Response", 8788 "429": "CreateFrameItem400Response", 8789 } 8790 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8791 response_data.read() 8792 return self.api_client.response_deserialize( 8793 response_data=response_data, 8794 response_types_map=_response_types_map, 8795 ).data 8796 8797 def _get_user_subscriptions_serialize( 8798 self, 8799 limit, 8800 cursor, 8801 _request_auth, 8802 _content_type, 8803 _headers, 8804 _host_index, 8805 ) -> RequestSerialized: 8806 8807 _host = None 8808 8809 _collection_formats: Dict[str, str] = {} 8810 8811 _path_params: Dict[str, str] = {} 8812 _query_params: List[Tuple[str, str]] = [] 8813 _header_params: Dict[str, Optional[str]] = _headers or {} 8814 _form_params: List[Tuple[str, str]] = [] 8815 _files: Dict[str, str] = {} 8816 _body_params: Optional[bytes] = None 8817 8818 # process the path parameters 8819 # process the query parameters 8820 if limit is not None: 8821 8822 _query_params.append(("limit", limit)) 8823 8824 if cursor is not None: 8825 8826 _query_params.append(("cursor", cursor)) 8827 8828 # process the header parameters 8829 # process the form parameters 8830 # process the body parameter 8831 8832 # set the HTTP header `Accept` 8833 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8834 8835 # authentication setting 8836 _auth_settings: List[str] = [] 8837 8838 return self.api_client.param_serialize( 8839 method="GET", 8840 resource_path="/v2-experimental/webhooks/subscriptions", 8841 path_params=_path_params, 8842 query_params=_query_params, 8843 header_params=_header_params, 8844 body=_body_params, 8845 post_params=_form_params, 8846 files=_files, 8847 auth_settings=_auth_settings, 8848 collection_formats=_collection_formats, 8849 _host=_host, 8850 _request_auth=_request_auth, 8851 ) 8852 8853 @validate_call 8854 def update_board_subscription( 8855 self, 8856 subscription_id: StrictStr, 8857 update_board_subscription_request: UpdateBoardSubscriptionRequest, 8858 _request_timeout: Union[ 8859 None, 8860 Annotated[StrictFloat, Field(gt=0)], 8861 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8862 ] = None, 8863 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8864 _content_type: Optional[StrictStr] = None, 8865 _headers: Optional[Dict[StrictStr, Any]] = None, 8866 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8867 ) -> BoardSubscription: 8868 """Update webhook subscription 8869 8870 Updates the status or the callback URL of an existing webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8871 8872 :param subscription_id: (required) 8873 :type subscription_id: str 8874 :param update_board_subscription_request: (required) 8875 :type update_board_subscription_request: UpdateBoardSubscriptionRequest 8876 :param _request_timeout: timeout setting for this request. If one 8877 number provided, it will be total request 8878 timeout. It can also be a pair (tuple) of 8879 (connection, read) timeouts. 8880 :type _request_timeout: int, tuple(int, int), optional 8881 :param _request_auth: set to override the auth_settings for an a single 8882 request; this effectively ignores the 8883 authentication in the spec for a single request. 8884 :type _request_auth: dict, optional 8885 :param _content_type: force content-type for the request. 8886 :type _content_type: str, Optional 8887 :param _headers: set to override the headers for a single 8888 request; this effectively ignores the headers 8889 in the spec for a single request. 8890 :type _headers: dict, optional 8891 :param _host_index: set to override the host_index for a single 8892 request; this effectively ignores the host_index 8893 in the spec for a single request. 8894 :type _host_index: int, optional 8895 :return: Returns the result object. 8896 """ # noqa: E501 8897 8898 _param = self._update_board_subscription_serialize( 8899 subscription_id=subscription_id, 8900 update_board_subscription_request=update_board_subscription_request, 8901 _request_auth=_request_auth, 8902 _content_type=_content_type, 8903 _headers=_headers, 8904 _host_index=_host_index, 8905 ) 8906 8907 _response_types_map: Dict[str, Optional[str]] = { 8908 "200": "BoardSubscription", 8909 "400": "CreateFrameItem400Response", 8910 "404": "CreateFrameItem400Response", 8911 "429": "CreateFrameItem400Response", 8912 } 8913 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8914 response_data.read() 8915 return self.api_client.response_deserialize( 8916 response_data=response_data, 8917 response_types_map=_response_types_map, 8918 ).data 8919 8920 def _update_board_subscription_serialize( 8921 self, 8922 subscription_id, 8923 update_board_subscription_request, 8924 _request_auth, 8925 _content_type, 8926 _headers, 8927 _host_index, 8928 ) -> RequestSerialized: 8929 8930 _host = None 8931 8932 _collection_formats: Dict[str, str] = {} 8933 8934 _path_params: Dict[str, str] = {} 8935 _query_params: List[Tuple[str, str]] = [] 8936 _header_params: Dict[str, Optional[str]] = _headers or {} 8937 _form_params: List[Tuple[str, str]] = [] 8938 _files: Dict[str, str] = {} 8939 _body_params: Optional[bytes] = None 8940 8941 # process the path parameters 8942 if subscription_id is not None: 8943 _path_params["subscription_id"] = subscription_id 8944 # process the query parameters 8945 # process the header parameters 8946 # process the form parameters 8947 # process the body parameter 8948 if update_board_subscription_request is not None: 8949 _body_params = update_board_subscription_request 8950 8951 # set the HTTP header `Accept` 8952 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8953 8954 # set the HTTP header `Content-Type` 8955 if _content_type: 8956 _header_params["Content-Type"] = _content_type 8957 else: 8958 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 8959 if _default_content_type is not None: 8960 _header_params["Content-Type"] = _default_content_type 8961 8962 # authentication setting 8963 _auth_settings: List[str] = [] 8964 8965 return self.api_client.param_serialize( 8966 method="PATCH", 8967 resource_path="/v2-experimental/webhooks/board_subscriptions/{subscription_id}", 8968 path_params=_path_params, 8969 query_params=_query_params, 8970 header_params=_header_params, 8971 body=_body_params, 8972 post_params=_form_params, 8973 files=_files, 8974 auth_settings=_auth_settings, 8975 collection_formats=_collection_formats, 8976 _host=_host, 8977 _request_auth=_request_auth, 8978 ) 8979 8980 @validate_call 8981 def create_app_card_item( 8982 self, 8983 board_id: Annotated[ 8984 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 8985 ], 8986 app_card_create_request: AppCardCreateRequest, 8987 _request_timeout: Union[ 8988 None, 8989 Annotated[StrictFloat, Field(gt=0)], 8990 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8991 ] = None, 8992 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8993 _content_type: Optional[StrictStr] = None, 8994 _headers: Optional[Dict[StrictStr, Any]] = None, 8995 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8996 ) -> AppCardItem: 8997 """Create app card item 8998 8999 Adds an app card item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9000 9001 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 9002 :type board_id: str 9003 :param app_card_create_request: (required) 9004 :type app_card_create_request: AppCardCreateRequest 9005 :param _request_timeout: timeout setting for this request. If one 9006 number provided, it will be total request 9007 timeout. It can also be a pair (tuple) of 9008 (connection, read) timeouts. 9009 :type _request_timeout: int, tuple(int, int), optional 9010 :param _request_auth: set to override the auth_settings for an a single 9011 request; this effectively ignores the 9012 authentication in the spec for a single request. 9013 :type _request_auth: dict, optional 9014 :param _content_type: force content-type for the request. 9015 :type _content_type: str, Optional 9016 :param _headers: set to override the headers for a single 9017 request; this effectively ignores the headers 9018 in the spec for a single request. 9019 :type _headers: dict, optional 9020 :param _host_index: set to override the host_index for a single 9021 request; this effectively ignores the host_index 9022 in the spec for a single request. 9023 :type _host_index: int, optional 9024 :return: Returns the result object. 9025 """ # noqa: E501 9026 9027 _param = self._create_app_card_item_serialize( 9028 board_id=board_id, 9029 app_card_create_request=app_card_create_request, 9030 _request_auth=_request_auth, 9031 _content_type=_content_type, 9032 _headers=_headers, 9033 _host_index=_host_index, 9034 ) 9035 9036 _response_types_map: Dict[str, Optional[str]] = { 9037 "201": "AppCardItem", 9038 "400": None, 9039 "404": None, 9040 "429": None, 9041 } 9042 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9043 response_data.read() 9044 return self.api_client.response_deserialize( 9045 response_data=response_data, 9046 response_types_map=_response_types_map, 9047 ).data 9048 9049 def _create_app_card_item_serialize( 9050 self, 9051 board_id, 9052 app_card_create_request, 9053 _request_auth, 9054 _content_type, 9055 _headers, 9056 _host_index, 9057 ) -> RequestSerialized: 9058 9059 _host = None 9060 9061 _collection_formats: Dict[str, str] = {} 9062 9063 _path_params: Dict[str, str] = {} 9064 _query_params: List[Tuple[str, str]] = [] 9065 _header_params: Dict[str, Optional[str]] = _headers or {} 9066 _form_params: List[Tuple[str, str]] = [] 9067 _files: Dict[str, str] = {} 9068 _body_params: Optional[bytes] = None 9069 9070 # process the path parameters 9071 if board_id is not None: 9072 _path_params["board_id"] = board_id 9073 # process the query parameters 9074 # process the header parameters 9075 # process the form parameters 9076 # process the body parameter 9077 if app_card_create_request is not None: 9078 _body_params = app_card_create_request 9079 9080 # set the HTTP header `Accept` 9081 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9082 9083 # set the HTTP header `Content-Type` 9084 if _content_type: 9085 _header_params["Content-Type"] = _content_type 9086 else: 9087 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 9088 if _default_content_type is not None: 9089 _header_params["Content-Type"] = _default_content_type 9090 9091 # authentication setting 9092 _auth_settings: List[str] = [] 9093 9094 return self.api_client.param_serialize( 9095 method="POST", 9096 resource_path="/v2/boards/{board_id}/app_cards", 9097 path_params=_path_params, 9098 query_params=_query_params, 9099 header_params=_header_params, 9100 body=_body_params, 9101 post_params=_form_params, 9102 files=_files, 9103 auth_settings=_auth_settings, 9104 collection_formats=_collection_formats, 9105 _host=_host, 9106 _request_auth=_request_auth, 9107 ) 9108 9109 @validate_call 9110 def delete_app_card_item( 9111 self, 9112 board_id: Annotated[ 9113 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete an item.") 9114 ], 9115 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 9116 _request_timeout: Union[ 9117 None, 9118 Annotated[StrictFloat, Field(gt=0)], 9119 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9120 ] = None, 9121 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9122 _content_type: Optional[StrictStr] = None, 9123 _headers: Optional[Dict[StrictStr, Any]] = None, 9124 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9125 ) -> object: 9126 """Delete app card item 9127 9128 Deletes an app card item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 9129 9130 :param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) 9131 :type board_id: str 9132 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 9133 :type item_id: str 9134 :param _request_timeout: timeout setting for this request. If one 9135 number provided, it will be total request 9136 timeout. It can also be a pair (tuple) of 9137 (connection, read) timeouts. 9138 :type _request_timeout: int, tuple(int, int), optional 9139 :param _request_auth: set to override the auth_settings for an a single 9140 request; this effectively ignores the 9141 authentication in the spec for a single request. 9142 :type _request_auth: dict, optional 9143 :param _content_type: force content-type for the request. 9144 :type _content_type: str, Optional 9145 :param _headers: set to override the headers for a single 9146 request; this effectively ignores the headers 9147 in the spec for a single request. 9148 :type _headers: dict, optional 9149 :param _host_index: set to override the host_index for a single 9150 request; this effectively ignores the host_index 9151 in the spec for a single request. 9152 :type _host_index: int, optional 9153 :return: Returns the result object. 9154 """ # noqa: E501 9155 9156 _param = self._delete_app_card_item_serialize( 9157 board_id=board_id, 9158 item_id=item_id, 9159 _request_auth=_request_auth, 9160 _content_type=_content_type, 9161 _headers=_headers, 9162 _host_index=_host_index, 9163 ) 9164 9165 _response_types_map: Dict[str, Optional[str]] = { 9166 "204": "object", 9167 "400": None, 9168 "404": None, 9169 "429": None, 9170 } 9171 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9172 response_data.read() 9173 return self.api_client.response_deserialize( 9174 response_data=response_data, 9175 response_types_map=_response_types_map, 9176 ).data 9177 9178 def _delete_app_card_item_serialize( 9179 self, 9180 board_id, 9181 item_id, 9182 _request_auth, 9183 _content_type, 9184 _headers, 9185 _host_index, 9186 ) -> RequestSerialized: 9187 9188 _host = None 9189 9190 _collection_formats: Dict[str, str] = {} 9191 9192 _path_params: Dict[str, str] = {} 9193 _query_params: List[Tuple[str, str]] = [] 9194 _header_params: Dict[str, Optional[str]] = _headers or {} 9195 _form_params: List[Tuple[str, str]] = [] 9196 _files: Dict[str, str] = {} 9197 _body_params: Optional[bytes] = None 9198 9199 # process the path parameters 9200 if board_id is not None: 9201 _path_params["board_id"] = board_id 9202 if item_id is not None: 9203 _path_params["item_id"] = item_id 9204 # process the query parameters 9205 # process the header parameters 9206 # process the form parameters 9207 # process the body parameter 9208 9209 # set the HTTP header `Accept` 9210 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9211 9212 # authentication setting 9213 _auth_settings: List[str] = [] 9214 9215 return self.api_client.param_serialize( 9216 method="DELETE", 9217 resource_path="/v2/boards/{board_id}/app_cards/{item_id}", 9218 path_params=_path_params, 9219 query_params=_query_params, 9220 header_params=_header_params, 9221 body=_body_params, 9222 post_params=_form_params, 9223 files=_files, 9224 auth_settings=_auth_settings, 9225 collection_formats=_collection_formats, 9226 _host=_host, 9227 _request_auth=_request_auth, 9228 ) 9229 9230 @validate_call 9231 def get_app_card_item( 9232 self, 9233 board_id: Annotated[ 9234 StrictStr, 9235 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 9236 ], 9237 item_id: Annotated[ 9238 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 9239 ], 9240 _request_timeout: Union[ 9241 None, 9242 Annotated[StrictFloat, Field(gt=0)], 9243 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9244 ] = None, 9245 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9246 _content_type: Optional[StrictStr] = None, 9247 _headers: Optional[Dict[StrictStr, Any]] = None, 9248 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9249 ) -> AppCardItem: 9250 """Get app card item 9251 9252 Retrieves information for a specific app card item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9253 9254 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 9255 :type board_id: str 9256 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 9257 :type item_id: str 9258 :param _request_timeout: timeout setting for this request. If one 9259 number provided, it will be total request 9260 timeout. It can also be a pair (tuple) of 9261 (connection, read) timeouts. 9262 :type _request_timeout: int, tuple(int, int), optional 9263 :param _request_auth: set to override the auth_settings for an a single 9264 request; this effectively ignores the 9265 authentication in the spec for a single request. 9266 :type _request_auth: dict, optional 9267 :param _content_type: force content-type for the request. 9268 :type _content_type: str, Optional 9269 :param _headers: set to override the headers for a single 9270 request; this effectively ignores the headers 9271 in the spec for a single request. 9272 :type _headers: dict, optional 9273 :param _host_index: set to override the host_index for a single 9274 request; this effectively ignores the host_index 9275 in the spec for a single request. 9276 :type _host_index: int, optional 9277 :return: Returns the result object. 9278 """ # noqa: E501 9279 9280 _param = self._get_app_card_item_serialize( 9281 board_id=board_id, 9282 item_id=item_id, 9283 _request_auth=_request_auth, 9284 _content_type=_content_type, 9285 _headers=_headers, 9286 _host_index=_host_index, 9287 ) 9288 9289 _response_types_map: Dict[str, Optional[str]] = { 9290 "200": "AppCardItem", 9291 "400": None, 9292 "404": None, 9293 "429": None, 9294 } 9295 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9296 response_data.read() 9297 return self.api_client.response_deserialize( 9298 response_data=response_data, 9299 response_types_map=_response_types_map, 9300 ).data 9301 9302 def _get_app_card_item_serialize( 9303 self, 9304 board_id, 9305 item_id, 9306 _request_auth, 9307 _content_type, 9308 _headers, 9309 _host_index, 9310 ) -> RequestSerialized: 9311 9312 _host = None 9313 9314 _collection_formats: Dict[str, str] = {} 9315 9316 _path_params: Dict[str, str] = {} 9317 _query_params: List[Tuple[str, str]] = [] 9318 _header_params: Dict[str, Optional[str]] = _headers or {} 9319 _form_params: List[Tuple[str, str]] = [] 9320 _files: Dict[str, str] = {} 9321 _body_params: Optional[bytes] = None 9322 9323 # process the path parameters 9324 if board_id is not None: 9325 _path_params["board_id"] = board_id 9326 if item_id is not None: 9327 _path_params["item_id"] = item_id 9328 # process the query parameters 9329 # process the header parameters 9330 # process the form parameters 9331 # process the body parameter 9332 9333 # set the HTTP header `Accept` 9334 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9335 9336 # authentication setting 9337 _auth_settings: List[str] = [] 9338 9339 return self.api_client.param_serialize( 9340 method="GET", 9341 resource_path="/v2/boards/{board_id}/app_cards/{item_id}", 9342 path_params=_path_params, 9343 query_params=_query_params, 9344 header_params=_header_params, 9345 body=_body_params, 9346 post_params=_form_params, 9347 files=_files, 9348 auth_settings=_auth_settings, 9349 collection_formats=_collection_formats, 9350 _host=_host, 9351 _request_auth=_request_auth, 9352 ) 9353 9354 @validate_call 9355 def update_app_card_item( 9356 self, 9357 board_id: Annotated[ 9358 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 9359 ], 9360 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 9361 app_card_update_request: AppCardUpdateRequest, 9362 _request_timeout: Union[ 9363 None, 9364 Annotated[StrictFloat, Field(gt=0)], 9365 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9366 ] = None, 9367 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9368 _content_type: Optional[StrictStr] = None, 9369 _headers: Optional[Dict[StrictStr, Any]] = None, 9370 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9371 ) -> AppCardItem: 9372 """Update app card item 9373 9374 Updates an app card item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9375 9376 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 9377 :type board_id: str 9378 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 9379 :type item_id: str 9380 :param app_card_update_request: (required) 9381 :type app_card_update_request: AppCardUpdateRequest 9382 :param _request_timeout: timeout setting for this request. If one 9383 number provided, it will be total request 9384 timeout. It can also be a pair (tuple) of 9385 (connection, read) timeouts. 9386 :type _request_timeout: int, tuple(int, int), optional 9387 :param _request_auth: set to override the auth_settings for an a single 9388 request; this effectively ignores the 9389 authentication in the spec for a single request. 9390 :type _request_auth: dict, optional 9391 :param _content_type: force content-type for the request. 9392 :type _content_type: str, Optional 9393 :param _headers: set to override the headers for a single 9394 request; this effectively ignores the headers 9395 in the spec for a single request. 9396 :type _headers: dict, optional 9397 :param _host_index: set to override the host_index for a single 9398 request; this effectively ignores the host_index 9399 in the spec for a single request. 9400 :type _host_index: int, optional 9401 :return: Returns the result object. 9402 """ # noqa: E501 9403 9404 _param = self._update_app_card_item_serialize( 9405 board_id=board_id, 9406 item_id=item_id, 9407 app_card_update_request=app_card_update_request, 9408 _request_auth=_request_auth, 9409 _content_type=_content_type, 9410 _headers=_headers, 9411 _host_index=_host_index, 9412 ) 9413 9414 _response_types_map: Dict[str, Optional[str]] = { 9415 "200": "AppCardItem", 9416 "400": None, 9417 "404": None, 9418 "409": None, 9419 "429": None, 9420 } 9421 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9422 response_data.read() 9423 return self.api_client.response_deserialize( 9424 response_data=response_data, 9425 response_types_map=_response_types_map, 9426 ).data 9427 9428 def _update_app_card_item_serialize( 9429 self, 9430 board_id, 9431 item_id, 9432 app_card_update_request, 9433 _request_auth, 9434 _content_type, 9435 _headers, 9436 _host_index, 9437 ) -> RequestSerialized: 9438 9439 _host = None 9440 9441 _collection_formats: Dict[str, str] = {} 9442 9443 _path_params: Dict[str, str] = {} 9444 _query_params: List[Tuple[str, str]] = [] 9445 _header_params: Dict[str, Optional[str]] = _headers or {} 9446 _form_params: List[Tuple[str, str]] = [] 9447 _files: Dict[str, str] = {} 9448 _body_params: Optional[bytes] = None 9449 9450 # process the path parameters 9451 if board_id is not None: 9452 _path_params["board_id"] = board_id 9453 if item_id is not None: 9454 _path_params["item_id"] = item_id 9455 # process the query parameters 9456 # process the header parameters 9457 # process the form parameters 9458 # process the body parameter 9459 if app_card_update_request is not None: 9460 _body_params = app_card_update_request 9461 9462 # set the HTTP header `Accept` 9463 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9464 9465 # set the HTTP header `Content-Type` 9466 if _content_type: 9467 _header_params["Content-Type"] = _content_type 9468 else: 9469 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 9470 if _default_content_type is not None: 9471 _header_params["Content-Type"] = _default_content_type 9472 9473 # authentication setting 9474 _auth_settings: List[str] = [] 9475 9476 return self.api_client.param_serialize( 9477 method="PATCH", 9478 resource_path="/v2/boards/{board_id}/app_cards/{item_id}", 9479 path_params=_path_params, 9480 query_params=_query_params, 9481 header_params=_header_params, 9482 body=_body_params, 9483 post_params=_form_params, 9484 files=_files, 9485 auth_settings=_auth_settings, 9486 collection_formats=_collection_formats, 9487 _host=_host, 9488 _request_auth=_request_auth, 9489 ) 9490 9491 @validate_call 9492 def get_board_members( 9493 self, 9494 board_id: Annotated[ 9495 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9496 ], 9497 limit: Optional[Annotated[str, Field(strict=True)]] = None, 9498 offset: Optional[StrictStr] = None, 9499 _request_timeout: Union[ 9500 None, 9501 Annotated[StrictFloat, Field(gt=0)], 9502 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9503 ] = None, 9504 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9505 _content_type: Optional[StrictStr] = None, 9506 _headers: Optional[Dict[StrictStr, Any]] = None, 9507 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9508 ) -> BoardMembersPagedResponse: 9509 """Get all board members 9510 9511 Retrieves a pageable list of members for a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9512 9513 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9514 :type board_id: str 9515 :param limit: 9516 :type limit: str 9517 :param offset: 9518 :type offset: str 9519 :param _request_timeout: timeout setting for this request. If one 9520 number provided, it will be total request 9521 timeout. It can also be a pair (tuple) of 9522 (connection, read) timeouts. 9523 :type _request_timeout: int, tuple(int, int), optional 9524 :param _request_auth: set to override the auth_settings for an a single 9525 request; this effectively ignores the 9526 authentication in the spec for a single request. 9527 :type _request_auth: dict, optional 9528 :param _content_type: force content-type for the request. 9529 :type _content_type: str, Optional 9530 :param _headers: set to override the headers for a single 9531 request; this effectively ignores the headers 9532 in the spec for a single request. 9533 :type _headers: dict, optional 9534 :param _host_index: set to override the host_index for a single 9535 request; this effectively ignores the host_index 9536 in the spec for a single request. 9537 :type _host_index: int, optional 9538 :return: Returns the result object. 9539 """ # noqa: E501 9540 9541 _param = self._get_board_members_serialize( 9542 board_id=board_id, 9543 limit=limit, 9544 offset=offset, 9545 _request_auth=_request_auth, 9546 _content_type=_content_type, 9547 _headers=_headers, 9548 _host_index=_host_index, 9549 ) 9550 9551 _response_types_map: Dict[str, Optional[str]] = { 9552 "200": "BoardMembersPagedResponse", 9553 "400": None, 9554 "404": None, 9555 "429": None, 9556 } 9557 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9558 response_data.read() 9559 return self.api_client.response_deserialize( 9560 response_data=response_data, 9561 response_types_map=_response_types_map, 9562 ).data 9563 9564 def _get_board_members_serialize( 9565 self, 9566 board_id, 9567 limit, 9568 offset, 9569 _request_auth, 9570 _content_type, 9571 _headers, 9572 _host_index, 9573 ) -> RequestSerialized: 9574 9575 _host = None 9576 9577 _collection_formats: Dict[str, str] = {} 9578 9579 _path_params: Dict[str, str] = {} 9580 _query_params: List[Tuple[str, str]] = [] 9581 _header_params: Dict[str, Optional[str]] = _headers or {} 9582 _form_params: List[Tuple[str, str]] = [] 9583 _files: Dict[str, str] = {} 9584 _body_params: Optional[bytes] = None 9585 9586 # process the path parameters 9587 if board_id is not None: 9588 _path_params["board_id"] = board_id 9589 # process the query parameters 9590 if limit is not None: 9591 9592 _query_params.append(("limit", limit)) 9593 9594 if offset is not None: 9595 9596 _query_params.append(("offset", offset)) 9597 9598 # process the header parameters 9599 # process the form parameters 9600 # process the body parameter 9601 9602 # set the HTTP header `Accept` 9603 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9604 9605 # authentication setting 9606 _auth_settings: List[str] = [] 9607 9608 return self.api_client.param_serialize( 9609 method="GET", 9610 resource_path="/v2/boards/{board_id}/members", 9611 path_params=_path_params, 9612 query_params=_query_params, 9613 header_params=_header_params, 9614 body=_body_params, 9615 post_params=_form_params, 9616 files=_files, 9617 auth_settings=_auth_settings, 9618 collection_formats=_collection_formats, 9619 _host=_host, 9620 _request_auth=_request_auth, 9621 ) 9622 9623 @validate_call 9624 def get_specific_board_member( 9625 self, 9626 board_id: Annotated[ 9627 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9628 ], 9629 board_member_id: Annotated[ 9630 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to retrieve.") 9631 ], 9632 _request_timeout: Union[ 9633 None, 9634 Annotated[StrictFloat, Field(gt=0)], 9635 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9636 ] = None, 9637 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9638 _content_type: Optional[StrictStr] = None, 9639 _headers: Optional[Dict[StrictStr, Any]] = None, 9640 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9641 ) -> BoardMemberWithLinks: 9642 """Get specific board member 9643 9644 Retrieves information for a board member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9645 9646 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9647 :type board_id: str 9648 :param board_member_id: Unique identifier (ID) of the board member whose role you want to retrieve. (required) 9649 :type board_member_id: str 9650 :param _request_timeout: timeout setting for this request. If one 9651 number provided, it will be total request 9652 timeout. It can also be a pair (tuple) of 9653 (connection, read) timeouts. 9654 :type _request_timeout: int, tuple(int, int), optional 9655 :param _request_auth: set to override the auth_settings for an a single 9656 request; this effectively ignores the 9657 authentication in the spec for a single request. 9658 :type _request_auth: dict, optional 9659 :param _content_type: force content-type for the request. 9660 :type _content_type: str, Optional 9661 :param _headers: set to override the headers for a single 9662 request; this effectively ignores the headers 9663 in the spec for a single request. 9664 :type _headers: dict, optional 9665 :param _host_index: set to override the host_index for a single 9666 request; this effectively ignores the host_index 9667 in the spec for a single request. 9668 :type _host_index: int, optional 9669 :return: Returns the result object. 9670 """ # noqa: E501 9671 9672 _param = self._get_specific_board_member_serialize( 9673 board_id=board_id, 9674 board_member_id=board_member_id, 9675 _request_auth=_request_auth, 9676 _content_type=_content_type, 9677 _headers=_headers, 9678 _host_index=_host_index, 9679 ) 9680 9681 _response_types_map: Dict[str, Optional[str]] = { 9682 "200": "BoardMemberWithLinks", 9683 "400": None, 9684 "404": None, 9685 "429": None, 9686 } 9687 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9688 response_data.read() 9689 return self.api_client.response_deserialize( 9690 response_data=response_data, 9691 response_types_map=_response_types_map, 9692 ).data 9693 9694 def _get_specific_board_member_serialize( 9695 self, 9696 board_id, 9697 board_member_id, 9698 _request_auth, 9699 _content_type, 9700 _headers, 9701 _host_index, 9702 ) -> RequestSerialized: 9703 9704 _host = None 9705 9706 _collection_formats: Dict[str, str] = {} 9707 9708 _path_params: Dict[str, str] = {} 9709 _query_params: List[Tuple[str, str]] = [] 9710 _header_params: Dict[str, Optional[str]] = _headers or {} 9711 _form_params: List[Tuple[str, str]] = [] 9712 _files: Dict[str, str] = {} 9713 _body_params: Optional[bytes] = None 9714 9715 # process the path parameters 9716 if board_id is not None: 9717 _path_params["board_id"] = board_id 9718 if board_member_id is not None: 9719 _path_params["board_member_id"] = board_member_id 9720 # process the query parameters 9721 # process the header parameters 9722 # process the form parameters 9723 # process the body parameter 9724 9725 # set the HTTP header `Accept` 9726 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9727 9728 # authentication setting 9729 _auth_settings: List[str] = [] 9730 9731 return self.api_client.param_serialize( 9732 method="GET", 9733 resource_path="/v2/boards/{board_id}/members/{board_member_id}", 9734 path_params=_path_params, 9735 query_params=_query_params, 9736 header_params=_header_params, 9737 body=_body_params, 9738 post_params=_form_params, 9739 files=_files, 9740 auth_settings=_auth_settings, 9741 collection_formats=_collection_formats, 9742 _host=_host, 9743 _request_auth=_request_auth, 9744 ) 9745 9746 @validate_call 9747 def remove_board_member( 9748 self, 9749 board_id: Annotated[ 9750 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete an item.") 9751 ], 9752 board_member_id: Annotated[ 9753 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to delete.") 9754 ], 9755 _request_timeout: Union[ 9756 None, 9757 Annotated[StrictFloat, Field(gt=0)], 9758 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9759 ] = None, 9760 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9761 _content_type: Optional[StrictStr] = None, 9762 _headers: Optional[Dict[StrictStr, Any]] = None, 9763 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9764 ) -> object: 9765 """Remove board member 9766 9767 Removes a board member from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9768 9769 :param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) 9770 :type board_id: str 9771 :param board_member_id: Unique identifier (ID) of the board member whose role you want to delete. (required) 9772 :type board_member_id: str 9773 :param _request_timeout: timeout setting for this request. If one 9774 number provided, it will be total request 9775 timeout. It can also be a pair (tuple) of 9776 (connection, read) timeouts. 9777 :type _request_timeout: int, tuple(int, int), optional 9778 :param _request_auth: set to override the auth_settings for an a single 9779 request; this effectively ignores the 9780 authentication in the spec for a single request. 9781 :type _request_auth: dict, optional 9782 :param _content_type: force content-type for the request. 9783 :type _content_type: str, Optional 9784 :param _headers: set to override the headers for a single 9785 request; this effectively ignores the headers 9786 in the spec for a single request. 9787 :type _headers: dict, optional 9788 :param _host_index: set to override the host_index for a single 9789 request; this effectively ignores the host_index 9790 in the spec for a single request. 9791 :type _host_index: int, optional 9792 :return: Returns the result object. 9793 """ # noqa: E501 9794 9795 _param = self._remove_board_member_serialize( 9796 board_id=board_id, 9797 board_member_id=board_member_id, 9798 _request_auth=_request_auth, 9799 _content_type=_content_type, 9800 _headers=_headers, 9801 _host_index=_host_index, 9802 ) 9803 9804 _response_types_map: Dict[str, Optional[str]] = { 9805 "204": "object", 9806 "400": None, 9807 "404": None, 9808 "429": None, 9809 } 9810 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9811 response_data.read() 9812 return self.api_client.response_deserialize( 9813 response_data=response_data, 9814 response_types_map=_response_types_map, 9815 ).data 9816 9817 def _remove_board_member_serialize( 9818 self, 9819 board_id, 9820 board_member_id, 9821 _request_auth, 9822 _content_type, 9823 _headers, 9824 _host_index, 9825 ) -> RequestSerialized: 9826 9827 _host = None 9828 9829 _collection_formats: Dict[str, str] = {} 9830 9831 _path_params: Dict[str, str] = {} 9832 _query_params: List[Tuple[str, str]] = [] 9833 _header_params: Dict[str, Optional[str]] = _headers or {} 9834 _form_params: List[Tuple[str, str]] = [] 9835 _files: Dict[str, str] = {} 9836 _body_params: Optional[bytes] = None 9837 9838 # process the path parameters 9839 if board_id is not None: 9840 _path_params["board_id"] = board_id 9841 if board_member_id is not None: 9842 _path_params["board_member_id"] = board_member_id 9843 # process the query parameters 9844 # process the header parameters 9845 # process the form parameters 9846 # process the body parameter 9847 9848 # set the HTTP header `Accept` 9849 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9850 9851 # authentication setting 9852 _auth_settings: List[str] = [] 9853 9854 return self.api_client.param_serialize( 9855 method="DELETE", 9856 resource_path="/v2/boards/{board_id}/members/{board_member_id}", 9857 path_params=_path_params, 9858 query_params=_query_params, 9859 header_params=_header_params, 9860 body=_body_params, 9861 post_params=_form_params, 9862 files=_files, 9863 auth_settings=_auth_settings, 9864 collection_formats=_collection_formats, 9865 _host=_host, 9866 _request_auth=_request_auth, 9867 ) 9868 9869 @validate_call 9870 def share_board( 9871 self, 9872 board_id: Annotated[ 9873 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9874 ], 9875 board_members_invite: BoardMembersInvite, 9876 _request_timeout: Union[ 9877 None, 9878 Annotated[StrictFloat, Field(gt=0)], 9879 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9880 ] = None, 9881 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9882 _content_type: Optional[StrictStr] = None, 9883 _headers: Optional[Dict[StrictStr, Any]] = None, 9884 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9885 ) -> InvitationResult: 9886 """Share board 9887 9888 Shares the board and Invites new members to collaborate on a board by sending an invitation email. Depending on the board's Sharing policy, there might be various scenarios where membership in the team is required in order to share the board with a user.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 9889 9890 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9891 :type board_id: str 9892 :param board_members_invite: (required) 9893 :type board_members_invite: BoardMembersInvite 9894 :param _request_timeout: timeout setting for this request. If one 9895 number provided, it will be total request 9896 timeout. It can also be a pair (tuple) of 9897 (connection, read) timeouts. 9898 :type _request_timeout: int, tuple(int, int), optional 9899 :param _request_auth: set to override the auth_settings for an a single 9900 request; this effectively ignores the 9901 authentication in the spec for a single request. 9902 :type _request_auth: dict, optional 9903 :param _content_type: force content-type for the request. 9904 :type _content_type: str, Optional 9905 :param _headers: set to override the headers for a single 9906 request; this effectively ignores the headers 9907 in the spec for a single request. 9908 :type _headers: dict, optional 9909 :param _host_index: set to override the host_index for a single 9910 request; this effectively ignores the host_index 9911 in the spec for a single request. 9912 :type _host_index: int, optional 9913 :return: Returns the result object. 9914 """ # noqa: E501 9915 9916 _param = self._share_board_serialize( 9917 board_id=board_id, 9918 board_members_invite=board_members_invite, 9919 _request_auth=_request_auth, 9920 _content_type=_content_type, 9921 _headers=_headers, 9922 _host_index=_host_index, 9923 ) 9924 9925 _response_types_map: Dict[str, Optional[str]] = { 9926 "201": "InvitationResult", 9927 "400": None, 9928 "404": None, 9929 "429": None, 9930 } 9931 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9932 response_data.read() 9933 return self.api_client.response_deserialize( 9934 response_data=response_data, 9935 response_types_map=_response_types_map, 9936 ).data 9937 9938 def _share_board_serialize( 9939 self, 9940 board_id, 9941 board_members_invite, 9942 _request_auth, 9943 _content_type, 9944 _headers, 9945 _host_index, 9946 ) -> RequestSerialized: 9947 9948 _host = None 9949 9950 _collection_formats: Dict[str, str] = {} 9951 9952 _path_params: Dict[str, str] = {} 9953 _query_params: List[Tuple[str, str]] = [] 9954 _header_params: Dict[str, Optional[str]] = _headers or {} 9955 _form_params: List[Tuple[str, str]] = [] 9956 _files: Dict[str, str] = {} 9957 _body_params: Optional[bytes] = None 9958 9959 # process the path parameters 9960 if board_id is not None: 9961 _path_params["board_id"] = board_id 9962 # process the query parameters 9963 # process the header parameters 9964 # process the form parameters 9965 # process the body parameter 9966 if board_members_invite is not None: 9967 _body_params = board_members_invite 9968 9969 # set the HTTP header `Accept` 9970 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9971 9972 # set the HTTP header `Content-Type` 9973 if _content_type: 9974 _header_params["Content-Type"] = _content_type 9975 else: 9976 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 9977 if _default_content_type is not None: 9978 _header_params["Content-Type"] = _default_content_type 9979 9980 # authentication setting 9981 _auth_settings: List[str] = [] 9982 9983 return self.api_client.param_serialize( 9984 method="POST", 9985 resource_path="/v2/boards/{board_id}/members", 9986 path_params=_path_params, 9987 query_params=_query_params, 9988 header_params=_header_params, 9989 body=_body_params, 9990 post_params=_form_params, 9991 files=_files, 9992 auth_settings=_auth_settings, 9993 collection_formats=_collection_formats, 9994 _host=_host, 9995 _request_auth=_request_auth, 9996 ) 9997 9998 @validate_call 9999 def update_board_member( 10000 self, 10001 board_id: Annotated[ 10002 StrictStr, 10003 Field( 10004 description="Unique identifier (ID) of the board for which you want to update the role of the board member." 10005 ), 10006 ], 10007 board_member_id: Annotated[ 10008 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to update.") 10009 ], 10010 board_member_changes: BoardMemberChanges, 10011 _request_timeout: Union[ 10012 None, 10013 Annotated[StrictFloat, Field(gt=0)], 10014 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10015 ] = None, 10016 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10017 _content_type: Optional[StrictStr] = None, 10018 _headers: Optional[Dict[StrictStr, Any]] = None, 10019 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10020 ) -> BoardMemberWithLinks: 10021 """Update board member 10022 10023 Updates the role of a board member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10024 10025 :param board_id: Unique identifier (ID) of the board for which you want to update the role of the board member. (required) 10026 :type board_id: str 10027 :param board_member_id: Unique identifier (ID) of the board member whose role you want to update. (required) 10028 :type board_member_id: str 10029 :param board_member_changes: (required) 10030 :type board_member_changes: BoardMemberChanges 10031 :param _request_timeout: timeout setting for this request. If one 10032 number provided, it will be total request 10033 timeout. It can also be a pair (tuple) of 10034 (connection, read) timeouts. 10035 :type _request_timeout: int, tuple(int, int), optional 10036 :param _request_auth: set to override the auth_settings for an a single 10037 request; this effectively ignores the 10038 authentication in the spec for a single request. 10039 :type _request_auth: dict, optional 10040 :param _content_type: force content-type for the request. 10041 :type _content_type: str, Optional 10042 :param _headers: set to override the headers for a single 10043 request; this effectively ignores the headers 10044 in the spec for a single request. 10045 :type _headers: dict, optional 10046 :param _host_index: set to override the host_index for a single 10047 request; this effectively ignores the host_index 10048 in the spec for a single request. 10049 :type _host_index: int, optional 10050 :return: Returns the result object. 10051 """ # noqa: E501 10052 10053 _param = self._update_board_member_serialize( 10054 board_id=board_id, 10055 board_member_id=board_member_id, 10056 board_member_changes=board_member_changes, 10057 _request_auth=_request_auth, 10058 _content_type=_content_type, 10059 _headers=_headers, 10060 _host_index=_host_index, 10061 ) 10062 10063 _response_types_map: Dict[str, Optional[str]] = { 10064 "200": "BoardMemberWithLinks", 10065 "400": None, 10066 "404": None, 10067 "429": None, 10068 } 10069 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10070 response_data.read() 10071 return self.api_client.response_deserialize( 10072 response_data=response_data, 10073 response_types_map=_response_types_map, 10074 ).data 10075 10076 def _update_board_member_serialize( 10077 self, 10078 board_id, 10079 board_member_id, 10080 board_member_changes, 10081 _request_auth, 10082 _content_type, 10083 _headers, 10084 _host_index, 10085 ) -> RequestSerialized: 10086 10087 _host = None 10088 10089 _collection_formats: Dict[str, str] = {} 10090 10091 _path_params: Dict[str, str] = {} 10092 _query_params: List[Tuple[str, str]] = [] 10093 _header_params: Dict[str, Optional[str]] = _headers or {} 10094 _form_params: List[Tuple[str, str]] = [] 10095 _files: Dict[str, str] = {} 10096 _body_params: Optional[bytes] = None 10097 10098 # process the path parameters 10099 if board_id is not None: 10100 _path_params["board_id"] = board_id 10101 if board_member_id is not None: 10102 _path_params["board_member_id"] = board_member_id 10103 # process the query parameters 10104 # process the header parameters 10105 # process the form parameters 10106 # process the body parameter 10107 if board_member_changes is not None: 10108 _body_params = board_member_changes 10109 10110 # set the HTTP header `Accept` 10111 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10112 10113 # set the HTTP header `Content-Type` 10114 if _content_type: 10115 _header_params["Content-Type"] = _content_type 10116 else: 10117 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10118 if _default_content_type is not None: 10119 _header_params["Content-Type"] = _default_content_type 10120 10121 # authentication setting 10122 _auth_settings: List[str] = [] 10123 10124 return self.api_client.param_serialize( 10125 method="PATCH", 10126 resource_path="/v2/boards/{board_id}/members/{board_member_id}", 10127 path_params=_path_params, 10128 query_params=_query_params, 10129 header_params=_header_params, 10130 body=_body_params, 10131 post_params=_form_params, 10132 files=_files, 10133 auth_settings=_auth_settings, 10134 collection_formats=_collection_formats, 10135 _host=_host, 10136 _request_auth=_request_auth, 10137 ) 10138 10139 @validate_call 10140 def copy_board( 10141 self, 10142 copy_from: Annotated[ 10143 StrictStr, Field(description="Unique identifier (ID) of the board that you want to copy.") 10144 ], 10145 copy_board_changes: Optional[CopyBoardChanges] = None, 10146 _request_timeout: Union[ 10147 None, 10148 Annotated[StrictFloat, Field(gt=0)], 10149 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10150 ] = None, 10151 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10152 _content_type: Optional[StrictStr] = None, 10153 _headers: Optional[Dict[StrictStr, Any]] = None, 10154 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10155 ) -> BoardWithLinksAndWithoutProject: 10156 """Copy board 10157 10158 Creates a copy of an existing board. You can also update the name, description, sharing policy, and permissions policy for the new board in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a><br/> 10159 10160 :param copy_from: Unique identifier (ID) of the board that you want to copy. (required) 10161 :type copy_from: str 10162 :param copy_board_changes: 10163 :type copy_board_changes: CopyBoardChanges 10164 :param _request_timeout: timeout setting for this request. If one 10165 number provided, it will be total request 10166 timeout. It can also be a pair (tuple) of 10167 (connection, read) timeouts. 10168 :type _request_timeout: int, tuple(int, int), optional 10169 :param _request_auth: set to override the auth_settings for an a single 10170 request; this effectively ignores the 10171 authentication in the spec for a single request. 10172 :type _request_auth: dict, optional 10173 :param _content_type: force content-type for the request. 10174 :type _content_type: str, Optional 10175 :param _headers: set to override the headers for a single 10176 request; this effectively ignores the headers 10177 in the spec for a single request. 10178 :type _headers: dict, optional 10179 :param _host_index: set to override the host_index for a single 10180 request; this effectively ignores the host_index 10181 in the spec for a single request. 10182 :type _host_index: int, optional 10183 :return: Returns the result object. 10184 """ # noqa: E501 10185 10186 _param = self._copy_board_serialize( 10187 copy_from=copy_from, 10188 copy_board_changes=copy_board_changes, 10189 _request_auth=_request_auth, 10190 _content_type=_content_type, 10191 _headers=_headers, 10192 _host_index=_host_index, 10193 ) 10194 10195 _response_types_map: Dict[str, Optional[str]] = { 10196 "201": "BoardWithLinksAndWithoutProject", 10197 "400": None, 10198 "404": None, 10199 "409": None, 10200 "429": None, 10201 } 10202 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10203 response_data.read() 10204 return self.api_client.response_deserialize( 10205 response_data=response_data, 10206 response_types_map=_response_types_map, 10207 ).data 10208 10209 def _copy_board_serialize( 10210 self, 10211 copy_from, 10212 copy_board_changes, 10213 _request_auth, 10214 _content_type, 10215 _headers, 10216 _host_index, 10217 ) -> RequestSerialized: 10218 10219 _host = None 10220 10221 _collection_formats: Dict[str, str] = {} 10222 10223 _path_params: Dict[str, str] = {} 10224 _query_params: List[Tuple[str, str]] = [] 10225 _header_params: Dict[str, Optional[str]] = _headers or {} 10226 _form_params: List[Tuple[str, str]] = [] 10227 _files: Dict[str, str] = {} 10228 _body_params: Optional[bytes] = None 10229 10230 # process the path parameters 10231 # process the query parameters 10232 if copy_from is not None: 10233 10234 _query_params.append(("copy_from", copy_from)) 10235 10236 # process the header parameters 10237 # process the form parameters 10238 # process the body parameter 10239 if copy_board_changes is not None: 10240 _body_params = copy_board_changes 10241 10242 # set the HTTP header `Accept` 10243 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10244 10245 # set the HTTP header `Content-Type` 10246 if _content_type: 10247 _header_params["Content-Type"] = _content_type 10248 else: 10249 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10250 if _default_content_type is not None: 10251 _header_params["Content-Type"] = _default_content_type 10252 10253 # authentication setting 10254 _auth_settings: List[str] = [] 10255 10256 return self.api_client.param_serialize( 10257 method="PUT", 10258 resource_path="/v2/boards", 10259 path_params=_path_params, 10260 query_params=_query_params, 10261 header_params=_header_params, 10262 body=_body_params, 10263 post_params=_form_params, 10264 files=_files, 10265 auth_settings=_auth_settings, 10266 collection_formats=_collection_formats, 10267 _host=_host, 10268 _request_auth=_request_auth, 10269 ) 10270 10271 @validate_call 10272 def create_board( 10273 self, 10274 board_changes: Optional[BoardChanges] = None, 10275 _request_timeout: Union[ 10276 None, 10277 Annotated[StrictFloat, Field(gt=0)], 10278 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10279 ] = None, 10280 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10281 _content_type: Optional[StrictStr] = None, 10282 _headers: Optional[Dict[StrictStr, Any]] = None, 10283 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10284 ) -> BoardWithLinks: 10285 """Create board 10286 10287 Creates a board with the specified name and sharing policies.<br/><h4>Note</h4> You can only create up to 3 team boards with the free plan.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 10288 10289 :param board_changes: 10290 :type board_changes: BoardChanges 10291 :param _request_timeout: timeout setting for this request. If one 10292 number provided, it will be total request 10293 timeout. It can also be a pair (tuple) of 10294 (connection, read) timeouts. 10295 :type _request_timeout: int, tuple(int, int), optional 10296 :param _request_auth: set to override the auth_settings for an a single 10297 request; this effectively ignores the 10298 authentication in the spec for a single request. 10299 :type _request_auth: dict, optional 10300 :param _content_type: force content-type for the request. 10301 :type _content_type: str, Optional 10302 :param _headers: set to override the headers for a single 10303 request; this effectively ignores the headers 10304 in the spec for a single request. 10305 :type _headers: dict, optional 10306 :param _host_index: set to override the host_index for a single 10307 request; this effectively ignores the host_index 10308 in the spec for a single request. 10309 :type _host_index: int, optional 10310 :return: Returns the result object. 10311 """ # noqa: E501 10312 10313 _param = self._create_board_serialize( 10314 board_changes=board_changes, 10315 _request_auth=_request_auth, 10316 _content_type=_content_type, 10317 _headers=_headers, 10318 _host_index=_host_index, 10319 ) 10320 10321 _response_types_map: Dict[str, Optional[str]] = { 10322 "201": "BoardWithLinks", 10323 "400": None, 10324 "404": None, 10325 "409": None, 10326 "429": None, 10327 } 10328 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10329 response_data.read() 10330 return self.api_client.response_deserialize( 10331 response_data=response_data, 10332 response_types_map=_response_types_map, 10333 ).data 10334 10335 def _create_board_serialize( 10336 self, 10337 board_changes, 10338 _request_auth, 10339 _content_type, 10340 _headers, 10341 _host_index, 10342 ) -> RequestSerialized: 10343 10344 _host = None 10345 10346 _collection_formats: Dict[str, str] = {} 10347 10348 _path_params: Dict[str, str] = {} 10349 _query_params: List[Tuple[str, str]] = [] 10350 _header_params: Dict[str, Optional[str]] = _headers or {} 10351 _form_params: List[Tuple[str, str]] = [] 10352 _files: Dict[str, str] = {} 10353 _body_params: Optional[bytes] = None 10354 10355 # process the path parameters 10356 # process the query parameters 10357 # process the header parameters 10358 # process the form parameters 10359 # process the body parameter 10360 if board_changes is not None: 10361 _body_params = board_changes 10362 10363 # set the HTTP header `Accept` 10364 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10365 10366 # set the HTTP header `Content-Type` 10367 if _content_type: 10368 _header_params["Content-Type"] = _content_type 10369 else: 10370 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10371 if _default_content_type is not None: 10372 _header_params["Content-Type"] = _default_content_type 10373 10374 # authentication setting 10375 _auth_settings: List[str] = [] 10376 10377 return self.api_client.param_serialize( 10378 method="POST", 10379 resource_path="/v2/boards", 10380 path_params=_path_params, 10381 query_params=_query_params, 10382 header_params=_header_params, 10383 body=_body_params, 10384 post_params=_form_params, 10385 files=_files, 10386 auth_settings=_auth_settings, 10387 collection_formats=_collection_formats, 10388 _host=_host, 10389 _request_auth=_request_auth, 10390 ) 10391 10392 @validate_call 10393 def delete_board( 10394 self, 10395 board_id: Annotated[ 10396 StrictStr, Field(description="Unique identifier (ID) of the board that you want to delete.") 10397 ], 10398 _request_timeout: Union[ 10399 None, 10400 Annotated[StrictFloat, Field(gt=0)], 10401 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10402 ] = None, 10403 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10404 _content_type: Optional[StrictStr] = None, 10405 _headers: Optional[Dict[StrictStr, Any]] = None, 10406 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10407 ) -> object: 10408 """Delete board 10409 10410 Deletes a board. Deleted boards go to Trash (on paid plans) and can be restored via UI within 90 days after deletion.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 10411 10412 :param board_id: Unique identifier (ID) of the board that you want to delete. (required) 10413 :type board_id: str 10414 :param _request_timeout: timeout setting for this request. If one 10415 number provided, it will be total request 10416 timeout. It can also be a pair (tuple) of 10417 (connection, read) timeouts. 10418 :type _request_timeout: int, tuple(int, int), optional 10419 :param _request_auth: set to override the auth_settings for an a single 10420 request; this effectively ignores the 10421 authentication in the spec for a single request. 10422 :type _request_auth: dict, optional 10423 :param _content_type: force content-type for the request. 10424 :type _content_type: str, Optional 10425 :param _headers: set to override the headers for a single 10426 request; this effectively ignores the headers 10427 in the spec for a single request. 10428 :type _headers: dict, optional 10429 :param _host_index: set to override the host_index for a single 10430 request; this effectively ignores the host_index 10431 in the spec for a single request. 10432 :type _host_index: int, optional 10433 :return: Returns the result object. 10434 """ # noqa: E501 10435 10436 _param = self._delete_board_serialize( 10437 board_id=board_id, 10438 _request_auth=_request_auth, 10439 _content_type=_content_type, 10440 _headers=_headers, 10441 _host_index=_host_index, 10442 ) 10443 10444 _response_types_map: Dict[str, Optional[str]] = { 10445 "204": "object", 10446 "400": None, 10447 "404": None, 10448 "409": None, 10449 "429": None, 10450 } 10451 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10452 response_data.read() 10453 return self.api_client.response_deserialize( 10454 response_data=response_data, 10455 response_types_map=_response_types_map, 10456 ).data 10457 10458 def _delete_board_serialize( 10459 self, 10460 board_id, 10461 _request_auth, 10462 _content_type, 10463 _headers, 10464 _host_index, 10465 ) -> RequestSerialized: 10466 10467 _host = None 10468 10469 _collection_formats: Dict[str, str] = {} 10470 10471 _path_params: Dict[str, str] = {} 10472 _query_params: List[Tuple[str, str]] = [] 10473 _header_params: Dict[str, Optional[str]] = _headers or {} 10474 _form_params: List[Tuple[str, str]] = [] 10475 _files: Dict[str, str] = {} 10476 _body_params: Optional[bytes] = None 10477 10478 # process the path parameters 10479 if board_id is not None: 10480 _path_params["board_id"] = board_id 10481 # process the query parameters 10482 # process the header parameters 10483 # process the form parameters 10484 # process the body parameter 10485 10486 # set the HTTP header `Accept` 10487 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10488 10489 # authentication setting 10490 _auth_settings: List[str] = [] 10491 10492 return self.api_client.param_serialize( 10493 method="DELETE", 10494 resource_path="/v2/boards/{board_id}", 10495 path_params=_path_params, 10496 query_params=_query_params, 10497 header_params=_header_params, 10498 body=_body_params, 10499 post_params=_form_params, 10500 files=_files, 10501 auth_settings=_auth_settings, 10502 collection_formats=_collection_formats, 10503 _host=_host, 10504 _request_auth=_request_auth, 10505 ) 10506 10507 @validate_call 10508 def get_boards( 10509 self, 10510 team_id: Optional[StrictStr] = None, 10511 project_id: Optional[StrictStr] = None, 10512 query: Optional[Annotated[str, Field(strict=True, max_length=500)]] = None, 10513 owner: Optional[StrictStr] = None, 10514 limit: Optional[Annotated[str, Field(strict=True)]] = None, 10515 offset: Optional[StrictStr] = None, 10516 sort: Optional[StrictStr] = None, 10517 _request_timeout: Union[ 10518 None, 10519 Annotated[StrictFloat, Field(gt=0)], 10520 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10521 ] = None, 10522 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10523 _content_type: Optional[StrictStr] = None, 10524 _headers: Optional[Dict[StrictStr, Any]] = None, 10525 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10526 ) -> BoardsPagedResponse: 10527 """Get boards 10528 10529 Retrieves a list of boards accessible to the user associated with the provided access token. This endpoint supports filtering and sorting through URL query parameters. Customize the response by specifying `team_id`, `project_id`, or other query parameters. Filtering by `team_id` or `project_id` (or both) returns results instantly. For other filters, allow a few seconds for indexing of newly created boards. If you're an Enterprise customer with Company Admin permissions: - Enable **Content Admin** permissions to retrieve all boards, including private boards (those not explicitly shared with you). For details, see the [Content Admin Permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins). - Note that **Private board contents remain inaccessible**. The API allows you to verify their existence but prevents viewing their contents to uphold security best practices. Unauthorized access attempts will return an error. <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 10530 10531 :param team_id: 10532 :type team_id: str 10533 :param project_id: 10534 :type project_id: str 10535 :param query: 10536 :type query: str 10537 :param owner: 10538 :type owner: str 10539 :param limit: 10540 :type limit: str 10541 :param offset: 10542 :type offset: str 10543 :param sort: 10544 :type sort: str 10545 :param _request_timeout: timeout setting for this request. If one 10546 number provided, it will be total request 10547 timeout. It can also be a pair (tuple) of 10548 (connection, read) timeouts. 10549 :type _request_timeout: int, tuple(int, int), optional 10550 :param _request_auth: set to override the auth_settings for an a single 10551 request; this effectively ignores the 10552 authentication in the spec for a single request. 10553 :type _request_auth: dict, optional 10554 :param _content_type: force content-type for the request. 10555 :type _content_type: str, Optional 10556 :param _headers: set to override the headers for a single 10557 request; this effectively ignores the headers 10558 in the spec for a single request. 10559 :type _headers: dict, optional 10560 :param _host_index: set to override the host_index for a single 10561 request; this effectively ignores the host_index 10562 in the spec for a single request. 10563 :type _host_index: int, optional 10564 :return: Returns the result object. 10565 """ # noqa: E501 10566 10567 _param = self._get_boards_serialize( 10568 team_id=team_id, 10569 project_id=project_id, 10570 query=query, 10571 owner=owner, 10572 limit=limit, 10573 offset=offset, 10574 sort=sort, 10575 _request_auth=_request_auth, 10576 _content_type=_content_type, 10577 _headers=_headers, 10578 _host_index=_host_index, 10579 ) 10580 10581 _response_types_map: Dict[str, Optional[str]] = { 10582 "200": "BoardsPagedResponse", 10583 "400": None, 10584 "404": None, 10585 "429": None, 10586 } 10587 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10588 response_data.read() 10589 return self.api_client.response_deserialize( 10590 response_data=response_data, 10591 response_types_map=_response_types_map, 10592 ).data 10593 10594 def _get_boards_serialize( 10595 self, 10596 team_id, 10597 project_id, 10598 query, 10599 owner, 10600 limit, 10601 offset, 10602 sort, 10603 _request_auth, 10604 _content_type, 10605 _headers, 10606 _host_index, 10607 ) -> RequestSerialized: 10608 10609 _host = None 10610 10611 _collection_formats: Dict[str, str] = {} 10612 10613 _path_params: Dict[str, str] = {} 10614 _query_params: List[Tuple[str, str]] = [] 10615 _header_params: Dict[str, Optional[str]] = _headers or {} 10616 _form_params: List[Tuple[str, str]] = [] 10617 _files: Dict[str, str] = {} 10618 _body_params: Optional[bytes] = None 10619 10620 # process the path parameters 10621 # process the query parameters 10622 if team_id is not None: 10623 10624 _query_params.append(("team_id", team_id)) 10625 10626 if project_id is not None: 10627 10628 _query_params.append(("project_id", project_id)) 10629 10630 if query is not None: 10631 10632 _query_params.append(("query", query)) 10633 10634 if owner is not None: 10635 10636 _query_params.append(("owner", owner)) 10637 10638 if limit is not None: 10639 10640 _query_params.append(("limit", limit)) 10641 10642 if offset is not None: 10643 10644 _query_params.append(("offset", offset)) 10645 10646 if sort is not None: 10647 10648 _query_params.append(("sort", sort)) 10649 10650 # process the header parameters 10651 # process the form parameters 10652 # process the body parameter 10653 10654 # set the HTTP header `Accept` 10655 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10656 10657 # authentication setting 10658 _auth_settings: List[str] = [] 10659 10660 return self.api_client.param_serialize( 10661 method="GET", 10662 resource_path="/v2/boards", 10663 path_params=_path_params, 10664 query_params=_query_params, 10665 header_params=_header_params, 10666 body=_body_params, 10667 post_params=_form_params, 10668 files=_files, 10669 auth_settings=_auth_settings, 10670 collection_formats=_collection_formats, 10671 _host=_host, 10672 _request_auth=_request_auth, 10673 ) 10674 10675 @validate_call 10676 def get_specific_board( 10677 self, 10678 board_id: Annotated[ 10679 StrictStr, Field(description="Unique identifier (ID) of the board that you want to retrieve.") 10680 ], 10681 _request_timeout: Union[ 10682 None, 10683 Annotated[StrictFloat, Field(gt=0)], 10684 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10685 ] = None, 10686 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10687 _content_type: Optional[StrictStr] = None, 10688 _headers: Optional[Dict[StrictStr, Any]] = None, 10689 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10690 ) -> BoardWithLinksAndLastOpened: 10691 """Get specific board 10692 10693 Retrieves information about a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 10694 10695 :param board_id: Unique identifier (ID) of the board that you want to retrieve. (required) 10696 :type board_id: str 10697 :param _request_timeout: timeout setting for this request. If one 10698 number provided, it will be total request 10699 timeout. It can also be a pair (tuple) of 10700 (connection, read) timeouts. 10701 :type _request_timeout: int, tuple(int, int), optional 10702 :param _request_auth: set to override the auth_settings for an a single 10703 request; this effectively ignores the 10704 authentication in the spec for a single request. 10705 :type _request_auth: dict, optional 10706 :param _content_type: force content-type for the request. 10707 :type _content_type: str, Optional 10708 :param _headers: set to override the headers for a single 10709 request; this effectively ignores the headers 10710 in the spec for a single request. 10711 :type _headers: dict, optional 10712 :param _host_index: set to override the host_index for a single 10713 request; this effectively ignores the host_index 10714 in the spec for a single request. 10715 :type _host_index: int, optional 10716 :return: Returns the result object. 10717 """ # noqa: E501 10718 10719 _param = self._get_specific_board_serialize( 10720 board_id=board_id, 10721 _request_auth=_request_auth, 10722 _content_type=_content_type, 10723 _headers=_headers, 10724 _host_index=_host_index, 10725 ) 10726 10727 _response_types_map: Dict[str, Optional[str]] = { 10728 "200": "BoardWithLinksAndLastOpened", 10729 "400": None, 10730 "404": None, 10731 "429": None, 10732 } 10733 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10734 response_data.read() 10735 return self.api_client.response_deserialize( 10736 response_data=response_data, 10737 response_types_map=_response_types_map, 10738 ).data 10739 10740 def _get_specific_board_serialize( 10741 self, 10742 board_id, 10743 _request_auth, 10744 _content_type, 10745 _headers, 10746 _host_index, 10747 ) -> RequestSerialized: 10748 10749 _host = None 10750 10751 _collection_formats: Dict[str, str] = {} 10752 10753 _path_params: Dict[str, str] = {} 10754 _query_params: List[Tuple[str, str]] = [] 10755 _header_params: Dict[str, Optional[str]] = _headers or {} 10756 _form_params: List[Tuple[str, str]] = [] 10757 _files: Dict[str, str] = {} 10758 _body_params: Optional[bytes] = None 10759 10760 # process the path parameters 10761 if board_id is not None: 10762 _path_params["board_id"] = board_id 10763 # process the query parameters 10764 # process the header parameters 10765 # process the form parameters 10766 # process the body parameter 10767 10768 # set the HTTP header `Accept` 10769 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10770 10771 # authentication setting 10772 _auth_settings: List[str] = [] 10773 10774 return self.api_client.param_serialize( 10775 method="GET", 10776 resource_path="/v2/boards/{board_id}", 10777 path_params=_path_params, 10778 query_params=_query_params, 10779 header_params=_header_params, 10780 body=_body_params, 10781 post_params=_form_params, 10782 files=_files, 10783 auth_settings=_auth_settings, 10784 collection_formats=_collection_formats, 10785 _host=_host, 10786 _request_auth=_request_auth, 10787 ) 10788 10789 @validate_call 10790 def update_board( 10791 self, 10792 board_id: Annotated[ 10793 StrictStr, Field(description="Unique identifier (ID) of the board that you want to update.") 10794 ], 10795 board_changes: BoardChanges, 10796 _request_timeout: Union[ 10797 None, 10798 Annotated[StrictFloat, Field(gt=0)], 10799 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10800 ] = None, 10801 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10802 _content_type: Optional[StrictStr] = None, 10803 _headers: Optional[Dict[StrictStr, Any]] = None, 10804 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10805 ) -> BoardWithLinks: 10806 """Update board 10807 10808 Updates a specific board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10809 10810 :param board_id: Unique identifier (ID) of the board that you want to update. (required) 10811 :type board_id: str 10812 :param board_changes: (required) 10813 :type board_changes: BoardChanges 10814 :param _request_timeout: timeout setting for this request. If one 10815 number provided, it will be total request 10816 timeout. It can also be a pair (tuple) of 10817 (connection, read) timeouts. 10818 :type _request_timeout: int, tuple(int, int), optional 10819 :param _request_auth: set to override the auth_settings for an a single 10820 request; this effectively ignores the 10821 authentication in the spec for a single request. 10822 :type _request_auth: dict, optional 10823 :param _content_type: force content-type for the request. 10824 :type _content_type: str, Optional 10825 :param _headers: set to override the headers for a single 10826 request; this effectively ignores the headers 10827 in the spec for a single request. 10828 :type _headers: dict, optional 10829 :param _host_index: set to override the host_index for a single 10830 request; this effectively ignores the host_index 10831 in the spec for a single request. 10832 :type _host_index: int, optional 10833 :return: Returns the result object. 10834 """ # noqa: E501 10835 10836 _param = self._update_board_serialize( 10837 board_id=board_id, 10838 board_changes=board_changes, 10839 _request_auth=_request_auth, 10840 _content_type=_content_type, 10841 _headers=_headers, 10842 _host_index=_host_index, 10843 ) 10844 10845 _response_types_map: Dict[str, Optional[str]] = { 10846 "200": "BoardWithLinks", 10847 "202": None, 10848 "400": None, 10849 "404": None, 10850 "409": None, 10851 "429": None, 10852 } 10853 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10854 response_data.read() 10855 return self.api_client.response_deserialize( 10856 response_data=response_data, 10857 response_types_map=_response_types_map, 10858 ).data 10859 10860 def _update_board_serialize( 10861 self, 10862 board_id, 10863 board_changes, 10864 _request_auth, 10865 _content_type, 10866 _headers, 10867 _host_index, 10868 ) -> RequestSerialized: 10869 10870 _host = None 10871 10872 _collection_formats: Dict[str, str] = {} 10873 10874 _path_params: Dict[str, str] = {} 10875 _query_params: List[Tuple[str, str]] = [] 10876 _header_params: Dict[str, Optional[str]] = _headers or {} 10877 _form_params: List[Tuple[str, str]] = [] 10878 _files: Dict[str, str] = {} 10879 _body_params: Optional[bytes] = None 10880 10881 # process the path parameters 10882 if board_id is not None: 10883 _path_params["board_id"] = board_id 10884 # process the query parameters 10885 # process the header parameters 10886 # process the form parameters 10887 # process the body parameter 10888 if board_changes is not None: 10889 _body_params = board_changes 10890 10891 # set the HTTP header `Accept` 10892 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10893 10894 # set the HTTP header `Content-Type` 10895 if _content_type: 10896 _header_params["Content-Type"] = _content_type 10897 else: 10898 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10899 if _default_content_type is not None: 10900 _header_params["Content-Type"] = _default_content_type 10901 10902 # authentication setting 10903 _auth_settings: List[str] = [] 10904 10905 return self.api_client.param_serialize( 10906 method="PATCH", 10907 resource_path="/v2/boards/{board_id}", 10908 path_params=_path_params, 10909 query_params=_query_params, 10910 header_params=_header_params, 10911 body=_body_params, 10912 post_params=_form_params, 10913 files=_files, 10914 auth_settings=_auth_settings, 10915 collection_formats=_collection_formats, 10916 _host=_host, 10917 _request_auth=_request_auth, 10918 ) 10919 10920 @validate_call 10921 def create_card_item( 10922 self, 10923 board_id: Annotated[ 10924 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 10925 ], 10926 card_create_request: CardCreateRequest, 10927 _request_timeout: Union[ 10928 None, 10929 Annotated[StrictFloat, Field(gt=0)], 10930 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10931 ] = None, 10932 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10933 _content_type: Optional[StrictStr] = None, 10934 _headers: Optional[Dict[StrictStr, Any]] = None, 10935 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10936 ) -> CardItem: 10937 """Create card item 10938 10939 Adds a card item to a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10940 10941 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 10942 :type board_id: str 10943 :param card_create_request: (required) 10944 :type card_create_request: CardCreateRequest 10945 :param _request_timeout: timeout setting for this request. If one 10946 number provided, it will be total request 10947 timeout. It can also be a pair (tuple) of 10948 (connection, read) timeouts. 10949 :type _request_timeout: int, tuple(int, int), optional 10950 :param _request_auth: set to override the auth_settings for an a single 10951 request; this effectively ignores the 10952 authentication in the spec for a single request. 10953 :type _request_auth: dict, optional 10954 :param _content_type: force content-type for the request. 10955 :type _content_type: str, Optional 10956 :param _headers: set to override the headers for a single 10957 request; this effectively ignores the headers 10958 in the spec for a single request. 10959 :type _headers: dict, optional 10960 :param _host_index: set to override the host_index for a single 10961 request; this effectively ignores the host_index 10962 in the spec for a single request. 10963 :type _host_index: int, optional 10964 :return: Returns the result object. 10965 """ # noqa: E501 10966 10967 _param = self._create_card_item_serialize( 10968 board_id=board_id, 10969 card_create_request=card_create_request, 10970 _request_auth=_request_auth, 10971 _content_type=_content_type, 10972 _headers=_headers, 10973 _host_index=_host_index, 10974 ) 10975 10976 _response_types_map: Dict[str, Optional[str]] = { 10977 "201": "CardItem", 10978 "400": None, 10979 "404": None, 10980 "429": None, 10981 } 10982 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10983 response_data.read() 10984 return self.api_client.response_deserialize( 10985 response_data=response_data, 10986 response_types_map=_response_types_map, 10987 ).data 10988 10989 def _create_card_item_serialize( 10990 self, 10991 board_id, 10992 card_create_request, 10993 _request_auth, 10994 _content_type, 10995 _headers, 10996 _host_index, 10997 ) -> RequestSerialized: 10998 10999 _host = None 11000 11001 _collection_formats: Dict[str, str] = {} 11002 11003 _path_params: Dict[str, str] = {} 11004 _query_params: List[Tuple[str, str]] = [] 11005 _header_params: Dict[str, Optional[str]] = _headers or {} 11006 _form_params: List[Tuple[str, str]] = [] 11007 _files: Dict[str, str] = {} 11008 _body_params: Optional[bytes] = None 11009 11010 # process the path parameters 11011 if board_id is not None: 11012 _path_params["board_id"] = board_id 11013 # process the query parameters 11014 # process the header parameters 11015 # process the form parameters 11016 # process the body parameter 11017 if card_create_request is not None: 11018 _body_params = card_create_request 11019 11020 # set the HTTP header `Accept` 11021 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11022 11023 # set the HTTP header `Content-Type` 11024 if _content_type: 11025 _header_params["Content-Type"] = _content_type 11026 else: 11027 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 11028 if _default_content_type is not None: 11029 _header_params["Content-Type"] = _default_content_type 11030 11031 # authentication setting 11032 _auth_settings: List[str] = [] 11033 11034 return self.api_client.param_serialize( 11035 method="POST", 11036 resource_path="/v2/boards/{board_id}/cards", 11037 path_params=_path_params, 11038 query_params=_query_params, 11039 header_params=_header_params, 11040 body=_body_params, 11041 post_params=_form_params, 11042 files=_files, 11043 auth_settings=_auth_settings, 11044 collection_formats=_collection_formats, 11045 _host=_host, 11046 _request_auth=_request_auth, 11047 ) 11048 11049 @validate_call 11050 def delete_card_item( 11051 self, 11052 board_id: Annotated[ 11053 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 11054 ], 11055 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 11056 _request_timeout: Union[ 11057 None, 11058 Annotated[StrictFloat, Field(gt=0)], 11059 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11060 ] = None, 11061 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11062 _content_type: Optional[StrictStr] = None, 11063 _headers: Optional[Dict[StrictStr, Any]] = None, 11064 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11065 ) -> object: 11066 """Delete card item 11067 11068 Deletes a card item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 11069 11070 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 11071 :type board_id: str 11072 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 11073 :type item_id: str 11074 :param _request_timeout: timeout setting for this request. If one 11075 number provided, it will be total request 11076 timeout. It can also be a pair (tuple) of 11077 (connection, read) timeouts. 11078 :type _request_timeout: int, tuple(int, int), optional 11079 :param _request_auth: set to override the auth_settings for an a single 11080 request; this effectively ignores the 11081 authentication in the spec for a single request. 11082 :type _request_auth: dict, optional 11083 :param _content_type: force content-type for the request. 11084 :type _content_type: str, Optional 11085 :param _headers: set to override the headers for a single 11086 request; this effectively ignores the headers 11087 in the spec for a single request. 11088 :type _headers: dict, optional 11089 :param _host_index: set to override the host_index for a single 11090 request; this effectively ignores the host_index 11091 in the spec for a single request. 11092 :type _host_index: int, optional 11093 :return: Returns the result object. 11094 """ # noqa: E501 11095 11096 _param = self._delete_card_item_serialize( 11097 board_id=board_id, 11098 item_id=item_id, 11099 _request_auth=_request_auth, 11100 _content_type=_content_type, 11101 _headers=_headers, 11102 _host_index=_host_index, 11103 ) 11104 11105 _response_types_map: Dict[str, Optional[str]] = { 11106 "204": "object", 11107 "400": None, 11108 "404": None, 11109 "429": None, 11110 } 11111 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11112 response_data.read() 11113 return self.api_client.response_deserialize( 11114 response_data=response_data, 11115 response_types_map=_response_types_map, 11116 ).data 11117 11118 def _delete_card_item_serialize( 11119 self, 11120 board_id, 11121 item_id, 11122 _request_auth, 11123 _content_type, 11124 _headers, 11125 _host_index, 11126 ) -> RequestSerialized: 11127 11128 _host = None 11129 11130 _collection_formats: Dict[str, str] = {} 11131 11132 _path_params: Dict[str, str] = {} 11133 _query_params: List[Tuple[str, str]] = [] 11134 _header_params: Dict[str, Optional[str]] = _headers or {} 11135 _form_params: List[Tuple[str, str]] = [] 11136 _files: Dict[str, str] = {} 11137 _body_params: Optional[bytes] = None 11138 11139 # process the path parameters 11140 if board_id is not None: 11141 _path_params["board_id"] = board_id 11142 if item_id is not None: 11143 _path_params["item_id"] = item_id 11144 # process the query parameters 11145 # process the header parameters 11146 # process the form parameters 11147 # process the body parameter 11148 11149 # set the HTTP header `Accept` 11150 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11151 11152 # authentication setting 11153 _auth_settings: List[str] = [] 11154 11155 return self.api_client.param_serialize( 11156 method="DELETE", 11157 resource_path="/v2/boards/{board_id}/cards/{item_id}", 11158 path_params=_path_params, 11159 query_params=_query_params, 11160 header_params=_header_params, 11161 body=_body_params, 11162 post_params=_form_params, 11163 files=_files, 11164 auth_settings=_auth_settings, 11165 collection_formats=_collection_formats, 11166 _host=_host, 11167 _request_auth=_request_auth, 11168 ) 11169 11170 @validate_call 11171 def get_card_item( 11172 self, 11173 board_id: Annotated[ 11174 StrictStr, 11175 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 11176 ], 11177 item_id: Annotated[ 11178 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 11179 ], 11180 _request_timeout: Union[ 11181 None, 11182 Annotated[StrictFloat, Field(gt=0)], 11183 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11184 ] = None, 11185 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11186 _content_type: Optional[StrictStr] = None, 11187 _headers: Optional[Dict[StrictStr, Any]] = None, 11188 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11189 ) -> CardItem: 11190 """Get card item 11191 11192 Retrieves information for a specific card item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 11193 11194 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 11195 :type board_id: str 11196 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 11197 :type item_id: str 11198 :param _request_timeout: timeout setting for this request. If one 11199 number provided, it will be total request 11200 timeout. It can also be a pair (tuple) of 11201 (connection, read) timeouts. 11202 :type _request_timeout: int, tuple(int, int), optional 11203 :param _request_auth: set to override the auth_settings for an a single 11204 request; this effectively ignores the 11205 authentication in the spec for a single request. 11206 :type _request_auth: dict, optional 11207 :param _content_type: force content-type for the request. 11208 :type _content_type: str, Optional 11209 :param _headers: set to override the headers for a single 11210 request; this effectively ignores the headers 11211 in the spec for a single request. 11212 :type _headers: dict, optional 11213 :param _host_index: set to override the host_index for a single 11214 request; this effectively ignores the host_index 11215 in the spec for a single request. 11216 :type _host_index: int, optional 11217 :return: Returns the result object. 11218 """ # noqa: E501 11219 11220 _param = self._get_card_item_serialize( 11221 board_id=board_id, 11222 item_id=item_id, 11223 _request_auth=_request_auth, 11224 _content_type=_content_type, 11225 _headers=_headers, 11226 _host_index=_host_index, 11227 ) 11228 11229 _response_types_map: Dict[str, Optional[str]] = { 11230 "200": "CardItem", 11231 "400": None, 11232 "404": None, 11233 "429": None, 11234 } 11235 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11236 response_data.read() 11237 return self.api_client.response_deserialize( 11238 response_data=response_data, 11239 response_types_map=_response_types_map, 11240 ).data 11241 11242 def _get_card_item_serialize( 11243 self, 11244 board_id, 11245 item_id, 11246 _request_auth, 11247 _content_type, 11248 _headers, 11249 _host_index, 11250 ) -> RequestSerialized: 11251 11252 _host = None 11253 11254 _collection_formats: Dict[str, str] = {} 11255 11256 _path_params: Dict[str, str] = {} 11257 _query_params: List[Tuple[str, str]] = [] 11258 _header_params: Dict[str, Optional[str]] = _headers or {} 11259 _form_params: List[Tuple[str, str]] = [] 11260 _files: Dict[str, str] = {} 11261 _body_params: Optional[bytes] = None 11262 11263 # process the path parameters 11264 if board_id is not None: 11265 _path_params["board_id"] = board_id 11266 if item_id is not None: 11267 _path_params["item_id"] = item_id 11268 # process the query parameters 11269 # process the header parameters 11270 # process the form parameters 11271 # process the body parameter 11272 11273 # set the HTTP header `Accept` 11274 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11275 11276 # authentication setting 11277 _auth_settings: List[str] = [] 11278 11279 return self.api_client.param_serialize( 11280 method="GET", 11281 resource_path="/v2/boards/{board_id}/cards/{item_id}", 11282 path_params=_path_params, 11283 query_params=_query_params, 11284 header_params=_header_params, 11285 body=_body_params, 11286 post_params=_form_params, 11287 files=_files, 11288 auth_settings=_auth_settings, 11289 collection_formats=_collection_formats, 11290 _host=_host, 11291 _request_auth=_request_auth, 11292 ) 11293 11294 @validate_call 11295 def update_card_item( 11296 self, 11297 board_id: Annotated[ 11298 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 11299 ], 11300 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 11301 card_update_request: CardUpdateRequest, 11302 _request_timeout: Union[ 11303 None, 11304 Annotated[StrictFloat, Field(gt=0)], 11305 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11306 ] = None, 11307 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11308 _content_type: Optional[StrictStr] = None, 11309 _headers: Optional[Dict[StrictStr, Any]] = None, 11310 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11311 ) -> CardItem: 11312 """Update card item 11313 11314 Updates a card item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11315 11316 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 11317 :type board_id: str 11318 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 11319 :type item_id: str 11320 :param card_update_request: (required) 11321 :type card_update_request: CardUpdateRequest 11322 :param _request_timeout: timeout setting for this request. If one 11323 number provided, it will be total request 11324 timeout. It can also be a pair (tuple) of 11325 (connection, read) timeouts. 11326 :type _request_timeout: int, tuple(int, int), optional 11327 :param _request_auth: set to override the auth_settings for an a single 11328 request; this effectively ignores the 11329 authentication in the spec for a single request. 11330 :type _request_auth: dict, optional 11331 :param _content_type: force content-type for the request. 11332 :type _content_type: str, Optional 11333 :param _headers: set to override the headers for a single 11334 request; this effectively ignores the headers 11335 in the spec for a single request. 11336 :type _headers: dict, optional 11337 :param _host_index: set to override the host_index for a single 11338 request; this effectively ignores the host_index 11339 in the spec for a single request. 11340 :type _host_index: int, optional 11341 :return: Returns the result object. 11342 """ # noqa: E501 11343 11344 _param = self._update_card_item_serialize( 11345 board_id=board_id, 11346 item_id=item_id, 11347 card_update_request=card_update_request, 11348 _request_auth=_request_auth, 11349 _content_type=_content_type, 11350 _headers=_headers, 11351 _host_index=_host_index, 11352 ) 11353 11354 _response_types_map: Dict[str, Optional[str]] = { 11355 "200": "CardItem", 11356 "400": None, 11357 "404": None, 11358 "409": None, 11359 "429": None, 11360 } 11361 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11362 response_data.read() 11363 return self.api_client.response_deserialize( 11364 response_data=response_data, 11365 response_types_map=_response_types_map, 11366 ).data 11367 11368 def _update_card_item_serialize( 11369 self, 11370 board_id, 11371 item_id, 11372 card_update_request, 11373 _request_auth, 11374 _content_type, 11375 _headers, 11376 _host_index, 11377 ) -> RequestSerialized: 11378 11379 _host = None 11380 11381 _collection_formats: Dict[str, str] = {} 11382 11383 _path_params: Dict[str, str] = {} 11384 _query_params: List[Tuple[str, str]] = [] 11385 _header_params: Dict[str, Optional[str]] = _headers or {} 11386 _form_params: List[Tuple[str, str]] = [] 11387 _files: Dict[str, str] = {} 11388 _body_params: Optional[bytes] = None 11389 11390 # process the path parameters 11391 if board_id is not None: 11392 _path_params["board_id"] = board_id 11393 if item_id is not None: 11394 _path_params["item_id"] = item_id 11395 # process the query parameters 11396 # process the header parameters 11397 # process the form parameters 11398 # process the body parameter 11399 if card_update_request is not None: 11400 _body_params = card_update_request 11401 11402 # set the HTTP header `Accept` 11403 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11404 11405 # set the HTTP header `Content-Type` 11406 if _content_type: 11407 _header_params["Content-Type"] = _content_type 11408 else: 11409 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 11410 if _default_content_type is not None: 11411 _header_params["Content-Type"] = _default_content_type 11412 11413 # authentication setting 11414 _auth_settings: List[str] = [] 11415 11416 return self.api_client.param_serialize( 11417 method="PATCH", 11418 resource_path="/v2/boards/{board_id}/cards/{item_id}", 11419 path_params=_path_params, 11420 query_params=_query_params, 11421 header_params=_header_params, 11422 body=_body_params, 11423 post_params=_form_params, 11424 files=_files, 11425 auth_settings=_auth_settings, 11426 collection_formats=_collection_formats, 11427 _host=_host, 11428 _request_auth=_request_auth, 11429 ) 11430 11431 @validate_call 11432 def create_connector( 11433 self, 11434 board_id: Annotated[ 11435 StrictStr, 11436 Field(description="Unique identifier (ID) of the board for which you want to create the connector."), 11437 ], 11438 connector_creation_data: ConnectorCreationData, 11439 _request_timeout: Union[ 11440 None, 11441 Annotated[StrictFloat, Field(gt=0)], 11442 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11443 ] = None, 11444 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11445 _content_type: Optional[StrictStr] = None, 11446 _headers: Optional[Dict[StrictStr, Any]] = None, 11447 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11448 ) -> ConnectorWithLinks: 11449 """Create connector 11450 11451 Adds a connector to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11452 11453 :param board_id: Unique identifier (ID) of the board for which you want to create the connector. (required) 11454 :type board_id: str 11455 :param connector_creation_data: (required) 11456 :type connector_creation_data: ConnectorCreationData 11457 :param _request_timeout: timeout setting for this request. If one 11458 number provided, it will be total request 11459 timeout. It can also be a pair (tuple) of 11460 (connection, read) timeouts. 11461 :type _request_timeout: int, tuple(int, int), optional 11462 :param _request_auth: set to override the auth_settings for an a single 11463 request; this effectively ignores the 11464 authentication in the spec for a single request. 11465 :type _request_auth: dict, optional 11466 :param _content_type: force content-type for the request. 11467 :type _content_type: str, Optional 11468 :param _headers: set to override the headers for a single 11469 request; this effectively ignores the headers 11470 in the spec for a single request. 11471 :type _headers: dict, optional 11472 :param _host_index: set to override the host_index for a single 11473 request; this effectively ignores the host_index 11474 in the spec for a single request. 11475 :type _host_index: int, optional 11476 :return: Returns the result object. 11477 """ # noqa: E501 11478 11479 _param = self._create_connector_serialize( 11480 board_id=board_id, 11481 connector_creation_data=connector_creation_data, 11482 _request_auth=_request_auth, 11483 _content_type=_content_type, 11484 _headers=_headers, 11485 _host_index=_host_index, 11486 ) 11487 11488 _response_types_map: Dict[str, Optional[str]] = { 11489 "200": "ConnectorWithLinks", 11490 "400": None, 11491 "404": None, 11492 "429": None, 11493 } 11494 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11495 response_data.read() 11496 return self.api_client.response_deserialize( 11497 response_data=response_data, 11498 response_types_map=_response_types_map, 11499 ).data 11500 11501 def _create_connector_serialize( 11502 self, 11503 board_id, 11504 connector_creation_data, 11505 _request_auth, 11506 _content_type, 11507 _headers, 11508 _host_index, 11509 ) -> RequestSerialized: 11510 11511 _host = None 11512 11513 _collection_formats: Dict[str, str] = {} 11514 11515 _path_params: Dict[str, str] = {} 11516 _query_params: List[Tuple[str, str]] = [] 11517 _header_params: Dict[str, Optional[str]] = _headers or {} 11518 _form_params: List[Tuple[str, str]] = [] 11519 _files: Dict[str, str] = {} 11520 _body_params: Optional[bytes] = None 11521 11522 # process the path parameters 11523 if board_id is not None: 11524 _path_params["board_id"] = board_id 11525 # process the query parameters 11526 # process the header parameters 11527 # process the form parameters 11528 # process the body parameter 11529 if connector_creation_data is not None: 11530 _body_params = connector_creation_data 11531 11532 # set the HTTP header `Accept` 11533 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11534 11535 # set the HTTP header `Content-Type` 11536 if _content_type: 11537 _header_params["Content-Type"] = _content_type 11538 else: 11539 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 11540 if _default_content_type is not None: 11541 _header_params["Content-Type"] = _default_content_type 11542 11543 # authentication setting 11544 _auth_settings: List[str] = [] 11545 11546 return self.api_client.param_serialize( 11547 method="POST", 11548 resource_path="/v2/boards/{board_id}/connectors", 11549 path_params=_path_params, 11550 query_params=_query_params, 11551 header_params=_header_params, 11552 body=_body_params, 11553 post_params=_form_params, 11554 files=_files, 11555 auth_settings=_auth_settings, 11556 collection_formats=_collection_formats, 11557 _host=_host, 11558 _request_auth=_request_auth, 11559 ) 11560 11561 @validate_call 11562 def delete_connector( 11563 self, 11564 board_id: Annotated[ 11565 StrictStr, 11566 Field(description="Unique identifier (ID) of the board from which you want to delete the connector."), 11567 ], 11568 connector_id: Annotated[ 11569 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to delete.") 11570 ], 11571 _request_timeout: Union[ 11572 None, 11573 Annotated[StrictFloat, Field(gt=0)], 11574 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11575 ] = None, 11576 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11577 _content_type: Optional[StrictStr] = None, 11578 _headers: Optional[Dict[StrictStr, Any]] = None, 11579 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11580 ) -> object: 11581 """Delete connector 11582 11583 Deletes the specified connector from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 11584 11585 :param board_id: Unique identifier (ID) of the board from which you want to delete the connector. (required) 11586 :type board_id: str 11587 :param connector_id: Unique identifier (ID) of the connector that you want to delete. (required) 11588 :type connector_id: str 11589 :param _request_timeout: timeout setting for this request. If one 11590 number provided, it will be total request 11591 timeout. It can also be a pair (tuple) of 11592 (connection, read) timeouts. 11593 :type _request_timeout: int, tuple(int, int), optional 11594 :param _request_auth: set to override the auth_settings for an a single 11595 request; this effectively ignores the 11596 authentication in the spec for a single request. 11597 :type _request_auth: dict, optional 11598 :param _content_type: force content-type for the request. 11599 :type _content_type: str, Optional 11600 :param _headers: set to override the headers for a single 11601 request; this effectively ignores the headers 11602 in the spec for a single request. 11603 :type _headers: dict, optional 11604 :param _host_index: set to override the host_index for a single 11605 request; this effectively ignores the host_index 11606 in the spec for a single request. 11607 :type _host_index: int, optional 11608 :return: Returns the result object. 11609 """ # noqa: E501 11610 11611 _param = self._delete_connector_serialize( 11612 board_id=board_id, 11613 connector_id=connector_id, 11614 _request_auth=_request_auth, 11615 _content_type=_content_type, 11616 _headers=_headers, 11617 _host_index=_host_index, 11618 ) 11619 11620 _response_types_map: Dict[str, Optional[str]] = { 11621 "204": "object", 11622 "400": None, 11623 "404": None, 11624 "429": None, 11625 } 11626 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11627 response_data.read() 11628 return self.api_client.response_deserialize( 11629 response_data=response_data, 11630 response_types_map=_response_types_map, 11631 ).data 11632 11633 def _delete_connector_serialize( 11634 self, 11635 board_id, 11636 connector_id, 11637 _request_auth, 11638 _content_type, 11639 _headers, 11640 _host_index, 11641 ) -> RequestSerialized: 11642 11643 _host = None 11644 11645 _collection_formats: Dict[str, str] = {} 11646 11647 _path_params: Dict[str, str] = {} 11648 _query_params: List[Tuple[str, str]] = [] 11649 _header_params: Dict[str, Optional[str]] = _headers or {} 11650 _form_params: List[Tuple[str, str]] = [] 11651 _files: Dict[str, str] = {} 11652 _body_params: Optional[bytes] = None 11653 11654 # process the path parameters 11655 if board_id is not None: 11656 _path_params["board_id"] = board_id 11657 if connector_id is not None: 11658 _path_params["connector_id"] = connector_id 11659 # process the query parameters 11660 # process the header parameters 11661 # process the form parameters 11662 # process the body parameter 11663 11664 # set the HTTP header `Accept` 11665 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11666 11667 # authentication setting 11668 _auth_settings: List[str] = [] 11669 11670 return self.api_client.param_serialize( 11671 method="DELETE", 11672 resource_path="/v2/boards/{board_id}/connectors/{connector_id}", 11673 path_params=_path_params, 11674 query_params=_query_params, 11675 header_params=_header_params, 11676 body=_body_params, 11677 post_params=_form_params, 11678 files=_files, 11679 auth_settings=_auth_settings, 11680 collection_formats=_collection_formats, 11681 _host=_host, 11682 _request_auth=_request_auth, 11683 ) 11684 11685 @validate_call 11686 def get_connector( 11687 self, 11688 board_id: Annotated[ 11689 StrictStr, 11690 Field( 11691 description="Unique identifier (ID) of the board from which you want to retrieve a specific connector." 11692 ), 11693 ], 11694 connector_id: Annotated[ 11695 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to retrieve.") 11696 ], 11697 _request_timeout: Union[ 11698 None, 11699 Annotated[StrictFloat, Field(gt=0)], 11700 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11701 ] = None, 11702 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11703 _content_type: Optional[StrictStr] = None, 11704 _headers: Optional[Dict[StrictStr, Any]] = None, 11705 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11706 ) -> ConnectorWithLinks: 11707 """Get specific connector 11708 11709 Retrieves information for a specific connector on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 11710 11711 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific connector. (required) 11712 :type board_id: str 11713 :param connector_id: Unique identifier (ID) of the connector that you want to retrieve. (required) 11714 :type connector_id: str 11715 :param _request_timeout: timeout setting for this request. If one 11716 number provided, it will be total request 11717 timeout. It can also be a pair (tuple) of 11718 (connection, read) timeouts. 11719 :type _request_timeout: int, tuple(int, int), optional 11720 :param _request_auth: set to override the auth_settings for an a single 11721 request; this effectively ignores the 11722 authentication in the spec for a single request. 11723 :type _request_auth: dict, optional 11724 :param _content_type: force content-type for the request. 11725 :type _content_type: str, Optional 11726 :param _headers: set to override the headers for a single 11727 request; this effectively ignores the headers 11728 in the spec for a single request. 11729 :type _headers: dict, optional 11730 :param _host_index: set to override the host_index for a single 11731 request; this effectively ignores the host_index 11732 in the spec for a single request. 11733 :type _host_index: int, optional 11734 :return: Returns the result object. 11735 """ # noqa: E501 11736 11737 _param = self._get_connector_serialize( 11738 board_id=board_id, 11739 connector_id=connector_id, 11740 _request_auth=_request_auth, 11741 _content_type=_content_type, 11742 _headers=_headers, 11743 _host_index=_host_index, 11744 ) 11745 11746 _response_types_map: Dict[str, Optional[str]] = { 11747 "200": "ConnectorWithLinks", 11748 "400": None, 11749 "404": None, 11750 "429": None, 11751 } 11752 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11753 response_data.read() 11754 return self.api_client.response_deserialize( 11755 response_data=response_data, 11756 response_types_map=_response_types_map, 11757 ).data 11758 11759 def _get_connector_serialize( 11760 self, 11761 board_id, 11762 connector_id, 11763 _request_auth, 11764 _content_type, 11765 _headers, 11766 _host_index, 11767 ) -> RequestSerialized: 11768 11769 _host = None 11770 11771 _collection_formats: Dict[str, str] = {} 11772 11773 _path_params: Dict[str, str] = {} 11774 _query_params: List[Tuple[str, str]] = [] 11775 _header_params: Dict[str, Optional[str]] = _headers or {} 11776 _form_params: List[Tuple[str, str]] = [] 11777 _files: Dict[str, str] = {} 11778 _body_params: Optional[bytes] = None 11779 11780 # process the path parameters 11781 if board_id is not None: 11782 _path_params["board_id"] = board_id 11783 if connector_id is not None: 11784 _path_params["connector_id"] = connector_id 11785 # process the query parameters 11786 # process the header parameters 11787 # process the form parameters 11788 # process the body parameter 11789 11790 # set the HTTP header `Accept` 11791 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11792 11793 # authentication setting 11794 _auth_settings: List[str] = [] 11795 11796 return self.api_client.param_serialize( 11797 method="GET", 11798 resource_path="/v2/boards/{board_id}/connectors/{connector_id}", 11799 path_params=_path_params, 11800 query_params=_query_params, 11801 header_params=_header_params, 11802 body=_body_params, 11803 post_params=_form_params, 11804 files=_files, 11805 auth_settings=_auth_settings, 11806 collection_formats=_collection_formats, 11807 _host=_host, 11808 _request_auth=_request_auth, 11809 ) 11810 11811 @validate_call 11812 def get_connectors( 11813 self, 11814 board_id: Annotated[ 11815 StrictStr, 11816 Field( 11817 description="Unique identifier (ID) of the board from which you want to retrieve a list of connectors." 11818 ), 11819 ], 11820 limit: Optional[Annotated[str, Field(strict=True)]] = None, 11821 cursor: Optional[StrictStr] = None, 11822 _request_timeout: Union[ 11823 None, 11824 Annotated[StrictFloat, Field(gt=0)], 11825 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11826 ] = None, 11827 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11828 _content_type: Optional[StrictStr] = None, 11829 _headers: Optional[Dict[StrictStr, Any]] = None, 11830 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11831 ) -> ConnectorsCursorPaged: 11832 """Get connectors 11833 11834 Retrieves a list of connectors for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11835 11836 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a list of connectors. (required) 11837 :type board_id: str 11838 :param limit: 11839 :type limit: str 11840 :param cursor: 11841 :type cursor: str 11842 :param _request_timeout: timeout setting for this request. If one 11843 number provided, it will be total request 11844 timeout. It can also be a pair (tuple) of 11845 (connection, read) timeouts. 11846 :type _request_timeout: int, tuple(int, int), optional 11847 :param _request_auth: set to override the auth_settings for an a single 11848 request; this effectively ignores the 11849 authentication in the spec for a single request. 11850 :type _request_auth: dict, optional 11851 :param _content_type: force content-type for the request. 11852 :type _content_type: str, Optional 11853 :param _headers: set to override the headers for a single 11854 request; this effectively ignores the headers 11855 in the spec for a single request. 11856 :type _headers: dict, optional 11857 :param _host_index: set to override the host_index for a single 11858 request; this effectively ignores the host_index 11859 in the spec for a single request. 11860 :type _host_index: int, optional 11861 :return: Returns the result object. 11862 """ # noqa: E501 11863 11864 _param = self._get_connectors_serialize( 11865 board_id=board_id, 11866 limit=limit, 11867 cursor=cursor, 11868 _request_auth=_request_auth, 11869 _content_type=_content_type, 11870 _headers=_headers, 11871 _host_index=_host_index, 11872 ) 11873 11874 _response_types_map: Dict[str, Optional[str]] = { 11875 "200": "ConnectorsCursorPaged", 11876 "400": None, 11877 "404": None, 11878 "429": None, 11879 } 11880 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11881 response_data.read() 11882 return self.api_client.response_deserialize( 11883 response_data=response_data, 11884 response_types_map=_response_types_map, 11885 ).data 11886 11887 def _get_connectors_serialize( 11888 self, 11889 board_id, 11890 limit, 11891 cursor, 11892 _request_auth, 11893 _content_type, 11894 _headers, 11895 _host_index, 11896 ) -> RequestSerialized: 11897 11898 _host = None 11899 11900 _collection_formats: Dict[str, str] = {} 11901 11902 _path_params: Dict[str, str] = {} 11903 _query_params: List[Tuple[str, str]] = [] 11904 _header_params: Dict[str, Optional[str]] = _headers or {} 11905 _form_params: List[Tuple[str, str]] = [] 11906 _files: Dict[str, str] = {} 11907 _body_params: Optional[bytes] = None 11908 11909 # process the path parameters 11910 if board_id is not None: 11911 _path_params["board_id"] = board_id 11912 # process the query parameters 11913 if limit is not None: 11914 11915 _query_params.append(("limit", limit)) 11916 11917 if cursor is not None: 11918 11919 _query_params.append(("cursor", cursor)) 11920 11921 # process the header parameters 11922 # process the form parameters 11923 # process the body parameter 11924 11925 # set the HTTP header `Accept` 11926 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11927 11928 # authentication setting 11929 _auth_settings: List[str] = [] 11930 11931 return self.api_client.param_serialize( 11932 method="GET", 11933 resource_path="/v2/boards/{board_id}/connectors", 11934 path_params=_path_params, 11935 query_params=_query_params, 11936 header_params=_header_params, 11937 body=_body_params, 11938 post_params=_form_params, 11939 files=_files, 11940 auth_settings=_auth_settings, 11941 collection_formats=_collection_formats, 11942 _host=_host, 11943 _request_auth=_request_auth, 11944 ) 11945 11946 @validate_call 11947 def update_connector( 11948 self, 11949 board_id: Annotated[ 11950 StrictStr, 11951 Field(description="Unique identifier (ID) of the board for which you want to update the connector."), 11952 ], 11953 connector_id: Annotated[ 11954 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to update.") 11955 ], 11956 connector_changes_data: ConnectorChangesData, 11957 _request_timeout: Union[ 11958 None, 11959 Annotated[StrictFloat, Field(gt=0)], 11960 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11961 ] = None, 11962 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11963 _content_type: Optional[StrictStr] = None, 11964 _headers: Optional[Dict[StrictStr, Any]] = None, 11965 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11966 ) -> ConnectorWithLinks: 11967 """Update connector 11968 11969 Updates a connector on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11970 11971 :param board_id: Unique identifier (ID) of the board for which you want to update the connector. (required) 11972 :type board_id: str 11973 :param connector_id: Unique identifier (ID) of the connector that you want to update. (required) 11974 :type connector_id: str 11975 :param connector_changes_data: (required) 11976 :type connector_changes_data: ConnectorChangesData 11977 :param _request_timeout: timeout setting for this request. If one 11978 number provided, it will be total request 11979 timeout. It can also be a pair (tuple) of 11980 (connection, read) timeouts. 11981 :type _request_timeout: int, tuple(int, int), optional 11982 :param _request_auth: set to override the auth_settings for an a single 11983 request; this effectively ignores the 11984 authentication in the spec for a single request. 11985 :type _request_auth: dict, optional 11986 :param _content_type: force content-type for the request. 11987 :type _content_type: str, Optional 11988 :param _headers: set to override the headers for a single 11989 request; this effectively ignores the headers 11990 in the spec for a single request. 11991 :type _headers: dict, optional 11992 :param _host_index: set to override the host_index for a single 11993 request; this effectively ignores the host_index 11994 in the spec for a single request. 11995 :type _host_index: int, optional 11996 :return: Returns the result object. 11997 """ # noqa: E501 11998 11999 _param = self._update_connector_serialize( 12000 board_id=board_id, 12001 connector_id=connector_id, 12002 connector_changes_data=connector_changes_data, 12003 _request_auth=_request_auth, 12004 _content_type=_content_type, 12005 _headers=_headers, 12006 _host_index=_host_index, 12007 ) 12008 12009 _response_types_map: Dict[str, Optional[str]] = { 12010 "200": "ConnectorWithLinks", 12011 "400": None, 12012 "404": None, 12013 "409": None, 12014 "429": None, 12015 } 12016 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12017 response_data.read() 12018 return self.api_client.response_deserialize( 12019 response_data=response_data, 12020 response_types_map=_response_types_map, 12021 ).data 12022 12023 def _update_connector_serialize( 12024 self, 12025 board_id, 12026 connector_id, 12027 connector_changes_data, 12028 _request_auth, 12029 _content_type, 12030 _headers, 12031 _host_index, 12032 ) -> RequestSerialized: 12033 12034 _host = None 12035 12036 _collection_formats: Dict[str, str] = {} 12037 12038 _path_params: Dict[str, str] = {} 12039 _query_params: List[Tuple[str, str]] = [] 12040 _header_params: Dict[str, Optional[str]] = _headers or {} 12041 _form_params: List[Tuple[str, str]] = [] 12042 _files: Dict[str, str] = {} 12043 _body_params: Optional[bytes] = None 12044 12045 # process the path parameters 12046 if board_id is not None: 12047 _path_params["board_id"] = board_id 12048 if connector_id is not None: 12049 _path_params["connector_id"] = connector_id 12050 # process the query parameters 12051 # process the header parameters 12052 # process the form parameters 12053 # process the body parameter 12054 if connector_changes_data is not None: 12055 _body_params = connector_changes_data 12056 12057 # set the HTTP header `Accept` 12058 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12059 12060 # set the HTTP header `Content-Type` 12061 if _content_type: 12062 _header_params["Content-Type"] = _content_type 12063 else: 12064 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12065 if _default_content_type is not None: 12066 _header_params["Content-Type"] = _default_content_type 12067 12068 # authentication setting 12069 _auth_settings: List[str] = [] 12070 12071 return self.api_client.param_serialize( 12072 method="PATCH", 12073 resource_path="/v2/boards/{board_id}/connectors/{connector_id}", 12074 path_params=_path_params, 12075 query_params=_query_params, 12076 header_params=_header_params, 12077 body=_body_params, 12078 post_params=_form_params, 12079 files=_files, 12080 auth_settings=_auth_settings, 12081 collection_formats=_collection_formats, 12082 _host=_host, 12083 _request_auth=_request_auth, 12084 ) 12085 12086 @validate_call 12087 def create_document_item_using_file_from_device( 12088 self, 12089 board_id_platform_file_upload: Annotated[ 12090 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12091 ], 12092 resource: Annotated[ 12093 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 12094 ], 12095 data: Optional[CreateDocumentItemUsingFileFromDeviceRequestData] = None, 12096 _request_timeout: Union[ 12097 None, 12098 Annotated[StrictFloat, Field(gt=0)], 12099 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12100 ] = None, 12101 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12102 _content_type: Optional[StrictStr] = None, 12103 _headers: Optional[Dict[StrictStr, Any]] = None, 12104 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12105 ) -> DocumentItem: 12106 """Create document item using file from device 12107 12108 Adds a document item to a board by selecting file from device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12109 12110 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) 12111 :type board_id_platform_file_upload: str 12112 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 12113 :type resource: bytearray 12114 :param data: 12115 :type data: CreateDocumentItemUsingFileFromDeviceRequestData 12116 :param _request_timeout: timeout setting for this request. If one 12117 number provided, it will be total request 12118 timeout. It can also be a pair (tuple) of 12119 (connection, read) timeouts. 12120 :type _request_timeout: int, tuple(int, int), optional 12121 :param _request_auth: set to override the auth_settings for an a single 12122 request; this effectively ignores the 12123 authentication in the spec for a single request. 12124 :type _request_auth: dict, optional 12125 :param _content_type: force content-type for the request. 12126 :type _content_type: str, Optional 12127 :param _headers: set to override the headers for a single 12128 request; this effectively ignores the headers 12129 in the spec for a single request. 12130 :type _headers: dict, optional 12131 :param _host_index: set to override the host_index for a single 12132 request; this effectively ignores the host_index 12133 in the spec for a single request. 12134 :type _host_index: int, optional 12135 :return: Returns the result object. 12136 """ # noqa: E501 12137 12138 _param = self._create_document_item_using_file_from_device_serialize( 12139 board_id_platform_file_upload=board_id_platform_file_upload, 12140 resource=resource, 12141 data=data, 12142 _request_auth=_request_auth, 12143 _content_type=_content_type, 12144 _headers=_headers, 12145 _host_index=_host_index, 12146 ) 12147 12148 _response_types_map: Dict[str, Optional[str]] = { 12149 "201": "DocumentItem", 12150 } 12151 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12152 response_data.read() 12153 return self.api_client.response_deserialize( 12154 response_data=response_data, 12155 response_types_map=_response_types_map, 12156 ).data 12157 12158 def _create_document_item_using_file_from_device_serialize( 12159 self, 12160 board_id_platform_file_upload, 12161 resource, 12162 data, 12163 _request_auth, 12164 _content_type, 12165 _headers, 12166 _host_index, 12167 ) -> RequestSerialized: 12168 12169 _host = None 12170 12171 _collection_formats: Dict[str, str] = {} 12172 12173 _path_params: Dict[str, str] = {} 12174 _query_params: List[Tuple[str, str]] = [] 12175 _header_params: Dict[str, Optional[str]] = _headers or {} 12176 _form_params: List[Tuple[str, str]] = [] 12177 _files: Dict[str, str] = {} 12178 _body_params: Optional[bytes] = None 12179 12180 # process the path parameters 12181 if board_id_platform_file_upload is not None: 12182 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 12183 # process the query parameters 12184 # process the header parameters 12185 # process the form parameters 12186 if data is not None: 12187 _form_params.append(("data", data)) 12188 if resource is not None: 12189 _files["resource"] = resource 12190 # process the body parameter 12191 12192 # set the HTTP header `Accept` 12193 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12194 12195 # set the HTTP header `Content-Type` 12196 if _content_type: 12197 _header_params["Content-Type"] = _content_type 12198 else: 12199 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 12200 if _default_content_type is not None: 12201 _header_params["Content-Type"] = _default_content_type 12202 12203 # authentication setting 12204 _auth_settings: List[str] = [] 12205 12206 return self.api_client.param_serialize( 12207 method="POST", 12208 resource_path="/v2/boards/{board_id_PlatformFileUpload}/documents", 12209 path_params=_path_params, 12210 query_params=_query_params, 12211 header_params=_header_params, 12212 body=_body_params, 12213 post_params=_form_params, 12214 files=_files, 12215 auth_settings=_auth_settings, 12216 collection_formats=_collection_formats, 12217 _host=_host, 12218 _request_auth=_request_auth, 12219 ) 12220 12221 @validate_call 12222 def create_document_item_using_url( 12223 self, 12224 board_id: Annotated[ 12225 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12226 ], 12227 document_create_request: DocumentCreateRequest, 12228 _request_timeout: Union[ 12229 None, 12230 Annotated[StrictFloat, Field(gt=0)], 12231 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12232 ] = None, 12233 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12234 _content_type: Optional[StrictStr] = None, 12235 _headers: Optional[Dict[StrictStr, Any]] = None, 12236 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12237 ) -> DocumentItem: 12238 """Create document item using URL 12239 12240 Adds a document item to a board by specifying the URL where the document is hosted.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12241 12242 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 12243 :type board_id: str 12244 :param document_create_request: (required) 12245 :type document_create_request: DocumentCreateRequest 12246 :param _request_timeout: timeout setting for this request. If one 12247 number provided, it will be total request 12248 timeout. It can also be a pair (tuple) of 12249 (connection, read) timeouts. 12250 :type _request_timeout: int, tuple(int, int), optional 12251 :param _request_auth: set to override the auth_settings for an a single 12252 request; this effectively ignores the 12253 authentication in the spec for a single request. 12254 :type _request_auth: dict, optional 12255 :param _content_type: force content-type for the request. 12256 :type _content_type: str, Optional 12257 :param _headers: set to override the headers for a single 12258 request; this effectively ignores the headers 12259 in the spec for a single request. 12260 :type _headers: dict, optional 12261 :param _host_index: set to override the host_index for a single 12262 request; this effectively ignores the host_index 12263 in the spec for a single request. 12264 :type _host_index: int, optional 12265 :return: Returns the result object. 12266 """ # noqa: E501 12267 12268 _param = self._create_document_item_using_url_serialize( 12269 board_id=board_id, 12270 document_create_request=document_create_request, 12271 _request_auth=_request_auth, 12272 _content_type=_content_type, 12273 _headers=_headers, 12274 _host_index=_host_index, 12275 ) 12276 12277 _response_types_map: Dict[str, Optional[str]] = { 12278 "201": "DocumentItem", 12279 "400": None, 12280 "404": None, 12281 "429": None, 12282 } 12283 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12284 response_data.read() 12285 return self.api_client.response_deserialize( 12286 response_data=response_data, 12287 response_types_map=_response_types_map, 12288 ).data 12289 12290 def _create_document_item_using_url_serialize( 12291 self, 12292 board_id, 12293 document_create_request, 12294 _request_auth, 12295 _content_type, 12296 _headers, 12297 _host_index, 12298 ) -> RequestSerialized: 12299 12300 _host = None 12301 12302 _collection_formats: Dict[str, str] = {} 12303 12304 _path_params: Dict[str, str] = {} 12305 _query_params: List[Tuple[str, str]] = [] 12306 _header_params: Dict[str, Optional[str]] = _headers or {} 12307 _form_params: List[Tuple[str, str]] = [] 12308 _files: Dict[str, str] = {} 12309 _body_params: Optional[bytes] = None 12310 12311 # process the path parameters 12312 if board_id is not None: 12313 _path_params["board_id"] = board_id 12314 # process the query parameters 12315 # process the header parameters 12316 # process the form parameters 12317 # process the body parameter 12318 if document_create_request is not None: 12319 _body_params = document_create_request 12320 12321 # set the HTTP header `Accept` 12322 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12323 12324 # set the HTTP header `Content-Type` 12325 if _content_type: 12326 _header_params["Content-Type"] = _content_type 12327 else: 12328 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12329 if _default_content_type is not None: 12330 _header_params["Content-Type"] = _default_content_type 12331 12332 # authentication setting 12333 _auth_settings: List[str] = [] 12334 12335 return self.api_client.param_serialize( 12336 method="POST", 12337 resource_path="/v2/boards/{board_id}/documents", 12338 path_params=_path_params, 12339 query_params=_query_params, 12340 header_params=_header_params, 12341 body=_body_params, 12342 post_params=_form_params, 12343 files=_files, 12344 auth_settings=_auth_settings, 12345 collection_formats=_collection_formats, 12346 _host=_host, 12347 _request_auth=_request_auth, 12348 ) 12349 12350 @validate_call 12351 def delete_document_item( 12352 self, 12353 board_id: Annotated[ 12354 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 12355 ], 12356 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 12357 _request_timeout: Union[ 12358 None, 12359 Annotated[StrictFloat, Field(gt=0)], 12360 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12361 ] = None, 12362 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12363 _content_type: Optional[StrictStr] = None, 12364 _headers: Optional[Dict[StrictStr, Any]] = None, 12365 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12366 ) -> object: 12367 """Delete document item 12368 12369 Deletes a document item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 12370 12371 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 12372 :type board_id: str 12373 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 12374 :type item_id: str 12375 :param _request_timeout: timeout setting for this request. If one 12376 number provided, it will be total request 12377 timeout. It can also be a pair (tuple) of 12378 (connection, read) timeouts. 12379 :type _request_timeout: int, tuple(int, int), optional 12380 :param _request_auth: set to override the auth_settings for an a single 12381 request; this effectively ignores the 12382 authentication in the spec for a single request. 12383 :type _request_auth: dict, optional 12384 :param _content_type: force content-type for the request. 12385 :type _content_type: str, Optional 12386 :param _headers: set to override the headers for a single 12387 request; this effectively ignores the headers 12388 in the spec for a single request. 12389 :type _headers: dict, optional 12390 :param _host_index: set to override the host_index for a single 12391 request; this effectively ignores the host_index 12392 in the spec for a single request. 12393 :type _host_index: int, optional 12394 :return: Returns the result object. 12395 """ # noqa: E501 12396 12397 _param = self._delete_document_item_serialize( 12398 board_id=board_id, 12399 item_id=item_id, 12400 _request_auth=_request_auth, 12401 _content_type=_content_type, 12402 _headers=_headers, 12403 _host_index=_host_index, 12404 ) 12405 12406 _response_types_map: Dict[str, Optional[str]] = { 12407 "204": "object", 12408 "400": None, 12409 "404": None, 12410 "429": None, 12411 } 12412 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12413 response_data.read() 12414 return self.api_client.response_deserialize( 12415 response_data=response_data, 12416 response_types_map=_response_types_map, 12417 ).data 12418 12419 def _delete_document_item_serialize( 12420 self, 12421 board_id, 12422 item_id, 12423 _request_auth, 12424 _content_type, 12425 _headers, 12426 _host_index, 12427 ) -> RequestSerialized: 12428 12429 _host = None 12430 12431 _collection_formats: Dict[str, str] = {} 12432 12433 _path_params: Dict[str, str] = {} 12434 _query_params: List[Tuple[str, str]] = [] 12435 _header_params: Dict[str, Optional[str]] = _headers or {} 12436 _form_params: List[Tuple[str, str]] = [] 12437 _files: Dict[str, str] = {} 12438 _body_params: Optional[bytes] = None 12439 12440 # process the path parameters 12441 if board_id is not None: 12442 _path_params["board_id"] = board_id 12443 if item_id is not None: 12444 _path_params["item_id"] = item_id 12445 # process the query parameters 12446 # process the header parameters 12447 # process the form parameters 12448 # process the body parameter 12449 12450 # set the HTTP header `Accept` 12451 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12452 12453 # authentication setting 12454 _auth_settings: List[str] = [] 12455 12456 return self.api_client.param_serialize( 12457 method="DELETE", 12458 resource_path="/v2/boards/{board_id}/documents/{item_id}", 12459 path_params=_path_params, 12460 query_params=_query_params, 12461 header_params=_header_params, 12462 body=_body_params, 12463 post_params=_form_params, 12464 files=_files, 12465 auth_settings=_auth_settings, 12466 collection_formats=_collection_formats, 12467 _host=_host, 12468 _request_auth=_request_auth, 12469 ) 12470 12471 @validate_call 12472 def get_document_item( 12473 self, 12474 board_id: Annotated[ 12475 StrictStr, 12476 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 12477 ], 12478 item_id: Annotated[ 12479 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 12480 ], 12481 _request_timeout: Union[ 12482 None, 12483 Annotated[StrictFloat, Field(gt=0)], 12484 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12485 ] = None, 12486 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12487 _content_type: Optional[StrictStr] = None, 12488 _headers: Optional[Dict[StrictStr, Any]] = None, 12489 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12490 ) -> DocumentItem: 12491 """Get document item 12492 12493 Retrieves information for a specific document item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 12494 12495 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 12496 :type board_id: str 12497 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 12498 :type item_id: str 12499 :param _request_timeout: timeout setting for this request. If one 12500 number provided, it will be total request 12501 timeout. It can also be a pair (tuple) of 12502 (connection, read) timeouts. 12503 :type _request_timeout: int, tuple(int, int), optional 12504 :param _request_auth: set to override the auth_settings for an a single 12505 request; this effectively ignores the 12506 authentication in the spec for a single request. 12507 :type _request_auth: dict, optional 12508 :param _content_type: force content-type for the request. 12509 :type _content_type: str, Optional 12510 :param _headers: set to override the headers for a single 12511 request; this effectively ignores the headers 12512 in the spec for a single request. 12513 :type _headers: dict, optional 12514 :param _host_index: set to override the host_index for a single 12515 request; this effectively ignores the host_index 12516 in the spec for a single request. 12517 :type _host_index: int, optional 12518 :return: Returns the result object. 12519 """ # noqa: E501 12520 12521 _param = self._get_document_item_serialize( 12522 board_id=board_id, 12523 item_id=item_id, 12524 _request_auth=_request_auth, 12525 _content_type=_content_type, 12526 _headers=_headers, 12527 _host_index=_host_index, 12528 ) 12529 12530 _response_types_map: Dict[str, Optional[str]] = { 12531 "200": "DocumentItem", 12532 "400": None, 12533 "404": None, 12534 "429": None, 12535 } 12536 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12537 response_data.read() 12538 return self.api_client.response_deserialize( 12539 response_data=response_data, 12540 response_types_map=_response_types_map, 12541 ).data 12542 12543 def _get_document_item_serialize( 12544 self, 12545 board_id, 12546 item_id, 12547 _request_auth, 12548 _content_type, 12549 _headers, 12550 _host_index, 12551 ) -> RequestSerialized: 12552 12553 _host = None 12554 12555 _collection_formats: Dict[str, str] = {} 12556 12557 _path_params: Dict[str, str] = {} 12558 _query_params: List[Tuple[str, str]] = [] 12559 _header_params: Dict[str, Optional[str]] = _headers or {} 12560 _form_params: List[Tuple[str, str]] = [] 12561 _files: Dict[str, str] = {} 12562 _body_params: Optional[bytes] = None 12563 12564 # process the path parameters 12565 if board_id is not None: 12566 _path_params["board_id"] = board_id 12567 if item_id is not None: 12568 _path_params["item_id"] = item_id 12569 # process the query parameters 12570 # process the header parameters 12571 # process the form parameters 12572 # process the body parameter 12573 12574 # set the HTTP header `Accept` 12575 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12576 12577 # authentication setting 12578 _auth_settings: List[str] = [] 12579 12580 return self.api_client.param_serialize( 12581 method="GET", 12582 resource_path="/v2/boards/{board_id}/documents/{item_id}", 12583 path_params=_path_params, 12584 query_params=_query_params, 12585 header_params=_header_params, 12586 body=_body_params, 12587 post_params=_form_params, 12588 files=_files, 12589 auth_settings=_auth_settings, 12590 collection_formats=_collection_formats, 12591 _host=_host, 12592 _request_auth=_request_auth, 12593 ) 12594 12595 @validate_call 12596 def update_document_item_using_file_from_device( 12597 self, 12598 board_id_platform_file_upload: Annotated[ 12599 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 12600 ], 12601 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 12602 resource: Annotated[ 12603 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 12604 ], 12605 data: Optional[UploadFileFromDeviceData] = None, 12606 _request_timeout: Union[ 12607 None, 12608 Annotated[StrictFloat, Field(gt=0)], 12609 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12610 ] = None, 12611 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12612 _content_type: Optional[StrictStr] = None, 12613 _headers: Optional[Dict[StrictStr, Any]] = None, 12614 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12615 ) -> DocumentItem: 12616 """Update document item using file from device 12617 12618 Updates a document item on a board by using file from a device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12619 12620 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) 12621 :type board_id_platform_file_upload: str 12622 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 12623 :type item_id: str 12624 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 12625 :type resource: bytearray 12626 :param data: 12627 :type data: UploadFileFromDeviceData 12628 :param _request_timeout: timeout setting for this request. If one 12629 number provided, it will be total request 12630 timeout. It can also be a pair (tuple) of 12631 (connection, read) timeouts. 12632 :type _request_timeout: int, tuple(int, int), optional 12633 :param _request_auth: set to override the auth_settings for an a single 12634 request; this effectively ignores the 12635 authentication in the spec for a single request. 12636 :type _request_auth: dict, optional 12637 :param _content_type: force content-type for the request. 12638 :type _content_type: str, Optional 12639 :param _headers: set to override the headers for a single 12640 request; this effectively ignores the headers 12641 in the spec for a single request. 12642 :type _headers: dict, optional 12643 :param _host_index: set to override the host_index for a single 12644 request; this effectively ignores the host_index 12645 in the spec for a single request. 12646 :type _host_index: int, optional 12647 :return: Returns the result object. 12648 """ # noqa: E501 12649 12650 _param = self._update_document_item_using_file_from_device_serialize( 12651 board_id_platform_file_upload=board_id_platform_file_upload, 12652 item_id=item_id, 12653 resource=resource, 12654 data=data, 12655 _request_auth=_request_auth, 12656 _content_type=_content_type, 12657 _headers=_headers, 12658 _host_index=_host_index, 12659 ) 12660 12661 _response_types_map: Dict[str, Optional[str]] = { 12662 "200": "DocumentItem", 12663 } 12664 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12665 response_data.read() 12666 return self.api_client.response_deserialize( 12667 response_data=response_data, 12668 response_types_map=_response_types_map, 12669 ).data 12670 12671 def _update_document_item_using_file_from_device_serialize( 12672 self, 12673 board_id_platform_file_upload, 12674 item_id, 12675 resource, 12676 data, 12677 _request_auth, 12678 _content_type, 12679 _headers, 12680 _host_index, 12681 ) -> RequestSerialized: 12682 12683 _host = None 12684 12685 _collection_formats: Dict[str, str] = {} 12686 12687 _path_params: Dict[str, str] = {} 12688 _query_params: List[Tuple[str, str]] = [] 12689 _header_params: Dict[str, Optional[str]] = _headers or {} 12690 _form_params: List[Tuple[str, str]] = [] 12691 _files: Dict[str, str] = {} 12692 _body_params: Optional[bytes] = None 12693 12694 # process the path parameters 12695 if board_id_platform_file_upload is not None: 12696 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 12697 if item_id is not None: 12698 _path_params["item_id"] = item_id 12699 # process the query parameters 12700 # process the header parameters 12701 # process the form parameters 12702 if data is not None: 12703 _form_params.append(("data", data)) 12704 if resource is not None: 12705 _files["resource"] = resource 12706 # process the body parameter 12707 12708 # set the HTTP header `Accept` 12709 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12710 12711 # set the HTTP header `Content-Type` 12712 if _content_type: 12713 _header_params["Content-Type"] = _content_type 12714 else: 12715 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 12716 if _default_content_type is not None: 12717 _header_params["Content-Type"] = _default_content_type 12718 12719 # authentication setting 12720 _auth_settings: List[str] = [] 12721 12722 return self.api_client.param_serialize( 12723 method="PATCH", 12724 resource_path="/v2/boards/{board_id_PlatformFileUpload}/documents/{item_id}", 12725 path_params=_path_params, 12726 query_params=_query_params, 12727 header_params=_header_params, 12728 body=_body_params, 12729 post_params=_form_params, 12730 files=_files, 12731 auth_settings=_auth_settings, 12732 collection_formats=_collection_formats, 12733 _host=_host, 12734 _request_auth=_request_auth, 12735 ) 12736 12737 @validate_call 12738 def update_document_item_using_url( 12739 self, 12740 board_id: Annotated[ 12741 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 12742 ], 12743 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 12744 document_update_request: DocumentUpdateRequest, 12745 _request_timeout: Union[ 12746 None, 12747 Annotated[StrictFloat, Field(gt=0)], 12748 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12749 ] = None, 12750 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12751 _content_type: Optional[StrictStr] = None, 12752 _headers: Optional[Dict[StrictStr, Any]] = None, 12753 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12754 ) -> DocumentItem: 12755 """Update document item using URL 12756 12757 Updates a document item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12758 12759 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 12760 :type board_id: str 12761 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 12762 :type item_id: str 12763 :param document_update_request: (required) 12764 :type document_update_request: DocumentUpdateRequest 12765 :param _request_timeout: timeout setting for this request. If one 12766 number provided, it will be total request 12767 timeout. It can also be a pair (tuple) of 12768 (connection, read) timeouts. 12769 :type _request_timeout: int, tuple(int, int), optional 12770 :param _request_auth: set to override the auth_settings for an a single 12771 request; this effectively ignores the 12772 authentication in the spec for a single request. 12773 :type _request_auth: dict, optional 12774 :param _content_type: force content-type for the request. 12775 :type _content_type: str, Optional 12776 :param _headers: set to override the headers for a single 12777 request; this effectively ignores the headers 12778 in the spec for a single request. 12779 :type _headers: dict, optional 12780 :param _host_index: set to override the host_index for a single 12781 request; this effectively ignores the host_index 12782 in the spec for a single request. 12783 :type _host_index: int, optional 12784 :return: Returns the result object. 12785 """ # noqa: E501 12786 12787 _param = self._update_document_item_using_url_serialize( 12788 board_id=board_id, 12789 item_id=item_id, 12790 document_update_request=document_update_request, 12791 _request_auth=_request_auth, 12792 _content_type=_content_type, 12793 _headers=_headers, 12794 _host_index=_host_index, 12795 ) 12796 12797 _response_types_map: Dict[str, Optional[str]] = { 12798 "200": "DocumentItem", 12799 "400": None, 12800 "404": None, 12801 "409": None, 12802 "429": None, 12803 } 12804 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12805 response_data.read() 12806 return self.api_client.response_deserialize( 12807 response_data=response_data, 12808 response_types_map=_response_types_map, 12809 ).data 12810 12811 def _update_document_item_using_url_serialize( 12812 self, 12813 board_id, 12814 item_id, 12815 document_update_request, 12816 _request_auth, 12817 _content_type, 12818 _headers, 12819 _host_index, 12820 ) -> RequestSerialized: 12821 12822 _host = None 12823 12824 _collection_formats: Dict[str, str] = {} 12825 12826 _path_params: Dict[str, str] = {} 12827 _query_params: List[Tuple[str, str]] = [] 12828 _header_params: Dict[str, Optional[str]] = _headers or {} 12829 _form_params: List[Tuple[str, str]] = [] 12830 _files: Dict[str, str] = {} 12831 _body_params: Optional[bytes] = None 12832 12833 # process the path parameters 12834 if board_id is not None: 12835 _path_params["board_id"] = board_id 12836 if item_id is not None: 12837 _path_params["item_id"] = item_id 12838 # process the query parameters 12839 # process the header parameters 12840 # process the form parameters 12841 # process the body parameter 12842 if document_update_request is not None: 12843 _body_params = document_update_request 12844 12845 # set the HTTP header `Accept` 12846 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12847 12848 # set the HTTP header `Content-Type` 12849 if _content_type: 12850 _header_params["Content-Type"] = _content_type 12851 else: 12852 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12853 if _default_content_type is not None: 12854 _header_params["Content-Type"] = _default_content_type 12855 12856 # authentication setting 12857 _auth_settings: List[str] = [] 12858 12859 return self.api_client.param_serialize( 12860 method="PATCH", 12861 resource_path="/v2/boards/{board_id}/documents/{item_id}", 12862 path_params=_path_params, 12863 query_params=_query_params, 12864 header_params=_header_params, 12865 body=_body_params, 12866 post_params=_form_params, 12867 files=_files, 12868 auth_settings=_auth_settings, 12869 collection_formats=_collection_formats, 12870 _host=_host, 12871 _request_auth=_request_auth, 12872 ) 12873 12874 @validate_call 12875 def create_embed_item( 12876 self, 12877 board_id: Annotated[ 12878 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12879 ], 12880 embed_create_request: EmbedCreateRequest, 12881 _request_timeout: Union[ 12882 None, 12883 Annotated[StrictFloat, Field(gt=0)], 12884 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12885 ] = None, 12886 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12887 _content_type: Optional[StrictStr] = None, 12888 _headers: Optional[Dict[StrictStr, Any]] = None, 12889 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12890 ) -> EmbedItem: 12891 """Create embed item 12892 12893 Adds an embed item containing external content to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12894 12895 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 12896 :type board_id: str 12897 :param embed_create_request: (required) 12898 :type embed_create_request: EmbedCreateRequest 12899 :param _request_timeout: timeout setting for this request. If one 12900 number provided, it will be total request 12901 timeout. It can also be a pair (tuple) of 12902 (connection, read) timeouts. 12903 :type _request_timeout: int, tuple(int, int), optional 12904 :param _request_auth: set to override the auth_settings for an a single 12905 request; this effectively ignores the 12906 authentication in the spec for a single request. 12907 :type _request_auth: dict, optional 12908 :param _content_type: force content-type for the request. 12909 :type _content_type: str, Optional 12910 :param _headers: set to override the headers for a single 12911 request; this effectively ignores the headers 12912 in the spec for a single request. 12913 :type _headers: dict, optional 12914 :param _host_index: set to override the host_index for a single 12915 request; this effectively ignores the host_index 12916 in the spec for a single request. 12917 :type _host_index: int, optional 12918 :return: Returns the result object. 12919 """ # noqa: E501 12920 12921 _param = self._create_embed_item_serialize( 12922 board_id=board_id, 12923 embed_create_request=embed_create_request, 12924 _request_auth=_request_auth, 12925 _content_type=_content_type, 12926 _headers=_headers, 12927 _host_index=_host_index, 12928 ) 12929 12930 _response_types_map: Dict[str, Optional[str]] = { 12931 "201": "EmbedItem", 12932 "400": None, 12933 "404": None, 12934 "429": None, 12935 } 12936 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12937 response_data.read() 12938 return self.api_client.response_deserialize( 12939 response_data=response_data, 12940 response_types_map=_response_types_map, 12941 ).data 12942 12943 def _create_embed_item_serialize( 12944 self, 12945 board_id, 12946 embed_create_request, 12947 _request_auth, 12948 _content_type, 12949 _headers, 12950 _host_index, 12951 ) -> RequestSerialized: 12952 12953 _host = None 12954 12955 _collection_formats: Dict[str, str] = {} 12956 12957 _path_params: Dict[str, str] = {} 12958 _query_params: List[Tuple[str, str]] = [] 12959 _header_params: Dict[str, Optional[str]] = _headers or {} 12960 _form_params: List[Tuple[str, str]] = [] 12961 _files: Dict[str, str] = {} 12962 _body_params: Optional[bytes] = None 12963 12964 # process the path parameters 12965 if board_id is not None: 12966 _path_params["board_id"] = board_id 12967 # process the query parameters 12968 # process the header parameters 12969 # process the form parameters 12970 # process the body parameter 12971 if embed_create_request is not None: 12972 _body_params = embed_create_request 12973 12974 # set the HTTP header `Accept` 12975 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12976 12977 # set the HTTP header `Content-Type` 12978 if _content_type: 12979 _header_params["Content-Type"] = _content_type 12980 else: 12981 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12982 if _default_content_type is not None: 12983 _header_params["Content-Type"] = _default_content_type 12984 12985 # authentication setting 12986 _auth_settings: List[str] = [] 12987 12988 return self.api_client.param_serialize( 12989 method="POST", 12990 resource_path="/v2/boards/{board_id}/embeds", 12991 path_params=_path_params, 12992 query_params=_query_params, 12993 header_params=_header_params, 12994 body=_body_params, 12995 post_params=_form_params, 12996 files=_files, 12997 auth_settings=_auth_settings, 12998 collection_formats=_collection_formats, 12999 _host=_host, 13000 _request_auth=_request_auth, 13001 ) 13002 13003 @validate_call 13004 def delete_embed_item( 13005 self, 13006 board_id: Annotated[ 13007 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 13008 ], 13009 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 13010 _request_timeout: Union[ 13011 None, 13012 Annotated[StrictFloat, Field(gt=0)], 13013 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13014 ] = None, 13015 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13016 _content_type: Optional[StrictStr] = None, 13017 _headers: Optional[Dict[StrictStr, Any]] = None, 13018 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13019 ) -> object: 13020 """Delete embed item 13021 13022 Deletes an embed item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 13023 13024 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 13025 :type board_id: str 13026 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 13027 :type item_id: str 13028 :param _request_timeout: timeout setting for this request. If one 13029 number provided, it will be total request 13030 timeout. It can also be a pair (tuple) of 13031 (connection, read) timeouts. 13032 :type _request_timeout: int, tuple(int, int), optional 13033 :param _request_auth: set to override the auth_settings for an a single 13034 request; this effectively ignores the 13035 authentication in the spec for a single request. 13036 :type _request_auth: dict, optional 13037 :param _content_type: force content-type for the request. 13038 :type _content_type: str, Optional 13039 :param _headers: set to override the headers for a single 13040 request; this effectively ignores the headers 13041 in the spec for a single request. 13042 :type _headers: dict, optional 13043 :param _host_index: set to override the host_index for a single 13044 request; this effectively ignores the host_index 13045 in the spec for a single request. 13046 :type _host_index: int, optional 13047 :return: Returns the result object. 13048 """ # noqa: E501 13049 13050 _param = self._delete_embed_item_serialize( 13051 board_id=board_id, 13052 item_id=item_id, 13053 _request_auth=_request_auth, 13054 _content_type=_content_type, 13055 _headers=_headers, 13056 _host_index=_host_index, 13057 ) 13058 13059 _response_types_map: Dict[str, Optional[str]] = { 13060 "204": "object", 13061 "400": None, 13062 "404": None, 13063 "429": None, 13064 } 13065 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13066 response_data.read() 13067 return self.api_client.response_deserialize( 13068 response_data=response_data, 13069 response_types_map=_response_types_map, 13070 ).data 13071 13072 def _delete_embed_item_serialize( 13073 self, 13074 board_id, 13075 item_id, 13076 _request_auth, 13077 _content_type, 13078 _headers, 13079 _host_index, 13080 ) -> RequestSerialized: 13081 13082 _host = None 13083 13084 _collection_formats: Dict[str, str] = {} 13085 13086 _path_params: Dict[str, str] = {} 13087 _query_params: List[Tuple[str, str]] = [] 13088 _header_params: Dict[str, Optional[str]] = _headers or {} 13089 _form_params: List[Tuple[str, str]] = [] 13090 _files: Dict[str, str] = {} 13091 _body_params: Optional[bytes] = None 13092 13093 # process the path parameters 13094 if board_id is not None: 13095 _path_params["board_id"] = board_id 13096 if item_id is not None: 13097 _path_params["item_id"] = item_id 13098 # process the query parameters 13099 # process the header parameters 13100 # process the form parameters 13101 # process the body parameter 13102 13103 # set the HTTP header `Accept` 13104 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13105 13106 # authentication setting 13107 _auth_settings: List[str] = [] 13108 13109 return self.api_client.param_serialize( 13110 method="DELETE", 13111 resource_path="/v2/boards/{board_id}/embeds/{item_id}", 13112 path_params=_path_params, 13113 query_params=_query_params, 13114 header_params=_header_params, 13115 body=_body_params, 13116 post_params=_form_params, 13117 files=_files, 13118 auth_settings=_auth_settings, 13119 collection_formats=_collection_formats, 13120 _host=_host, 13121 _request_auth=_request_auth, 13122 ) 13123 13124 @validate_call 13125 def get_embed_item( 13126 self, 13127 board_id: Annotated[ 13128 StrictStr, 13129 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 13130 ], 13131 item_id: Annotated[ 13132 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 13133 ], 13134 _request_timeout: Union[ 13135 None, 13136 Annotated[StrictFloat, Field(gt=0)], 13137 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13138 ] = None, 13139 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13140 _content_type: Optional[StrictStr] = None, 13141 _headers: Optional[Dict[StrictStr, Any]] = None, 13142 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13143 ) -> EmbedItem: 13144 """Get embed item 13145 13146 Retrieves information for a specific embed item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 13147 13148 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 13149 :type board_id: str 13150 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 13151 :type item_id: str 13152 :param _request_timeout: timeout setting for this request. If one 13153 number provided, it will be total request 13154 timeout. It can also be a pair (tuple) of 13155 (connection, read) timeouts. 13156 :type _request_timeout: int, tuple(int, int), optional 13157 :param _request_auth: set to override the auth_settings for an a single 13158 request; this effectively ignores the 13159 authentication in the spec for a single request. 13160 :type _request_auth: dict, optional 13161 :param _content_type: force content-type for the request. 13162 :type _content_type: str, Optional 13163 :param _headers: set to override the headers for a single 13164 request; this effectively ignores the headers 13165 in the spec for a single request. 13166 :type _headers: dict, optional 13167 :param _host_index: set to override the host_index for a single 13168 request; this effectively ignores the host_index 13169 in the spec for a single request. 13170 :type _host_index: int, optional 13171 :return: Returns the result object. 13172 """ # noqa: E501 13173 13174 _param = self._get_embed_item_serialize( 13175 board_id=board_id, 13176 item_id=item_id, 13177 _request_auth=_request_auth, 13178 _content_type=_content_type, 13179 _headers=_headers, 13180 _host_index=_host_index, 13181 ) 13182 13183 _response_types_map: Dict[str, Optional[str]] = { 13184 "200": "EmbedItem", 13185 "400": None, 13186 "404": None, 13187 "429": None, 13188 } 13189 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13190 response_data.read() 13191 return self.api_client.response_deserialize( 13192 response_data=response_data, 13193 response_types_map=_response_types_map, 13194 ).data 13195 13196 def _get_embed_item_serialize( 13197 self, 13198 board_id, 13199 item_id, 13200 _request_auth, 13201 _content_type, 13202 _headers, 13203 _host_index, 13204 ) -> RequestSerialized: 13205 13206 _host = None 13207 13208 _collection_formats: Dict[str, str] = {} 13209 13210 _path_params: Dict[str, str] = {} 13211 _query_params: List[Tuple[str, str]] = [] 13212 _header_params: Dict[str, Optional[str]] = _headers or {} 13213 _form_params: List[Tuple[str, str]] = [] 13214 _files: Dict[str, str] = {} 13215 _body_params: Optional[bytes] = None 13216 13217 # process the path parameters 13218 if board_id is not None: 13219 _path_params["board_id"] = board_id 13220 if item_id is not None: 13221 _path_params["item_id"] = item_id 13222 # process the query parameters 13223 # process the header parameters 13224 # process the form parameters 13225 # process the body parameter 13226 13227 # set the HTTP header `Accept` 13228 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13229 13230 # authentication setting 13231 _auth_settings: List[str] = [] 13232 13233 return self.api_client.param_serialize( 13234 method="GET", 13235 resource_path="/v2/boards/{board_id}/embeds/{item_id}", 13236 path_params=_path_params, 13237 query_params=_query_params, 13238 header_params=_header_params, 13239 body=_body_params, 13240 post_params=_form_params, 13241 files=_files, 13242 auth_settings=_auth_settings, 13243 collection_formats=_collection_formats, 13244 _host=_host, 13245 _request_auth=_request_auth, 13246 ) 13247 13248 @validate_call 13249 def update_embed_item( 13250 self, 13251 board_id: Annotated[ 13252 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 13253 ], 13254 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 13255 embed_update_request: EmbedUpdateRequest, 13256 _request_timeout: Union[ 13257 None, 13258 Annotated[StrictFloat, Field(gt=0)], 13259 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13260 ] = None, 13261 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13262 _content_type: Optional[StrictStr] = None, 13263 _headers: Optional[Dict[StrictStr, Any]] = None, 13264 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13265 ) -> EmbedItem: 13266 """Update embed item 13267 13268 Updates an embed item on a board based on the data properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13269 13270 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 13271 :type board_id: str 13272 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 13273 :type item_id: str 13274 :param embed_update_request: (required) 13275 :type embed_update_request: EmbedUpdateRequest 13276 :param _request_timeout: timeout setting for this request. If one 13277 number provided, it will be total request 13278 timeout. It can also be a pair (tuple) of 13279 (connection, read) timeouts. 13280 :type _request_timeout: int, tuple(int, int), optional 13281 :param _request_auth: set to override the auth_settings for an a single 13282 request; this effectively ignores the 13283 authentication in the spec for a single request. 13284 :type _request_auth: dict, optional 13285 :param _content_type: force content-type for the request. 13286 :type _content_type: str, Optional 13287 :param _headers: set to override the headers for a single 13288 request; this effectively ignores the headers 13289 in the spec for a single request. 13290 :type _headers: dict, optional 13291 :param _host_index: set to override the host_index for a single 13292 request; this effectively ignores the host_index 13293 in the spec for a single request. 13294 :type _host_index: int, optional 13295 :return: Returns the result object. 13296 """ # noqa: E501 13297 13298 _param = self._update_embed_item_serialize( 13299 board_id=board_id, 13300 item_id=item_id, 13301 embed_update_request=embed_update_request, 13302 _request_auth=_request_auth, 13303 _content_type=_content_type, 13304 _headers=_headers, 13305 _host_index=_host_index, 13306 ) 13307 13308 _response_types_map: Dict[str, Optional[str]] = { 13309 "200": "EmbedItem", 13310 "400": None, 13311 "404": None, 13312 "409": None, 13313 "429": None, 13314 } 13315 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13316 response_data.read() 13317 return self.api_client.response_deserialize( 13318 response_data=response_data, 13319 response_types_map=_response_types_map, 13320 ).data 13321 13322 def _update_embed_item_serialize( 13323 self, 13324 board_id, 13325 item_id, 13326 embed_update_request, 13327 _request_auth, 13328 _content_type, 13329 _headers, 13330 _host_index, 13331 ) -> RequestSerialized: 13332 13333 _host = None 13334 13335 _collection_formats: Dict[str, str] = {} 13336 13337 _path_params: Dict[str, str] = {} 13338 _query_params: List[Tuple[str, str]] = [] 13339 _header_params: Dict[str, Optional[str]] = _headers or {} 13340 _form_params: List[Tuple[str, str]] = [] 13341 _files: Dict[str, str] = {} 13342 _body_params: Optional[bytes] = None 13343 13344 # process the path parameters 13345 if board_id is not None: 13346 _path_params["board_id"] = board_id 13347 if item_id is not None: 13348 _path_params["item_id"] = item_id 13349 # process the query parameters 13350 # process the header parameters 13351 # process the form parameters 13352 # process the body parameter 13353 if embed_update_request is not None: 13354 _body_params = embed_update_request 13355 13356 # set the HTTP header `Accept` 13357 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13358 13359 # set the HTTP header `Content-Type` 13360 if _content_type: 13361 _header_params["Content-Type"] = _content_type 13362 else: 13363 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 13364 if _default_content_type is not None: 13365 _header_params["Content-Type"] = _default_content_type 13366 13367 # authentication setting 13368 _auth_settings: List[str] = [] 13369 13370 return self.api_client.param_serialize( 13371 method="PATCH", 13372 resource_path="/v2/boards/{board_id}/embeds/{item_id}", 13373 path_params=_path_params, 13374 query_params=_query_params, 13375 header_params=_header_params, 13376 body=_body_params, 13377 post_params=_form_params, 13378 files=_files, 13379 auth_settings=_auth_settings, 13380 collection_formats=_collection_formats, 13381 _host=_host, 13382 _request_auth=_request_auth, 13383 ) 13384 13385 @validate_call 13386 def create_frame_item( 13387 self, 13388 board_id: Annotated[ 13389 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create a frame.") 13390 ], 13391 frame_create_request: FrameCreateRequest, 13392 _request_timeout: Union[ 13393 None, 13394 Annotated[StrictFloat, Field(gt=0)], 13395 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13396 ] = None, 13397 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13398 _content_type: Optional[StrictStr] = None, 13399 _headers: Optional[Dict[StrictStr, Any]] = None, 13400 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13401 ) -> FrameItem: 13402 """Create frame 13403 13404 Adds a frame to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13405 13406 :param board_id: Unique identifier (ID) of the board where you want to create a frame. (required) 13407 :type board_id: str 13408 :param frame_create_request: (required) 13409 :type frame_create_request: FrameCreateRequest 13410 :param _request_timeout: timeout setting for this request. If one 13411 number provided, it will be total request 13412 timeout. It can also be a pair (tuple) of 13413 (connection, read) timeouts. 13414 :type _request_timeout: int, tuple(int, int), optional 13415 :param _request_auth: set to override the auth_settings for an a single 13416 request; this effectively ignores the 13417 authentication in the spec for a single request. 13418 :type _request_auth: dict, optional 13419 :param _content_type: force content-type for the request. 13420 :type _content_type: str, Optional 13421 :param _headers: set to override the headers for a single 13422 request; this effectively ignores the headers 13423 in the spec for a single request. 13424 :type _headers: dict, optional 13425 :param _host_index: set to override the host_index for a single 13426 request; this effectively ignores the host_index 13427 in the spec for a single request. 13428 :type _host_index: int, optional 13429 :return: Returns the result object. 13430 """ # noqa: E501 13431 13432 _param = self._create_frame_item_serialize( 13433 board_id=board_id, 13434 frame_create_request=frame_create_request, 13435 _request_auth=_request_auth, 13436 _content_type=_content_type, 13437 _headers=_headers, 13438 _host_index=_host_index, 13439 ) 13440 13441 _response_types_map: Dict[str, Optional[str]] = { 13442 "201": "FrameItem", 13443 "400": "CreateFrameItem400Response", 13444 "404": "CreateFrameItem400Response", 13445 "429": "CreateFrameItem400Response", 13446 } 13447 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13448 response_data.read() 13449 return self.api_client.response_deserialize( 13450 response_data=response_data, 13451 response_types_map=_response_types_map, 13452 ).data 13453 13454 def _create_frame_item_serialize( 13455 self, 13456 board_id, 13457 frame_create_request, 13458 _request_auth, 13459 _content_type, 13460 _headers, 13461 _host_index, 13462 ) -> RequestSerialized: 13463 13464 _host = None 13465 13466 _collection_formats: Dict[str, str] = {} 13467 13468 _path_params: Dict[str, str] = {} 13469 _query_params: List[Tuple[str, str]] = [] 13470 _header_params: Dict[str, Optional[str]] = _headers or {} 13471 _form_params: List[Tuple[str, str]] = [] 13472 _files: Dict[str, str] = {} 13473 _body_params: Optional[bytes] = None 13474 13475 # process the path parameters 13476 if board_id is not None: 13477 _path_params["board_id"] = board_id 13478 # process the query parameters 13479 # process the header parameters 13480 # process the form parameters 13481 # process the body parameter 13482 if frame_create_request is not None: 13483 _body_params = frame_create_request 13484 13485 # set the HTTP header `Accept` 13486 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13487 13488 # set the HTTP header `Content-Type` 13489 if _content_type: 13490 _header_params["Content-Type"] = _content_type 13491 else: 13492 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 13493 if _default_content_type is not None: 13494 _header_params["Content-Type"] = _default_content_type 13495 13496 # authentication setting 13497 _auth_settings: List[str] = [] 13498 13499 return self.api_client.param_serialize( 13500 method="POST", 13501 resource_path="/v2/boards/{board_id}/frames", 13502 path_params=_path_params, 13503 query_params=_query_params, 13504 header_params=_header_params, 13505 body=_body_params, 13506 post_params=_form_params, 13507 files=_files, 13508 auth_settings=_auth_settings, 13509 collection_formats=_collection_formats, 13510 _host=_host, 13511 _request_auth=_request_auth, 13512 ) 13513 13514 @validate_call 13515 def delete_frame_item( 13516 self, 13517 board_id: Annotated[ 13518 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the frame.") 13519 ], 13520 item_id: Annotated[ 13521 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to delete.") 13522 ], 13523 _request_timeout: Union[ 13524 None, 13525 Annotated[StrictFloat, Field(gt=0)], 13526 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13527 ] = None, 13528 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13529 _content_type: Optional[StrictStr] = None, 13530 _headers: Optional[Dict[StrictStr, Any]] = None, 13531 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13532 ) -> object: 13533 """Delete frame 13534 13535 Deletes a frame from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 13536 13537 :param board_id: Unique identifier (ID) of the board from which you want to delete the frame. (required) 13538 :type board_id: str 13539 :param item_id: Unique identifier (ID) of the frame that you want to delete. (required) 13540 :type item_id: str 13541 :param _request_timeout: timeout setting for this request. If one 13542 number provided, it will be total request 13543 timeout. It can also be a pair (tuple) of 13544 (connection, read) timeouts. 13545 :type _request_timeout: int, tuple(int, int), optional 13546 :param _request_auth: set to override the auth_settings for an a single 13547 request; this effectively ignores the 13548 authentication in the spec for a single request. 13549 :type _request_auth: dict, optional 13550 :param _content_type: force content-type for the request. 13551 :type _content_type: str, Optional 13552 :param _headers: set to override the headers for a single 13553 request; this effectively ignores the headers 13554 in the spec for a single request. 13555 :type _headers: dict, optional 13556 :param _host_index: set to override the host_index for a single 13557 request; this effectively ignores the host_index 13558 in the spec for a single request. 13559 :type _host_index: int, optional 13560 :return: Returns the result object. 13561 """ # noqa: E501 13562 13563 _param = self._delete_frame_item_serialize( 13564 board_id=board_id, 13565 item_id=item_id, 13566 _request_auth=_request_auth, 13567 _content_type=_content_type, 13568 _headers=_headers, 13569 _host_index=_host_index, 13570 ) 13571 13572 _response_types_map: Dict[str, Optional[str]] = { 13573 "204": "object", 13574 "400": "CreateFrameItem400Response", 13575 "404": "CreateFrameItem400Response", 13576 "429": "CreateFrameItem400Response", 13577 } 13578 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13579 response_data.read() 13580 return self.api_client.response_deserialize( 13581 response_data=response_data, 13582 response_types_map=_response_types_map, 13583 ).data 13584 13585 def _delete_frame_item_serialize( 13586 self, 13587 board_id, 13588 item_id, 13589 _request_auth, 13590 _content_type, 13591 _headers, 13592 _host_index, 13593 ) -> RequestSerialized: 13594 13595 _host = None 13596 13597 _collection_formats: Dict[str, str] = {} 13598 13599 _path_params: Dict[str, str] = {} 13600 _query_params: List[Tuple[str, str]] = [] 13601 _header_params: Dict[str, Optional[str]] = _headers or {} 13602 _form_params: List[Tuple[str, str]] = [] 13603 _files: Dict[str, str] = {} 13604 _body_params: Optional[bytes] = None 13605 13606 # process the path parameters 13607 if board_id is not None: 13608 _path_params["board_id"] = board_id 13609 if item_id is not None: 13610 _path_params["item_id"] = item_id 13611 # process the query parameters 13612 # process the header parameters 13613 # process the form parameters 13614 # process the body parameter 13615 13616 # set the HTTP header `Accept` 13617 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13618 13619 # authentication setting 13620 _auth_settings: List[str] = [] 13621 13622 return self.api_client.param_serialize( 13623 method="DELETE", 13624 resource_path="/v2/boards/{board_id}/frames/{item_id}", 13625 path_params=_path_params, 13626 query_params=_query_params, 13627 header_params=_header_params, 13628 body=_body_params, 13629 post_params=_form_params, 13630 files=_files, 13631 auth_settings=_auth_settings, 13632 collection_formats=_collection_formats, 13633 _host=_host, 13634 _request_auth=_request_auth, 13635 ) 13636 13637 @validate_call 13638 def get_frame_item( 13639 self, 13640 board_id: Annotated[ 13641 StrictStr, 13642 Field(description="Unique identifier (ID) of the board that contains the frame that you want to retrieve"), 13643 ], 13644 item_id: Annotated[ 13645 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to retrieve.") 13646 ], 13647 _request_timeout: Union[ 13648 None, 13649 Annotated[StrictFloat, Field(gt=0)], 13650 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13651 ] = None, 13652 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13653 _content_type: Optional[StrictStr] = None, 13654 _headers: Optional[Dict[StrictStr, Any]] = None, 13655 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13656 ) -> FrameItem: 13657 """Get frame 13658 13659 Retrieves information for a specific frame on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 13660 13661 :param board_id: Unique identifier (ID) of the board that contains the frame that you want to retrieve (required) 13662 :type board_id: str 13663 :param item_id: Unique identifier (ID) of the frame that you want to retrieve. (required) 13664 :type item_id: str 13665 :param _request_timeout: timeout setting for this request. If one 13666 number provided, it will be total request 13667 timeout. It can also be a pair (tuple) of 13668 (connection, read) timeouts. 13669 :type _request_timeout: int, tuple(int, int), optional 13670 :param _request_auth: set to override the auth_settings for an a single 13671 request; this effectively ignores the 13672 authentication in the spec for a single request. 13673 :type _request_auth: dict, optional 13674 :param _content_type: force content-type for the request. 13675 :type _content_type: str, Optional 13676 :param _headers: set to override the headers for a single 13677 request; this effectively ignores the headers 13678 in the spec for a single request. 13679 :type _headers: dict, optional 13680 :param _host_index: set to override the host_index for a single 13681 request; this effectively ignores the host_index 13682 in the spec for a single request. 13683 :type _host_index: int, optional 13684 :return: Returns the result object. 13685 """ # noqa: E501 13686 13687 _param = self._get_frame_item_serialize( 13688 board_id=board_id, 13689 item_id=item_id, 13690 _request_auth=_request_auth, 13691 _content_type=_content_type, 13692 _headers=_headers, 13693 _host_index=_host_index, 13694 ) 13695 13696 _response_types_map: Dict[str, Optional[str]] = { 13697 "200": "FrameItem", 13698 "400": "CreateFrameItem400Response", 13699 "404": "CreateFrameItem400Response", 13700 "429": "CreateFrameItem400Response", 13701 } 13702 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13703 response_data.read() 13704 return self.api_client.response_deserialize( 13705 response_data=response_data, 13706 response_types_map=_response_types_map, 13707 ).data 13708 13709 def _get_frame_item_serialize( 13710 self, 13711 board_id, 13712 item_id, 13713 _request_auth, 13714 _content_type, 13715 _headers, 13716 _host_index, 13717 ) -> RequestSerialized: 13718 13719 _host = None 13720 13721 _collection_formats: Dict[str, str] = {} 13722 13723 _path_params: Dict[str, str] = {} 13724 _query_params: List[Tuple[str, str]] = [] 13725 _header_params: Dict[str, Optional[str]] = _headers or {} 13726 _form_params: List[Tuple[str, str]] = [] 13727 _files: Dict[str, str] = {} 13728 _body_params: Optional[bytes] = None 13729 13730 # process the path parameters 13731 if board_id is not None: 13732 _path_params["board_id"] = board_id 13733 if item_id is not None: 13734 _path_params["item_id"] = item_id 13735 # process the query parameters 13736 # process the header parameters 13737 # process the form parameters 13738 # process the body parameter 13739 13740 # set the HTTP header `Accept` 13741 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13742 13743 # authentication setting 13744 _auth_settings: List[str] = [] 13745 13746 return self.api_client.param_serialize( 13747 method="GET", 13748 resource_path="/v2/boards/{board_id}/frames/{item_id}", 13749 path_params=_path_params, 13750 query_params=_query_params, 13751 header_params=_header_params, 13752 body=_body_params, 13753 post_params=_form_params, 13754 files=_files, 13755 auth_settings=_auth_settings, 13756 collection_formats=_collection_formats, 13757 _host=_host, 13758 _request_auth=_request_auth, 13759 ) 13760 13761 @validate_call 13762 def update_frame_item( 13763 self, 13764 board_id: Annotated[ 13765 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the frame.") 13766 ], 13767 item_id: Annotated[ 13768 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to update.") 13769 ], 13770 frame_update_request: FrameUpdateRequest, 13771 _request_timeout: Union[ 13772 None, 13773 Annotated[StrictFloat, Field(gt=0)], 13774 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13775 ] = None, 13776 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13777 _content_type: Optional[StrictStr] = None, 13778 _headers: Optional[Dict[StrictStr, Any]] = None, 13779 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13780 ) -> FrameItem: 13781 """Update frame 13782 13783 Updates a frame on a board based on the data, style, or geometry properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13784 13785 :param board_id: Unique identifier (ID) of the board where you want to update the frame. (required) 13786 :type board_id: str 13787 :param item_id: Unique identifier (ID) of the frame that you want to update. (required) 13788 :type item_id: str 13789 :param frame_update_request: (required) 13790 :type frame_update_request: FrameUpdateRequest 13791 :param _request_timeout: timeout setting for this request. If one 13792 number provided, it will be total request 13793 timeout. It can also be a pair (tuple) of 13794 (connection, read) timeouts. 13795 :type _request_timeout: int, tuple(int, int), optional 13796 :param _request_auth: set to override the auth_settings for an a single 13797 request; this effectively ignores the 13798 authentication in the spec for a single request. 13799 :type _request_auth: dict, optional 13800 :param _content_type: force content-type for the request. 13801 :type _content_type: str, Optional 13802 :param _headers: set to override the headers for a single 13803 request; this effectively ignores the headers 13804 in the spec for a single request. 13805 :type _headers: dict, optional 13806 :param _host_index: set to override the host_index for a single 13807 request; this effectively ignores the host_index 13808 in the spec for a single request. 13809 :type _host_index: int, optional 13810 :return: Returns the result object. 13811 """ # noqa: E501 13812 13813 _param = self._update_frame_item_serialize( 13814 board_id=board_id, 13815 item_id=item_id, 13816 frame_update_request=frame_update_request, 13817 _request_auth=_request_auth, 13818 _content_type=_content_type, 13819 _headers=_headers, 13820 _host_index=_host_index, 13821 ) 13822 13823 _response_types_map: Dict[str, Optional[str]] = { 13824 "200": "FrameItem", 13825 "400": "CreateFrameItem400Response", 13826 "404": "CreateFrameItem400Response", 13827 "409": "UpdateFrameItem409Response", 13828 "429": "CreateFrameItem400Response", 13829 } 13830 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13831 response_data.read() 13832 return self.api_client.response_deserialize( 13833 response_data=response_data, 13834 response_types_map=_response_types_map, 13835 ).data 13836 13837 def _update_frame_item_serialize( 13838 self, 13839 board_id, 13840 item_id, 13841 frame_update_request, 13842 _request_auth, 13843 _content_type, 13844 _headers, 13845 _host_index, 13846 ) -> RequestSerialized: 13847 13848 _host = None 13849 13850 _collection_formats: Dict[str, str] = {} 13851 13852 _path_params: Dict[str, str] = {} 13853 _query_params: List[Tuple[str, str]] = [] 13854 _header_params: Dict[str, Optional[str]] = _headers or {} 13855 _form_params: List[Tuple[str, str]] = [] 13856 _files: Dict[str, str] = {} 13857 _body_params: Optional[bytes] = None 13858 13859 # process the path parameters 13860 if board_id is not None: 13861 _path_params["board_id"] = board_id 13862 if item_id is not None: 13863 _path_params["item_id"] = item_id 13864 # process the query parameters 13865 # process the header parameters 13866 # process the form parameters 13867 # process the body parameter 13868 if frame_update_request is not None: 13869 _body_params = frame_update_request 13870 13871 # set the HTTP header `Accept` 13872 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13873 13874 # set the HTTP header `Content-Type` 13875 if _content_type: 13876 _header_params["Content-Type"] = _content_type 13877 else: 13878 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 13879 if _default_content_type is not None: 13880 _header_params["Content-Type"] = _default_content_type 13881 13882 # authentication setting 13883 _auth_settings: List[str] = [] 13884 13885 return self.api_client.param_serialize( 13886 method="PATCH", 13887 resource_path="/v2/boards/{board_id}/frames/{item_id}", 13888 path_params=_path_params, 13889 query_params=_query_params, 13890 header_params=_header_params, 13891 body=_body_params, 13892 post_params=_form_params, 13893 files=_files, 13894 auth_settings=_auth_settings, 13895 collection_formats=_collection_formats, 13896 _host=_host, 13897 _request_auth=_request_auth, 13898 ) 13899 13900 @validate_call 13901 def create_group( 13902 self, 13903 board_id: StrictStr, 13904 group: Group, 13905 _request_timeout: Union[ 13906 None, 13907 Annotated[StrictFloat, Field(gt=0)], 13908 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13909 ] = None, 13910 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13911 _content_type: Optional[StrictStr] = None, 13912 _headers: Optional[Dict[StrictStr, Any]] = None, 13913 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13914 ) -> GroupResponseShort: 13915 """Create group 13916 13917 Creates a group of items on a board. The group is created with the items that are passed in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13918 13919 :param board_id: (required) 13920 :type board_id: str 13921 :param group: (required) 13922 :type group: Group 13923 :param _request_timeout: timeout setting for this request. If one 13924 number provided, it will be total request 13925 timeout. It can also be a pair (tuple) of 13926 (connection, read) timeouts. 13927 :type _request_timeout: int, tuple(int, int), optional 13928 :param _request_auth: set to override the auth_settings for an a single 13929 request; this effectively ignores the 13930 authentication in the spec for a single request. 13931 :type _request_auth: dict, optional 13932 :param _content_type: force content-type for the request. 13933 :type _content_type: str, Optional 13934 :param _headers: set to override the headers for a single 13935 request; this effectively ignores the headers 13936 in the spec for a single request. 13937 :type _headers: dict, optional 13938 :param _host_index: set to override the host_index for a single 13939 request; this effectively ignores the host_index 13940 in the spec for a single request. 13941 :type _host_index: int, optional 13942 :return: Returns the result object. 13943 """ # noqa: E501 13944 13945 _param = self._create_group_serialize( 13946 board_id=board_id, 13947 group=group, 13948 _request_auth=_request_auth, 13949 _content_type=_content_type, 13950 _headers=_headers, 13951 _host_index=_host_index, 13952 ) 13953 13954 _response_types_map: Dict[str, Optional[str]] = { 13955 "201": "GroupResponseShort", 13956 "400": "GetAllGroups400Response", 13957 "404": "GetAllGroups404Response", 13958 "429": "GetAllGroups429Response", 13959 } 13960 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13961 response_data.read() 13962 return self.api_client.response_deserialize( 13963 response_data=response_data, 13964 response_types_map=_response_types_map, 13965 ).data 13966 13967 def _create_group_serialize( 13968 self, 13969 board_id, 13970 group, 13971 _request_auth, 13972 _content_type, 13973 _headers, 13974 _host_index, 13975 ) -> RequestSerialized: 13976 13977 _host = None 13978 13979 _collection_formats: Dict[str, str] = {} 13980 13981 _path_params: Dict[str, str] = {} 13982 _query_params: List[Tuple[str, str]] = [] 13983 _header_params: Dict[str, Optional[str]] = _headers or {} 13984 _form_params: List[Tuple[str, str]] = [] 13985 _files: Dict[str, str] = {} 13986 _body_params: Optional[bytes] = None 13987 13988 # process the path parameters 13989 if board_id is not None: 13990 _path_params["board_id"] = board_id 13991 # process the query parameters 13992 # process the header parameters 13993 # process the form parameters 13994 # process the body parameter 13995 if group is not None: 13996 _body_params = group 13997 13998 # set the HTTP header `Accept` 13999 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14000 14001 # set the HTTP header `Content-Type` 14002 if _content_type: 14003 _header_params["Content-Type"] = _content_type 14004 else: 14005 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 14006 if _default_content_type is not None: 14007 _header_params["Content-Type"] = _default_content_type 14008 14009 # authentication setting 14010 _auth_settings: List[str] = [] 14011 14012 return self.api_client.param_serialize( 14013 method="POST", 14014 resource_path="/v2/boards/{board_id}/groups", 14015 path_params=_path_params, 14016 query_params=_query_params, 14017 header_params=_header_params, 14018 body=_body_params, 14019 post_params=_form_params, 14020 files=_files, 14021 auth_settings=_auth_settings, 14022 collection_formats=_collection_formats, 14023 _host=_host, 14024 _request_auth=_request_auth, 14025 ) 14026 14027 @validate_call 14028 def delete_group( 14029 self, 14030 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14031 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14032 delete_items: Annotated[ 14033 StrictBool, 14034 Field( 14035 description="Indicates whether the items should be removed. Set to `true` to delete items in the group." 14036 ), 14037 ], 14038 _request_timeout: Union[ 14039 None, 14040 Annotated[StrictFloat, Field(gt=0)], 14041 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14042 ] = None, 14043 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14044 _content_type: Optional[StrictStr] = None, 14045 _headers: Optional[Dict[StrictStr, Any]] = None, 14046 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14047 ) -> object: 14048 """Deletes the group 14049 14050 Deletes a group from a board. All the items in the groups are deleted along with the group.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 14051 14052 :param board_id: Unique identifier (ID) of the board. (required) 14053 :type board_id: str 14054 :param group_id: Unique identifier (ID) of the group. (required) 14055 :type group_id: str 14056 :param delete_items: Indicates whether the items should be removed. Set to `true` to delete items in the group. (required) 14057 :type delete_items: bool 14058 :param _request_timeout: timeout setting for this request. If one 14059 number provided, it will be total request 14060 timeout. It can also be a pair (tuple) of 14061 (connection, read) timeouts. 14062 :type _request_timeout: int, tuple(int, int), optional 14063 :param _request_auth: set to override the auth_settings for an a single 14064 request; this effectively ignores the 14065 authentication in the spec for a single request. 14066 :type _request_auth: dict, optional 14067 :param _content_type: force content-type for the request. 14068 :type _content_type: str, Optional 14069 :param _headers: set to override the headers for a single 14070 request; this effectively ignores the headers 14071 in the spec for a single request. 14072 :type _headers: dict, optional 14073 :param _host_index: set to override the host_index for a single 14074 request; this effectively ignores the host_index 14075 in the spec for a single request. 14076 :type _host_index: int, optional 14077 :return: Returns the result object. 14078 """ # noqa: E501 14079 14080 _param = self._delete_group_serialize( 14081 board_id=board_id, 14082 group_id=group_id, 14083 delete_items=delete_items, 14084 _request_auth=_request_auth, 14085 _content_type=_content_type, 14086 _headers=_headers, 14087 _host_index=_host_index, 14088 ) 14089 14090 _response_types_map: Dict[str, Optional[str]] = { 14091 "204": "object", 14092 "400": "UnGroup400Response", 14093 "404": "UnGroup404Response", 14094 "429": "UnGroup429Response", 14095 } 14096 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14097 response_data.read() 14098 return self.api_client.response_deserialize( 14099 response_data=response_data, 14100 response_types_map=_response_types_map, 14101 ).data 14102 14103 def _delete_group_serialize( 14104 self, 14105 board_id, 14106 group_id, 14107 delete_items, 14108 _request_auth, 14109 _content_type, 14110 _headers, 14111 _host_index, 14112 ) -> RequestSerialized: 14113 14114 _host = None 14115 14116 _collection_formats: Dict[str, str] = {} 14117 14118 _path_params: Dict[str, str] = {} 14119 _query_params: List[Tuple[str, str]] = [] 14120 _header_params: Dict[str, Optional[str]] = _headers or {} 14121 _form_params: List[Tuple[str, str]] = [] 14122 _files: Dict[str, str] = {} 14123 _body_params: Optional[bytes] = None 14124 14125 # process the path parameters 14126 if board_id is not None: 14127 _path_params["board_id"] = board_id 14128 if group_id is not None: 14129 _path_params["group_id"] = group_id 14130 # process the query parameters 14131 if delete_items is not None: 14132 14133 _query_params.append(("delete_items", delete_items)) 14134 14135 # process the header parameters 14136 # process the form parameters 14137 # process the body parameter 14138 14139 # set the HTTP header `Accept` 14140 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14141 14142 # authentication setting 14143 _auth_settings: List[str] = [] 14144 14145 return self.api_client.param_serialize( 14146 method="DELETE", 14147 resource_path="/v2/boards/{board_id}/groups/{group_id}?", 14148 path_params=_path_params, 14149 query_params=_query_params, 14150 header_params=_header_params, 14151 body=_body_params, 14152 post_params=_form_params, 14153 files=_files, 14154 auth_settings=_auth_settings, 14155 collection_formats=_collection_formats, 14156 _host=_host, 14157 _request_auth=_request_auth, 14158 ) 14159 14160 @validate_call 14161 def get_all_groups( 14162 self, 14163 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14164 limit: Annotated[ 14165 Optional[Annotated[int, Field(le=50, strict=True, ge=10)]], 14166 Field(description="The maximum number of items to return at one time, default is 10, maximum is 50."), 14167 ] = None, 14168 cursor: Optional[StrictStr] = None, 14169 _request_timeout: Union[ 14170 None, 14171 Annotated[StrictFloat, Field(gt=0)], 14172 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14173 ] = None, 14174 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14175 _content_type: Optional[StrictStr] = None, 14176 _headers: Optional[Dict[StrictStr, Any]] = None, 14177 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14178 ) -> GetAllGroups200Response: 14179 """Get all groups on a board 14180 14181 Returns all the groups and the items of the respective groups within a specific board.<br/> This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request.<br/> For example, if you set the `limit` query parameter to `10` and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14182 14183 :param board_id: Unique identifier (ID) of the board. (required) 14184 :type board_id: str 14185 :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. 14186 :type limit: int 14187 :param cursor: 14188 :type cursor: str 14189 :param _request_timeout: timeout setting for this request. If one 14190 number provided, it will be total request 14191 timeout. It can also be a pair (tuple) of 14192 (connection, read) timeouts. 14193 :type _request_timeout: int, tuple(int, int), optional 14194 :param _request_auth: set to override the auth_settings for an a single 14195 request; this effectively ignores the 14196 authentication in the spec for a single request. 14197 :type _request_auth: dict, optional 14198 :param _content_type: force content-type for the request. 14199 :type _content_type: str, Optional 14200 :param _headers: set to override the headers for a single 14201 request; this effectively ignores the headers 14202 in the spec for a single request. 14203 :type _headers: dict, optional 14204 :param _host_index: set to override the host_index for a single 14205 request; this effectively ignores the host_index 14206 in the spec for a single request. 14207 :type _host_index: int, optional 14208 :return: Returns the result object. 14209 """ # noqa: E501 14210 14211 _param = self._get_all_groups_serialize( 14212 board_id=board_id, 14213 limit=limit, 14214 cursor=cursor, 14215 _request_auth=_request_auth, 14216 _content_type=_content_type, 14217 _headers=_headers, 14218 _host_index=_host_index, 14219 ) 14220 14221 _response_types_map: Dict[str, Optional[str]] = { 14222 "200": "GetAllGroups200Response", 14223 "400": "GetAllGroups400Response", 14224 "404": "GetAllGroups404Response", 14225 "429": "GetAllGroups429Response", 14226 } 14227 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14228 response_data.read() 14229 return self.api_client.response_deserialize( 14230 response_data=response_data, 14231 response_types_map=_response_types_map, 14232 ).data 14233 14234 def _get_all_groups_serialize( 14235 self, 14236 board_id, 14237 limit, 14238 cursor, 14239 _request_auth, 14240 _content_type, 14241 _headers, 14242 _host_index, 14243 ) -> RequestSerialized: 14244 14245 _host = None 14246 14247 _collection_formats: Dict[str, str] = {} 14248 14249 _path_params: Dict[str, str] = {} 14250 _query_params: List[Tuple[str, str]] = [] 14251 _header_params: Dict[str, Optional[str]] = _headers or {} 14252 _form_params: List[Tuple[str, str]] = [] 14253 _files: Dict[str, str] = {} 14254 _body_params: Optional[bytes] = None 14255 14256 # process the path parameters 14257 if board_id is not None: 14258 _path_params["board_id"] = board_id 14259 # process the query parameters 14260 if limit is not None: 14261 14262 _query_params.append(("limit", limit)) 14263 14264 if cursor is not None: 14265 14266 _query_params.append(("cursor", cursor)) 14267 14268 # process the header parameters 14269 # process the form parameters 14270 # process the body parameter 14271 14272 # set the HTTP header `Accept` 14273 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14274 14275 # authentication setting 14276 _auth_settings: List[str] = [] 14277 14278 return self.api_client.param_serialize( 14279 method="GET", 14280 resource_path="/v2/boards/{board_id}/groups", 14281 path_params=_path_params, 14282 query_params=_query_params, 14283 header_params=_header_params, 14284 body=_body_params, 14285 post_params=_form_params, 14286 files=_files, 14287 auth_settings=_auth_settings, 14288 collection_formats=_collection_formats, 14289 _host=_host, 14290 _request_auth=_request_auth, 14291 ) 14292 14293 @validate_call 14294 def get_group_by_id( 14295 self, 14296 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14297 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14298 _request_timeout: Union[ 14299 None, 14300 Annotated[StrictFloat, Field(gt=0)], 14301 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14302 ] = None, 14303 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14304 _content_type: Optional[StrictStr] = None, 14305 _headers: Optional[Dict[StrictStr, Any]] = None, 14306 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14307 ) -> GroupResponseShort: 14308 """Get a group by its ID 14309 14310 Returns a list of items in a specific group. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item ID 14311 14312 :param board_id: Unique identifier (ID) of the board. (required) 14313 :type board_id: str 14314 :param group_id: Unique identifier (ID) of the group. (required) 14315 :type group_id: str 14316 :param _request_timeout: timeout setting for this request. If one 14317 number provided, it will be total request 14318 timeout. It can also be a pair (tuple) of 14319 (connection, read) timeouts. 14320 :type _request_timeout: int, tuple(int, int), optional 14321 :param _request_auth: set to override the auth_settings for an a single 14322 request; this effectively ignores the 14323 authentication in the spec for a single request. 14324 :type _request_auth: dict, optional 14325 :param _content_type: force content-type for the request. 14326 :type _content_type: str, Optional 14327 :param _headers: set to override the headers for a single 14328 request; this effectively ignores the headers 14329 in the spec for a single request. 14330 :type _headers: dict, optional 14331 :param _host_index: set to override the host_index for a single 14332 request; this effectively ignores the host_index 14333 in the spec for a single request. 14334 :type _host_index: int, optional 14335 :return: Returns the result object. 14336 """ # noqa: E501 14337 14338 _param = self._get_group_by_id_serialize( 14339 board_id=board_id, 14340 group_id=group_id, 14341 _request_auth=_request_auth, 14342 _content_type=_content_type, 14343 _headers=_headers, 14344 _host_index=_host_index, 14345 ) 14346 14347 _response_types_map: Dict[str, Optional[str]] = { 14348 "200": "GroupResponseShort", 14349 "400": "GetAllGroups400Response", 14350 "404": "GetAllGroups404Response", 14351 "429": "GetAllGroups429Response", 14352 } 14353 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14354 response_data.read() 14355 return self.api_client.response_deserialize( 14356 response_data=response_data, 14357 response_types_map=_response_types_map, 14358 ).data 14359 14360 def _get_group_by_id_serialize( 14361 self, 14362 board_id, 14363 group_id, 14364 _request_auth, 14365 _content_type, 14366 _headers, 14367 _host_index, 14368 ) -> RequestSerialized: 14369 14370 _host = None 14371 14372 _collection_formats: Dict[str, str] = {} 14373 14374 _path_params: Dict[str, str] = {} 14375 _query_params: List[Tuple[str, str]] = [] 14376 _header_params: Dict[str, Optional[str]] = _headers or {} 14377 _form_params: List[Tuple[str, str]] = [] 14378 _files: Dict[str, str] = {} 14379 _body_params: Optional[bytes] = None 14380 14381 # process the path parameters 14382 if board_id is not None: 14383 _path_params["board_id"] = board_id 14384 if group_id is not None: 14385 _path_params["group_id"] = group_id 14386 # process the query parameters 14387 # process the header parameters 14388 # process the form parameters 14389 # process the body parameter 14390 14391 # set the HTTP header `Accept` 14392 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14393 14394 # authentication setting 14395 _auth_settings: List[str] = [] 14396 14397 return self.api_client.param_serialize( 14398 method="GET", 14399 resource_path="/v2/boards/{board_id}/groups/{group_id}", 14400 path_params=_path_params, 14401 query_params=_query_params, 14402 header_params=_header_params, 14403 body=_body_params, 14404 post_params=_form_params, 14405 files=_files, 14406 auth_settings=_auth_settings, 14407 collection_formats=_collection_formats, 14408 _host=_host, 14409 _request_auth=_request_auth, 14410 ) 14411 14412 @validate_call 14413 def get_items_by_group_id( 14414 self, 14415 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14416 group_item_id: Annotated[StrictStr, Field(description="The ID of the group item to retrieve.")], 14417 limit: Annotated[ 14418 Optional[Annotated[int, Field(le=50, strict=True, ge=10)]], 14419 Field(description="The maximum number of items to return at one time, default is 10, maximum is 50."), 14420 ] = None, 14421 cursor: Optional[StrictStr] = None, 14422 _request_timeout: Union[ 14423 None, 14424 Annotated[StrictFloat, Field(gt=0)], 14425 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14426 ] = None, 14427 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14428 _content_type: Optional[StrictStr] = None, 14429 _headers: Optional[Dict[StrictStr, Any]] = None, 14430 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14431 ) -> GetItemsByGroupId200Response: 14432 """Get items of a group by ID 14433 14434 Returns a list of items that are a part of any group, within a specific board.<br/> This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request.<br/> For example, if you set the `limit` query parameter to `10` and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items (not 10 groups) in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14435 14436 :param board_id: Unique identifier (ID) of the board. (required) 14437 :type board_id: str 14438 :param group_item_id: The ID of the group item to retrieve. (required) 14439 :type group_item_id: str 14440 :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. 14441 :type limit: int 14442 :param cursor: 14443 :type cursor: str 14444 :param _request_timeout: timeout setting for this request. If one 14445 number provided, it will be total request 14446 timeout. It can also be a pair (tuple) of 14447 (connection, read) timeouts. 14448 :type _request_timeout: int, tuple(int, int), optional 14449 :param _request_auth: set to override the auth_settings for an a single 14450 request; this effectively ignores the 14451 authentication in the spec for a single request. 14452 :type _request_auth: dict, optional 14453 :param _content_type: force content-type for the request. 14454 :type _content_type: str, Optional 14455 :param _headers: set to override the headers for a single 14456 request; this effectively ignores the headers 14457 in the spec for a single request. 14458 :type _headers: dict, optional 14459 :param _host_index: set to override the host_index for a single 14460 request; this effectively ignores the host_index 14461 in the spec for a single request. 14462 :type _host_index: int, optional 14463 :return: Returns the result object. 14464 """ # noqa: E501 14465 14466 _param = self._get_items_by_group_id_serialize( 14467 board_id=board_id, 14468 group_item_id=group_item_id, 14469 limit=limit, 14470 cursor=cursor, 14471 _request_auth=_request_auth, 14472 _content_type=_content_type, 14473 _headers=_headers, 14474 _host_index=_host_index, 14475 ) 14476 14477 _response_types_map: Dict[str, Optional[str]] = { 14478 "200": "GetItemsByGroupId200Response", 14479 "400": "GetAllGroups400Response", 14480 "404": "GetAllGroups404Response", 14481 "429": "GetAllGroups429Response", 14482 } 14483 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14484 response_data.read() 14485 return self.api_client.response_deserialize( 14486 response_data=response_data, 14487 response_types_map=_response_types_map, 14488 ).data 14489 14490 def _get_items_by_group_id_serialize( 14491 self, 14492 board_id, 14493 group_item_id, 14494 limit, 14495 cursor, 14496 _request_auth, 14497 _content_type, 14498 _headers, 14499 _host_index, 14500 ) -> RequestSerialized: 14501 14502 _host = None 14503 14504 _collection_formats: Dict[str, str] = {} 14505 14506 _path_params: Dict[str, str] = {} 14507 _query_params: List[Tuple[str, str]] = [] 14508 _header_params: Dict[str, Optional[str]] = _headers or {} 14509 _form_params: List[Tuple[str, str]] = [] 14510 _files: Dict[str, str] = {} 14511 _body_params: Optional[bytes] = None 14512 14513 # process the path parameters 14514 if board_id is not None: 14515 _path_params["board_id"] = board_id 14516 # process the query parameters 14517 if limit is not None: 14518 14519 _query_params.append(("limit", limit)) 14520 14521 if cursor is not None: 14522 14523 _query_params.append(("cursor", cursor)) 14524 14525 if group_item_id is not None: 14526 14527 _query_params.append(("group_item_id", group_item_id)) 14528 14529 # process the header parameters 14530 # process the form parameters 14531 # process the body parameter 14532 14533 # set the HTTP header `Accept` 14534 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14535 14536 # authentication setting 14537 _auth_settings: List[str] = [] 14538 14539 return self.api_client.param_serialize( 14540 method="GET", 14541 resource_path="/v2/boards/{board_id}/groups/items", 14542 path_params=_path_params, 14543 query_params=_query_params, 14544 header_params=_header_params, 14545 body=_body_params, 14546 post_params=_form_params, 14547 files=_files, 14548 auth_settings=_auth_settings, 14549 collection_formats=_collection_formats, 14550 _host=_host, 14551 _request_auth=_request_auth, 14552 ) 14553 14554 @validate_call 14555 def un_group( 14556 self, 14557 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14558 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14559 delete_items: Annotated[ 14560 Optional[StrictBool], Field(description="Indicates whether the items should be removed. By default, false.") 14561 ] = None, 14562 _request_timeout: Union[ 14563 None, 14564 Annotated[StrictFloat, Field(gt=0)], 14565 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14566 ] = None, 14567 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14568 _content_type: Optional[StrictStr] = None, 14569 _headers: Optional[Dict[StrictStr, Any]] = None, 14570 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14571 ) -> object: 14572 """Ungroup items 14573 14574 Ungroups items from a group.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 14575 14576 :param board_id: Unique identifier (ID) of the board. (required) 14577 :type board_id: str 14578 :param group_id: Unique identifier (ID) of the group. (required) 14579 :type group_id: str 14580 :param delete_items: Indicates whether the items should be removed. By default, false. 14581 :type delete_items: bool 14582 :param _request_timeout: timeout setting for this request. If one 14583 number provided, it will be total request 14584 timeout. It can also be a pair (tuple) of 14585 (connection, read) timeouts. 14586 :type _request_timeout: int, tuple(int, int), optional 14587 :param _request_auth: set to override the auth_settings for an a single 14588 request; this effectively ignores the 14589 authentication in the spec for a single request. 14590 :type _request_auth: dict, optional 14591 :param _content_type: force content-type for the request. 14592 :type _content_type: str, Optional 14593 :param _headers: set to override the headers for a single 14594 request; this effectively ignores the headers 14595 in the spec for a single request. 14596 :type _headers: dict, optional 14597 :param _host_index: set to override the host_index for a single 14598 request; this effectively ignores the host_index 14599 in the spec for a single request. 14600 :type _host_index: int, optional 14601 :return: Returns the result object. 14602 """ # noqa: E501 14603 14604 _param = self._un_group_serialize( 14605 board_id=board_id, 14606 group_id=group_id, 14607 delete_items=delete_items, 14608 _request_auth=_request_auth, 14609 _content_type=_content_type, 14610 _headers=_headers, 14611 _host_index=_host_index, 14612 ) 14613 14614 _response_types_map: Dict[str, Optional[str]] = { 14615 "204": "object", 14616 "400": "UnGroup400Response", 14617 "404": "UnGroup404Response", 14618 "429": "UnGroup429Response", 14619 } 14620 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14621 response_data.read() 14622 return self.api_client.response_deserialize( 14623 response_data=response_data, 14624 response_types_map=_response_types_map, 14625 ).data 14626 14627 def _un_group_serialize( 14628 self, 14629 board_id, 14630 group_id, 14631 delete_items, 14632 _request_auth, 14633 _content_type, 14634 _headers, 14635 _host_index, 14636 ) -> RequestSerialized: 14637 14638 _host = None 14639 14640 _collection_formats: Dict[str, str] = {} 14641 14642 _path_params: Dict[str, str] = {} 14643 _query_params: List[Tuple[str, str]] = [] 14644 _header_params: Dict[str, Optional[str]] = _headers or {} 14645 _form_params: List[Tuple[str, str]] = [] 14646 _files: Dict[str, str] = {} 14647 _body_params: Optional[bytes] = None 14648 14649 # process the path parameters 14650 if board_id is not None: 14651 _path_params["board_id"] = board_id 14652 if group_id is not None: 14653 _path_params["group_id"] = group_id 14654 # process the query parameters 14655 if delete_items is not None: 14656 14657 _query_params.append(("delete_items", delete_items)) 14658 14659 # process the header parameters 14660 # process the form parameters 14661 # process the body parameter 14662 14663 # set the HTTP header `Accept` 14664 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14665 14666 # authentication setting 14667 _auth_settings: List[str] = [] 14668 14669 return self.api_client.param_serialize( 14670 method="DELETE", 14671 resource_path="/v2/boards/{board_id}/groups/{group_id}", 14672 path_params=_path_params, 14673 query_params=_query_params, 14674 header_params=_header_params, 14675 body=_body_params, 14676 post_params=_form_params, 14677 files=_files, 14678 auth_settings=_auth_settings, 14679 collection_formats=_collection_formats, 14680 _host=_host, 14681 _request_auth=_request_auth, 14682 ) 14683 14684 @validate_call 14685 def update_group( 14686 self, 14687 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14688 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14689 group: Group, 14690 _request_timeout: Union[ 14691 None, 14692 Annotated[StrictFloat, Field(gt=0)], 14693 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14694 ] = None, 14695 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14696 _content_type: Optional[StrictStr] = None, 14697 _headers: Optional[Dict[StrictStr, Any]] = None, 14698 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14699 ) -> GroupResponseShort: 14700 """Updates a group with new items 14701 14702 This endpoint updates an existing group by replacing it entirely with a new group. When the update is made, the original group is completely replaced, and a new group ID is assigned. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14703 14704 :param board_id: Unique identifier (ID) of the board. (required) 14705 :type board_id: str 14706 :param group_id: Unique identifier (ID) of the group. (required) 14707 :type group_id: str 14708 :param group: (required) 14709 :type group: Group 14710 :param _request_timeout: timeout setting for this request. If one 14711 number provided, it will be total request 14712 timeout. It can also be a pair (tuple) of 14713 (connection, read) timeouts. 14714 :type _request_timeout: int, tuple(int, int), optional 14715 :param _request_auth: set to override the auth_settings for an a single 14716 request; this effectively ignores the 14717 authentication in the spec for a single request. 14718 :type _request_auth: dict, optional 14719 :param _content_type: force content-type for the request. 14720 :type _content_type: str, Optional 14721 :param _headers: set to override the headers for a single 14722 request; this effectively ignores the headers 14723 in the spec for a single request. 14724 :type _headers: dict, optional 14725 :param _host_index: set to override the host_index for a single 14726 request; this effectively ignores the host_index 14727 in the spec for a single request. 14728 :type _host_index: int, optional 14729 :return: Returns the result object. 14730 """ # noqa: E501 14731 14732 _param = self._update_group_serialize( 14733 board_id=board_id, 14734 group_id=group_id, 14735 group=group, 14736 _request_auth=_request_auth, 14737 _content_type=_content_type, 14738 _headers=_headers, 14739 _host_index=_host_index, 14740 ) 14741 14742 _response_types_map: Dict[str, Optional[str]] = { 14743 "200": "GroupResponseShort", 14744 "400": "GetAllGroups400Response", 14745 "404": "GetAllGroups404Response", 14746 "429": "GetAllGroups429Response", 14747 } 14748 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14749 response_data.read() 14750 return self.api_client.response_deserialize( 14751 response_data=response_data, 14752 response_types_map=_response_types_map, 14753 ).data 14754 14755 def _update_group_serialize( 14756 self, 14757 board_id, 14758 group_id, 14759 group, 14760 _request_auth, 14761 _content_type, 14762 _headers, 14763 _host_index, 14764 ) -> RequestSerialized: 14765 14766 _host = None 14767 14768 _collection_formats: Dict[str, str] = {} 14769 14770 _path_params: Dict[str, str] = {} 14771 _query_params: List[Tuple[str, str]] = [] 14772 _header_params: Dict[str, Optional[str]] = _headers or {} 14773 _form_params: List[Tuple[str, str]] = [] 14774 _files: Dict[str, str] = {} 14775 _body_params: Optional[bytes] = None 14776 14777 # process the path parameters 14778 if board_id is not None: 14779 _path_params["board_id"] = board_id 14780 if group_id is not None: 14781 _path_params["group_id"] = group_id 14782 # process the query parameters 14783 # process the header parameters 14784 # process the form parameters 14785 # process the body parameter 14786 if group is not None: 14787 _body_params = group 14788 14789 # set the HTTP header `Accept` 14790 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14791 14792 # set the HTTP header `Content-Type` 14793 if _content_type: 14794 _header_params["Content-Type"] = _content_type 14795 else: 14796 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 14797 if _default_content_type is not None: 14798 _header_params["Content-Type"] = _default_content_type 14799 14800 # authentication setting 14801 _auth_settings: List[str] = [] 14802 14803 return self.api_client.param_serialize( 14804 method="PUT", 14805 resource_path="/v2/boards/{board_id}/groups/{group_id}", 14806 path_params=_path_params, 14807 query_params=_query_params, 14808 header_params=_header_params, 14809 body=_body_params, 14810 post_params=_form_params, 14811 files=_files, 14812 auth_settings=_auth_settings, 14813 collection_formats=_collection_formats, 14814 _host=_host, 14815 _request_auth=_request_auth, 14816 ) 14817 14818 @validate_call 14819 def create_image_item_using_local_file( 14820 self, 14821 board_id_platform_file_upload: Annotated[ 14822 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 14823 ], 14824 resource: Annotated[ 14825 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 14826 ], 14827 data: Optional[UploadFileFromDeviceData] = None, 14828 _request_timeout: Union[ 14829 None, 14830 Annotated[StrictFloat, Field(gt=0)], 14831 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14832 ] = None, 14833 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14834 _content_type: Optional[StrictStr] = None, 14835 _headers: Optional[Dict[StrictStr, Any]] = None, 14836 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14837 ) -> ImageItem: 14838 """Create image item using file from device 14839 14840 Adds an image item to a board by specifying a file from device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14841 14842 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) 14843 :type board_id_platform_file_upload: str 14844 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 14845 :type resource: bytearray 14846 :param data: 14847 :type data: UploadFileFromDeviceData 14848 :param _request_timeout: timeout setting for this request. If one 14849 number provided, it will be total request 14850 timeout. It can also be a pair (tuple) of 14851 (connection, read) timeouts. 14852 :type _request_timeout: int, tuple(int, int), optional 14853 :param _request_auth: set to override the auth_settings for an a single 14854 request; this effectively ignores the 14855 authentication in the spec for a single request. 14856 :type _request_auth: dict, optional 14857 :param _content_type: force content-type for the request. 14858 :type _content_type: str, Optional 14859 :param _headers: set to override the headers for a single 14860 request; this effectively ignores the headers 14861 in the spec for a single request. 14862 :type _headers: dict, optional 14863 :param _host_index: set to override the host_index for a single 14864 request; this effectively ignores the host_index 14865 in the spec for a single request. 14866 :type _host_index: int, optional 14867 :return: Returns the result object. 14868 """ # noqa: E501 14869 14870 _param = self._create_image_item_using_local_file_serialize( 14871 board_id_platform_file_upload=board_id_platform_file_upload, 14872 resource=resource, 14873 data=data, 14874 _request_auth=_request_auth, 14875 _content_type=_content_type, 14876 _headers=_headers, 14877 _host_index=_host_index, 14878 ) 14879 14880 _response_types_map: Dict[str, Optional[str]] = { 14881 "201": "ImageItem", 14882 } 14883 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14884 response_data.read() 14885 return self.api_client.response_deserialize( 14886 response_data=response_data, 14887 response_types_map=_response_types_map, 14888 ).data 14889 14890 def _create_image_item_using_local_file_serialize( 14891 self, 14892 board_id_platform_file_upload, 14893 resource, 14894 data, 14895 _request_auth, 14896 _content_type, 14897 _headers, 14898 _host_index, 14899 ) -> RequestSerialized: 14900 14901 _host = None 14902 14903 _collection_formats: Dict[str, str] = {} 14904 14905 _path_params: Dict[str, str] = {} 14906 _query_params: List[Tuple[str, str]] = [] 14907 _header_params: Dict[str, Optional[str]] = _headers or {} 14908 _form_params: List[Tuple[str, str]] = [] 14909 _files: Dict[str, str] = {} 14910 _body_params: Optional[bytes] = None 14911 14912 # process the path parameters 14913 if board_id_platform_file_upload is not None: 14914 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 14915 # process the query parameters 14916 # process the header parameters 14917 # process the form parameters 14918 if data is not None: 14919 _form_params.append(("data", data)) 14920 if resource is not None: 14921 _files["resource"] = resource 14922 # process the body parameter 14923 14924 # set the HTTP header `Accept` 14925 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14926 14927 # set the HTTP header `Content-Type` 14928 if _content_type: 14929 _header_params["Content-Type"] = _content_type 14930 else: 14931 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 14932 if _default_content_type is not None: 14933 _header_params["Content-Type"] = _default_content_type 14934 14935 # authentication setting 14936 _auth_settings: List[str] = [] 14937 14938 return self.api_client.param_serialize( 14939 method="POST", 14940 resource_path="/v2/boards/{board_id_PlatformFileUpload}/images", 14941 path_params=_path_params, 14942 query_params=_query_params, 14943 header_params=_header_params, 14944 body=_body_params, 14945 post_params=_form_params, 14946 files=_files, 14947 auth_settings=_auth_settings, 14948 collection_formats=_collection_formats, 14949 _host=_host, 14950 _request_auth=_request_auth, 14951 ) 14952 14953 @validate_call 14954 def create_image_item_using_url( 14955 self, 14956 board_id: Annotated[ 14957 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 14958 ], 14959 image_create_request: ImageCreateRequest, 14960 _request_timeout: Union[ 14961 None, 14962 Annotated[StrictFloat, Field(gt=0)], 14963 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14964 ] = None, 14965 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14966 _content_type: Optional[StrictStr] = None, 14967 _headers: Optional[Dict[StrictStr, Any]] = None, 14968 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14969 ) -> ImageItem: 14970 """Create image item using URL 14971 14972 Adds an image item to a board by specifying an image URL.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14973 14974 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 14975 :type board_id: str 14976 :param image_create_request: (required) 14977 :type image_create_request: ImageCreateRequest 14978 :param _request_timeout: timeout setting for this request. If one 14979 number provided, it will be total request 14980 timeout. It can also be a pair (tuple) of 14981 (connection, read) timeouts. 14982 :type _request_timeout: int, tuple(int, int), optional 14983 :param _request_auth: set to override the auth_settings for an a single 14984 request; this effectively ignores the 14985 authentication in the spec for a single request. 14986 :type _request_auth: dict, optional 14987 :param _content_type: force content-type for the request. 14988 :type _content_type: str, Optional 14989 :param _headers: set to override the headers for a single 14990 request; this effectively ignores the headers 14991 in the spec for a single request. 14992 :type _headers: dict, optional 14993 :param _host_index: set to override the host_index for a single 14994 request; this effectively ignores the host_index 14995 in the spec for a single request. 14996 :type _host_index: int, optional 14997 :return: Returns the result object. 14998 """ # noqa: E501 14999 15000 _param = self._create_image_item_using_url_serialize( 15001 board_id=board_id, 15002 image_create_request=image_create_request, 15003 _request_auth=_request_auth, 15004 _content_type=_content_type, 15005 _headers=_headers, 15006 _host_index=_host_index, 15007 ) 15008 15009 _response_types_map: Dict[str, Optional[str]] = { 15010 "201": "ImageItem", 15011 "400": None, 15012 "404": None, 15013 "429": None, 15014 } 15015 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15016 response_data.read() 15017 return self.api_client.response_deserialize( 15018 response_data=response_data, 15019 response_types_map=_response_types_map, 15020 ).data 15021 15022 def _create_image_item_using_url_serialize( 15023 self, 15024 board_id, 15025 image_create_request, 15026 _request_auth, 15027 _content_type, 15028 _headers, 15029 _host_index, 15030 ) -> RequestSerialized: 15031 15032 _host = None 15033 15034 _collection_formats: Dict[str, str] = {} 15035 15036 _path_params: Dict[str, str] = {} 15037 _query_params: List[Tuple[str, str]] = [] 15038 _header_params: Dict[str, Optional[str]] = _headers or {} 15039 _form_params: List[Tuple[str, str]] = [] 15040 _files: Dict[str, str] = {} 15041 _body_params: Optional[bytes] = None 15042 15043 # process the path parameters 15044 if board_id is not None: 15045 _path_params["board_id"] = board_id 15046 # process the query parameters 15047 # process the header parameters 15048 # process the form parameters 15049 # process the body parameter 15050 if image_create_request is not None: 15051 _body_params = image_create_request 15052 15053 # set the HTTP header `Accept` 15054 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15055 15056 # set the HTTP header `Content-Type` 15057 if _content_type: 15058 _header_params["Content-Type"] = _content_type 15059 else: 15060 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 15061 if _default_content_type is not None: 15062 _header_params["Content-Type"] = _default_content_type 15063 15064 # authentication setting 15065 _auth_settings: List[str] = [] 15066 15067 return self.api_client.param_serialize( 15068 method="POST", 15069 resource_path="/v2/boards/{board_id}/images", 15070 path_params=_path_params, 15071 query_params=_query_params, 15072 header_params=_header_params, 15073 body=_body_params, 15074 post_params=_form_params, 15075 files=_files, 15076 auth_settings=_auth_settings, 15077 collection_formats=_collection_formats, 15078 _host=_host, 15079 _request_auth=_request_auth, 15080 ) 15081 15082 @validate_call 15083 def delete_image_item( 15084 self, 15085 board_id: Annotated[ 15086 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15087 ], 15088 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15089 _request_timeout: Union[ 15090 None, 15091 Annotated[StrictFloat, Field(gt=0)], 15092 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15093 ] = None, 15094 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15095 _content_type: Optional[StrictStr] = None, 15096 _headers: Optional[Dict[StrictStr, Any]] = None, 15097 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15098 ) -> object: 15099 """Delete image item 15100 15101 Deletes an image item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15102 15103 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15104 :type board_id: str 15105 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15106 :type item_id: str 15107 :param _request_timeout: timeout setting for this request. If one 15108 number provided, it will be total request 15109 timeout. It can also be a pair (tuple) of 15110 (connection, read) timeouts. 15111 :type _request_timeout: int, tuple(int, int), optional 15112 :param _request_auth: set to override the auth_settings for an a single 15113 request; this effectively ignores the 15114 authentication in the spec for a single request. 15115 :type _request_auth: dict, optional 15116 :param _content_type: force content-type for the request. 15117 :type _content_type: str, Optional 15118 :param _headers: set to override the headers for a single 15119 request; this effectively ignores the headers 15120 in the spec for a single request. 15121 :type _headers: dict, optional 15122 :param _host_index: set to override the host_index for a single 15123 request; this effectively ignores the host_index 15124 in the spec for a single request. 15125 :type _host_index: int, optional 15126 :return: Returns the result object. 15127 """ # noqa: E501 15128 15129 _param = self._delete_image_item_serialize( 15130 board_id=board_id, 15131 item_id=item_id, 15132 _request_auth=_request_auth, 15133 _content_type=_content_type, 15134 _headers=_headers, 15135 _host_index=_host_index, 15136 ) 15137 15138 _response_types_map: Dict[str, Optional[str]] = { 15139 "204": "object", 15140 "400": None, 15141 "404": None, 15142 "429": None, 15143 } 15144 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15145 response_data.read() 15146 return self.api_client.response_deserialize( 15147 response_data=response_data, 15148 response_types_map=_response_types_map, 15149 ).data 15150 15151 def _delete_image_item_serialize( 15152 self, 15153 board_id, 15154 item_id, 15155 _request_auth, 15156 _content_type, 15157 _headers, 15158 _host_index, 15159 ) -> RequestSerialized: 15160 15161 _host = None 15162 15163 _collection_formats: Dict[str, str] = {} 15164 15165 _path_params: Dict[str, str] = {} 15166 _query_params: List[Tuple[str, str]] = [] 15167 _header_params: Dict[str, Optional[str]] = _headers or {} 15168 _form_params: List[Tuple[str, str]] = [] 15169 _files: Dict[str, str] = {} 15170 _body_params: Optional[bytes] = None 15171 15172 # process the path parameters 15173 if board_id is not None: 15174 _path_params["board_id"] = board_id 15175 if item_id is not None: 15176 _path_params["item_id"] = item_id 15177 # process the query parameters 15178 # process the header parameters 15179 # process the form parameters 15180 # process the body parameter 15181 15182 # set the HTTP header `Accept` 15183 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15184 15185 # authentication setting 15186 _auth_settings: List[str] = [] 15187 15188 return self.api_client.param_serialize( 15189 method="DELETE", 15190 resource_path="/v2/boards/{board_id}/images/{item_id}", 15191 path_params=_path_params, 15192 query_params=_query_params, 15193 header_params=_header_params, 15194 body=_body_params, 15195 post_params=_form_params, 15196 files=_files, 15197 auth_settings=_auth_settings, 15198 collection_formats=_collection_formats, 15199 _host=_host, 15200 _request_auth=_request_auth, 15201 ) 15202 15203 @validate_call 15204 def get_image_item( 15205 self, 15206 board_id: Annotated[ 15207 StrictStr, 15208 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 15209 ], 15210 item_id: Annotated[ 15211 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 15212 ], 15213 _request_timeout: Union[ 15214 None, 15215 Annotated[StrictFloat, Field(gt=0)], 15216 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15217 ] = None, 15218 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15219 _content_type: Optional[StrictStr] = None, 15220 _headers: Optional[Dict[StrictStr, Any]] = None, 15221 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15222 ) -> ImageItem: 15223 """Get image item 15224 15225 Retrieves information for a specific image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 15226 15227 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 15228 :type board_id: str 15229 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 15230 :type item_id: str 15231 :param _request_timeout: timeout setting for this request. If one 15232 number provided, it will be total request 15233 timeout. It can also be a pair (tuple) of 15234 (connection, read) timeouts. 15235 :type _request_timeout: int, tuple(int, int), optional 15236 :param _request_auth: set to override the auth_settings for an a single 15237 request; this effectively ignores the 15238 authentication in the spec for a single request. 15239 :type _request_auth: dict, optional 15240 :param _content_type: force content-type for the request. 15241 :type _content_type: str, Optional 15242 :param _headers: set to override the headers for a single 15243 request; this effectively ignores the headers 15244 in the spec for a single request. 15245 :type _headers: dict, optional 15246 :param _host_index: set to override the host_index for a single 15247 request; this effectively ignores the host_index 15248 in the spec for a single request. 15249 :type _host_index: int, optional 15250 :return: Returns the result object. 15251 """ # noqa: E501 15252 15253 _param = self._get_image_item_serialize( 15254 board_id=board_id, 15255 item_id=item_id, 15256 _request_auth=_request_auth, 15257 _content_type=_content_type, 15258 _headers=_headers, 15259 _host_index=_host_index, 15260 ) 15261 15262 _response_types_map: Dict[str, Optional[str]] = { 15263 "200": "ImageItem", 15264 "400": None, 15265 "404": None, 15266 "429": None, 15267 } 15268 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15269 response_data.read() 15270 return self.api_client.response_deserialize( 15271 response_data=response_data, 15272 response_types_map=_response_types_map, 15273 ).data 15274 15275 def _get_image_item_serialize( 15276 self, 15277 board_id, 15278 item_id, 15279 _request_auth, 15280 _content_type, 15281 _headers, 15282 _host_index, 15283 ) -> RequestSerialized: 15284 15285 _host = None 15286 15287 _collection_formats: Dict[str, str] = {} 15288 15289 _path_params: Dict[str, str] = {} 15290 _query_params: List[Tuple[str, str]] = [] 15291 _header_params: Dict[str, Optional[str]] = _headers or {} 15292 _form_params: List[Tuple[str, str]] = [] 15293 _files: Dict[str, str] = {} 15294 _body_params: Optional[bytes] = None 15295 15296 # process the path parameters 15297 if board_id is not None: 15298 _path_params["board_id"] = board_id 15299 if item_id is not None: 15300 _path_params["item_id"] = item_id 15301 # process the query parameters 15302 # process the header parameters 15303 # process the form parameters 15304 # process the body parameter 15305 15306 # set the HTTP header `Accept` 15307 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15308 15309 # authentication setting 15310 _auth_settings: List[str] = [] 15311 15312 return self.api_client.param_serialize( 15313 method="GET", 15314 resource_path="/v2/boards/{board_id}/images/{item_id}", 15315 path_params=_path_params, 15316 query_params=_query_params, 15317 header_params=_header_params, 15318 body=_body_params, 15319 post_params=_form_params, 15320 files=_files, 15321 auth_settings=_auth_settings, 15322 collection_formats=_collection_formats, 15323 _host=_host, 15324 _request_auth=_request_auth, 15325 ) 15326 15327 @validate_call 15328 def update_image_item_using_file_from_device( 15329 self, 15330 board_id_platform_file_upload: Annotated[ 15331 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 15332 ], 15333 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 15334 resource: Annotated[ 15335 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 15336 ], 15337 data: Optional[UploadFileFromDeviceData] = None, 15338 _request_timeout: Union[ 15339 None, 15340 Annotated[StrictFloat, Field(gt=0)], 15341 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15342 ] = None, 15343 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15344 _content_type: Optional[StrictStr] = None, 15345 _headers: Optional[Dict[StrictStr, Any]] = None, 15346 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15347 ) -> ImageItem: 15348 """Update image item using file from device 15349 15350 Updates an image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15351 15352 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) 15353 :type board_id_platform_file_upload: str 15354 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 15355 :type item_id: str 15356 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 15357 :type resource: bytearray 15358 :param data: 15359 :type data: UploadFileFromDeviceData 15360 :param _request_timeout: timeout setting for this request. If one 15361 number provided, it will be total request 15362 timeout. It can also be a pair (tuple) of 15363 (connection, read) timeouts. 15364 :type _request_timeout: int, tuple(int, int), optional 15365 :param _request_auth: set to override the auth_settings for an a single 15366 request; this effectively ignores the 15367 authentication in the spec for a single request. 15368 :type _request_auth: dict, optional 15369 :param _content_type: force content-type for the request. 15370 :type _content_type: str, Optional 15371 :param _headers: set to override the headers for a single 15372 request; this effectively ignores the headers 15373 in the spec for a single request. 15374 :type _headers: dict, optional 15375 :param _host_index: set to override the host_index for a single 15376 request; this effectively ignores the host_index 15377 in the spec for a single request. 15378 :type _host_index: int, optional 15379 :return: Returns the result object. 15380 """ # noqa: E501 15381 15382 _param = self._update_image_item_using_file_from_device_serialize( 15383 board_id_platform_file_upload=board_id_platform_file_upload, 15384 item_id=item_id, 15385 resource=resource, 15386 data=data, 15387 _request_auth=_request_auth, 15388 _content_type=_content_type, 15389 _headers=_headers, 15390 _host_index=_host_index, 15391 ) 15392 15393 _response_types_map: Dict[str, Optional[str]] = { 15394 "200": "ImageItem", 15395 } 15396 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15397 response_data.read() 15398 return self.api_client.response_deserialize( 15399 response_data=response_data, 15400 response_types_map=_response_types_map, 15401 ).data 15402 15403 def _update_image_item_using_file_from_device_serialize( 15404 self, 15405 board_id_platform_file_upload, 15406 item_id, 15407 resource, 15408 data, 15409 _request_auth, 15410 _content_type, 15411 _headers, 15412 _host_index, 15413 ) -> RequestSerialized: 15414 15415 _host = None 15416 15417 _collection_formats: Dict[str, str] = {} 15418 15419 _path_params: Dict[str, str] = {} 15420 _query_params: List[Tuple[str, str]] = [] 15421 _header_params: Dict[str, Optional[str]] = _headers or {} 15422 _form_params: List[Tuple[str, str]] = [] 15423 _files: Dict[str, str] = {} 15424 _body_params: Optional[bytes] = None 15425 15426 # process the path parameters 15427 if board_id_platform_file_upload is not None: 15428 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 15429 if item_id is not None: 15430 _path_params["item_id"] = item_id 15431 # process the query parameters 15432 # process the header parameters 15433 # process the form parameters 15434 if data is not None: 15435 _form_params.append(("data", data)) 15436 if resource is not None: 15437 _files["resource"] = resource 15438 # process the body parameter 15439 15440 # set the HTTP header `Accept` 15441 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15442 15443 # set the HTTP header `Content-Type` 15444 if _content_type: 15445 _header_params["Content-Type"] = _content_type 15446 else: 15447 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 15448 if _default_content_type is not None: 15449 _header_params["Content-Type"] = _default_content_type 15450 15451 # authentication setting 15452 _auth_settings: List[str] = [] 15453 15454 return self.api_client.param_serialize( 15455 method="PATCH", 15456 resource_path="/v2/boards/{board_id_PlatformFileUpload}/images/{item_id}", 15457 path_params=_path_params, 15458 query_params=_query_params, 15459 header_params=_header_params, 15460 body=_body_params, 15461 post_params=_form_params, 15462 files=_files, 15463 auth_settings=_auth_settings, 15464 collection_formats=_collection_formats, 15465 _host=_host, 15466 _request_auth=_request_auth, 15467 ) 15468 15469 @validate_call 15470 def update_image_item_using_url( 15471 self, 15472 board_id: Annotated[ 15473 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 15474 ], 15475 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 15476 image_update_request: ImageUpdateRequest, 15477 _request_timeout: Union[ 15478 None, 15479 Annotated[StrictFloat, Field(gt=0)], 15480 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15481 ] = None, 15482 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15483 _content_type: Optional[StrictStr] = None, 15484 _headers: Optional[Dict[StrictStr, Any]] = None, 15485 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15486 ) -> ImageItem: 15487 """Update image item using URL 15488 15489 Updates an image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15490 15491 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 15492 :type board_id: str 15493 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 15494 :type item_id: str 15495 :param image_update_request: (required) 15496 :type image_update_request: ImageUpdateRequest 15497 :param _request_timeout: timeout setting for this request. If one 15498 number provided, it will be total request 15499 timeout. It can also be a pair (tuple) of 15500 (connection, read) timeouts. 15501 :type _request_timeout: int, tuple(int, int), optional 15502 :param _request_auth: set to override the auth_settings for an a single 15503 request; this effectively ignores the 15504 authentication in the spec for a single request. 15505 :type _request_auth: dict, optional 15506 :param _content_type: force content-type for the request. 15507 :type _content_type: str, Optional 15508 :param _headers: set to override the headers for a single 15509 request; this effectively ignores the headers 15510 in the spec for a single request. 15511 :type _headers: dict, optional 15512 :param _host_index: set to override the host_index for a single 15513 request; this effectively ignores the host_index 15514 in the spec for a single request. 15515 :type _host_index: int, optional 15516 :return: Returns the result object. 15517 """ # noqa: E501 15518 15519 _param = self._update_image_item_using_url_serialize( 15520 board_id=board_id, 15521 item_id=item_id, 15522 image_update_request=image_update_request, 15523 _request_auth=_request_auth, 15524 _content_type=_content_type, 15525 _headers=_headers, 15526 _host_index=_host_index, 15527 ) 15528 15529 _response_types_map: Dict[str, Optional[str]] = { 15530 "200": "ImageItem", 15531 "400": None, 15532 "404": None, 15533 "409": None, 15534 "429": None, 15535 } 15536 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15537 response_data.read() 15538 return self.api_client.response_deserialize( 15539 response_data=response_data, 15540 response_types_map=_response_types_map, 15541 ).data 15542 15543 def _update_image_item_using_url_serialize( 15544 self, 15545 board_id, 15546 item_id, 15547 image_update_request, 15548 _request_auth, 15549 _content_type, 15550 _headers, 15551 _host_index, 15552 ) -> RequestSerialized: 15553 15554 _host = None 15555 15556 _collection_formats: Dict[str, str] = {} 15557 15558 _path_params: Dict[str, str] = {} 15559 _query_params: List[Tuple[str, str]] = [] 15560 _header_params: Dict[str, Optional[str]] = _headers or {} 15561 _form_params: List[Tuple[str, str]] = [] 15562 _files: Dict[str, str] = {} 15563 _body_params: Optional[bytes] = None 15564 15565 # process the path parameters 15566 if board_id is not None: 15567 _path_params["board_id"] = board_id 15568 if item_id is not None: 15569 _path_params["item_id"] = item_id 15570 # process the query parameters 15571 # process the header parameters 15572 # process the form parameters 15573 # process the body parameter 15574 if image_update_request is not None: 15575 _body_params = image_update_request 15576 15577 # set the HTTP header `Accept` 15578 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15579 15580 # set the HTTP header `Content-Type` 15581 if _content_type: 15582 _header_params["Content-Type"] = _content_type 15583 else: 15584 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 15585 if _default_content_type is not None: 15586 _header_params["Content-Type"] = _default_content_type 15587 15588 # authentication setting 15589 _auth_settings: List[str] = [] 15590 15591 return self.api_client.param_serialize( 15592 method="PATCH", 15593 resource_path="/v2/boards/{board_id}/images/{item_id}", 15594 path_params=_path_params, 15595 query_params=_query_params, 15596 header_params=_header_params, 15597 body=_body_params, 15598 post_params=_form_params, 15599 files=_files, 15600 auth_settings=_auth_settings, 15601 collection_formats=_collection_formats, 15602 _host=_host, 15603 _request_auth=_request_auth, 15604 ) 15605 15606 @validate_call 15607 def delete_item( 15608 self, 15609 board_id: Annotated[ 15610 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15611 ], 15612 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15613 _request_timeout: Union[ 15614 None, 15615 Annotated[StrictFloat, Field(gt=0)], 15616 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15617 ] = None, 15618 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15619 _content_type: Optional[StrictStr] = None, 15620 _headers: Optional[Dict[StrictStr, Any]] = None, 15621 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15622 ) -> object: 15623 """Delete item 15624 15625 Deletes an item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15626 15627 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15628 :type board_id: str 15629 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15630 :type item_id: str 15631 :param _request_timeout: timeout setting for this request. If one 15632 number provided, it will be total request 15633 timeout. It can also be a pair (tuple) of 15634 (connection, read) timeouts. 15635 :type _request_timeout: int, tuple(int, int), optional 15636 :param _request_auth: set to override the auth_settings for an a single 15637 request; this effectively ignores the 15638 authentication in the spec for a single request. 15639 :type _request_auth: dict, optional 15640 :param _content_type: force content-type for the request. 15641 :type _content_type: str, Optional 15642 :param _headers: set to override the headers for a single 15643 request; this effectively ignores the headers 15644 in the spec for a single request. 15645 :type _headers: dict, optional 15646 :param _host_index: set to override the host_index for a single 15647 request; this effectively ignores the host_index 15648 in the spec for a single request. 15649 :type _host_index: int, optional 15650 :return: Returns the result object. 15651 """ # noqa: E501 15652 15653 _param = self._delete_item_serialize( 15654 board_id=board_id, 15655 item_id=item_id, 15656 _request_auth=_request_auth, 15657 _content_type=_content_type, 15658 _headers=_headers, 15659 _host_index=_host_index, 15660 ) 15661 15662 _response_types_map: Dict[str, Optional[str]] = { 15663 "204": "object", 15664 "400": None, 15665 "404": None, 15666 "429": None, 15667 } 15668 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15669 response_data.read() 15670 return self.api_client.response_deserialize( 15671 response_data=response_data, 15672 response_types_map=_response_types_map, 15673 ).data 15674 15675 def _delete_item_serialize( 15676 self, 15677 board_id, 15678 item_id, 15679 _request_auth, 15680 _content_type, 15681 _headers, 15682 _host_index, 15683 ) -> RequestSerialized: 15684 15685 _host = None 15686 15687 _collection_formats: Dict[str, str] = {} 15688 15689 _path_params: Dict[str, str] = {} 15690 _query_params: List[Tuple[str, str]] = [] 15691 _header_params: Dict[str, Optional[str]] = _headers or {} 15692 _form_params: List[Tuple[str, str]] = [] 15693 _files: Dict[str, str] = {} 15694 _body_params: Optional[bytes] = None 15695 15696 # process the path parameters 15697 if board_id is not None: 15698 _path_params["board_id"] = board_id 15699 if item_id is not None: 15700 _path_params["item_id"] = item_id 15701 # process the query parameters 15702 # process the header parameters 15703 # process the form parameters 15704 # process the body parameter 15705 15706 # set the HTTP header `Accept` 15707 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15708 15709 # authentication setting 15710 _auth_settings: List[str] = [] 15711 15712 return self.api_client.param_serialize( 15713 method="DELETE", 15714 resource_path="/v2/boards/{board_id}/items/{item_id}", 15715 path_params=_path_params, 15716 query_params=_query_params, 15717 header_params=_header_params, 15718 body=_body_params, 15719 post_params=_form_params, 15720 files=_files, 15721 auth_settings=_auth_settings, 15722 collection_formats=_collection_formats, 15723 _host=_host, 15724 _request_auth=_request_auth, 15725 ) 15726 15727 @validate_call 15728 def delete_item_experimental( 15729 self, 15730 board_id: Annotated[ 15731 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15732 ], 15733 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15734 _request_timeout: Union[ 15735 None, 15736 Annotated[StrictFloat, Field(gt=0)], 15737 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15738 ] = None, 15739 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15740 _content_type: Optional[StrictStr] = None, 15741 _headers: Optional[Dict[StrictStr, Any]] = None, 15742 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15743 ) -> object: 15744 """Delete item 15745 15746 Deletes an item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15747 15748 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15749 :type board_id: str 15750 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15751 :type item_id: str 15752 :param _request_timeout: timeout setting for this request. If one 15753 number provided, it will be total request 15754 timeout. It can also be a pair (tuple) of 15755 (connection, read) timeouts. 15756 :type _request_timeout: int, tuple(int, int), optional 15757 :param _request_auth: set to override the auth_settings for an a single 15758 request; this effectively ignores the 15759 authentication in the spec for a single request. 15760 :type _request_auth: dict, optional 15761 :param _content_type: force content-type for the request. 15762 :type _content_type: str, Optional 15763 :param _headers: set to override the headers for a single 15764 request; this effectively ignores the headers 15765 in the spec for a single request. 15766 :type _headers: dict, optional 15767 :param _host_index: set to override the host_index for a single 15768 request; this effectively ignores the host_index 15769 in the spec for a single request. 15770 :type _host_index: int, optional 15771 :return: Returns the result object. 15772 """ # noqa: E501 15773 15774 _param = self._delete_item_experimental_serialize( 15775 board_id=board_id, 15776 item_id=item_id, 15777 _request_auth=_request_auth, 15778 _content_type=_content_type, 15779 _headers=_headers, 15780 _host_index=_host_index, 15781 ) 15782 15783 _response_types_map: Dict[str, Optional[str]] = { 15784 "204": "object", 15785 "400": "CreateFrameItem400Response", 15786 "404": "CreateFrameItem400Response", 15787 "429": "CreateFrameItem400Response", 15788 } 15789 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15790 response_data.read() 15791 return self.api_client.response_deserialize( 15792 response_data=response_data, 15793 response_types_map=_response_types_map, 15794 ).data 15795 15796 def _delete_item_experimental_serialize( 15797 self, 15798 board_id, 15799 item_id, 15800 _request_auth, 15801 _content_type, 15802 _headers, 15803 _host_index, 15804 ) -> RequestSerialized: 15805 15806 _host = None 15807 15808 _collection_formats: Dict[str, str] = {} 15809 15810 _path_params: Dict[str, str] = {} 15811 _query_params: List[Tuple[str, str]] = [] 15812 _header_params: Dict[str, Optional[str]] = _headers or {} 15813 _form_params: List[Tuple[str, str]] = [] 15814 _files: Dict[str, str] = {} 15815 _body_params: Optional[bytes] = None 15816 15817 # process the path parameters 15818 if board_id is not None: 15819 _path_params["board_id"] = board_id 15820 if item_id is not None: 15821 _path_params["item_id"] = item_id 15822 # process the query parameters 15823 # process the header parameters 15824 # process the form parameters 15825 # process the body parameter 15826 15827 # set the HTTP header `Accept` 15828 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15829 15830 # authentication setting 15831 _auth_settings: List[str] = [] 15832 15833 return self.api_client.param_serialize( 15834 method="DELETE", 15835 resource_path="/v2-experimental/boards/{board_id}/items/{item_id}", 15836 path_params=_path_params, 15837 query_params=_query_params, 15838 header_params=_header_params, 15839 body=_body_params, 15840 post_params=_form_params, 15841 files=_files, 15842 auth_settings=_auth_settings, 15843 collection_formats=_collection_formats, 15844 _host=_host, 15845 _request_auth=_request_auth, 15846 ) 15847 15848 @validate_call 15849 def get_items( 15850 self, 15851 board_id: Annotated[ 15852 StrictStr, 15853 Field( 15854 description="Unique identifier (ID) of the board for which you want to retrieve the list of available items." 15855 ), 15856 ], 15857 limit: Optional[Annotated[str, Field(strict=True)]] = None, 15858 type: Optional[StrictStr] = None, 15859 cursor: Optional[StrictStr] = None, 15860 _request_timeout: Union[ 15861 None, 15862 Annotated[StrictFloat, Field(gt=0)], 15863 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15864 ] = None, 15865 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15866 _content_type: Optional[StrictStr] = None, 15867 _headers: Optional[Dict[StrictStr, Any]] = None, 15868 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15869 ) -> GenericItemCursorPaged: 15870 """Get items on board 15871 15872 Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15873 15874 :param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) 15875 :type board_id: str 15876 :param limit: 15877 :type limit: str 15878 :param type: 15879 :type type: str 15880 :param cursor: 15881 :type cursor: str 15882 :param _request_timeout: timeout setting for this request. If one 15883 number provided, it will be total request 15884 timeout. It can also be a pair (tuple) of 15885 (connection, read) timeouts. 15886 :type _request_timeout: int, tuple(int, int), optional 15887 :param _request_auth: set to override the auth_settings for an a single 15888 request; this effectively ignores the 15889 authentication in the spec for a single request. 15890 :type _request_auth: dict, optional 15891 :param _content_type: force content-type for the request. 15892 :type _content_type: str, Optional 15893 :param _headers: set to override the headers for a single 15894 request; this effectively ignores the headers 15895 in the spec for a single request. 15896 :type _headers: dict, optional 15897 :param _host_index: set to override the host_index for a single 15898 request; this effectively ignores the host_index 15899 in the spec for a single request. 15900 :type _host_index: int, optional 15901 :return: Returns the result object. 15902 """ # noqa: E501 15903 15904 _param = self._get_items_serialize( 15905 board_id=board_id, 15906 limit=limit, 15907 type=type, 15908 cursor=cursor, 15909 _request_auth=_request_auth, 15910 _content_type=_content_type, 15911 _headers=_headers, 15912 _host_index=_host_index, 15913 ) 15914 15915 _response_types_map: Dict[str, Optional[str]] = { 15916 "200": "GenericItemCursorPaged", 15917 "400": None, 15918 "404": None, 15919 "429": None, 15920 } 15921 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15922 response_data.read() 15923 return self.api_client.response_deserialize( 15924 response_data=response_data, 15925 response_types_map=_response_types_map, 15926 ).data 15927 15928 def _get_items_serialize( 15929 self, 15930 board_id, 15931 limit, 15932 type, 15933 cursor, 15934 _request_auth, 15935 _content_type, 15936 _headers, 15937 _host_index, 15938 ) -> RequestSerialized: 15939 15940 _host = None 15941 15942 _collection_formats: Dict[str, str] = {} 15943 15944 _path_params: Dict[str, str] = {} 15945 _query_params: List[Tuple[str, str]] = [] 15946 _header_params: Dict[str, Optional[str]] = _headers or {} 15947 _form_params: List[Tuple[str, str]] = [] 15948 _files: Dict[str, str] = {} 15949 _body_params: Optional[bytes] = None 15950 15951 # process the path parameters 15952 if board_id is not None: 15953 _path_params["board_id"] = board_id 15954 # process the query parameters 15955 if limit is not None: 15956 15957 _query_params.append(("limit", limit)) 15958 15959 if type is not None: 15960 15961 _query_params.append(("type", type)) 15962 15963 if cursor is not None: 15964 15965 _query_params.append(("cursor", cursor)) 15966 15967 # process the header parameters 15968 # process the form parameters 15969 # process the body parameter 15970 15971 # set the HTTP header `Accept` 15972 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15973 15974 # authentication setting 15975 _auth_settings: List[str] = [] 15976 15977 return self.api_client.param_serialize( 15978 method="GET", 15979 resource_path="/v2/boards/{board_id}/items", 15980 path_params=_path_params, 15981 query_params=_query_params, 15982 header_params=_header_params, 15983 body=_body_params, 15984 post_params=_form_params, 15985 files=_files, 15986 auth_settings=_auth_settings, 15987 collection_formats=_collection_formats, 15988 _host=_host, 15989 _request_auth=_request_auth, 15990 ) 15991 15992 @validate_call 15993 def get_items_within_frame( 15994 self, 15995 board_id_platform_containers: Annotated[ 15996 StrictStr, 15997 Field( 15998 description="Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items." 15999 ), 16000 ], 16001 parent_item_id: Annotated[ 16002 str, 16003 Field( 16004 strict=True, description="ID of the frame for which you want to retrieve the list of available items." 16005 ), 16006 ], 16007 limit: Optional[Annotated[str, Field(strict=True)]] = None, 16008 type: Optional[StrictStr] = None, 16009 cursor: Optional[StrictStr] = None, 16010 _request_timeout: Union[ 16011 None, 16012 Annotated[StrictFloat, Field(gt=0)], 16013 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16014 ] = None, 16015 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16016 _content_type: Optional[StrictStr] = None, 16017 _headers: Optional[Dict[StrictStr, Any]] = None, 16018 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16019 ) -> GenericItemCursorPaged: 16020 """Get items within frame 16021 16022 Retrieves a list of items within a specific frame. A frame is a parent item and all items within a frame are child items. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16023 16024 :param board_id_platform_containers: Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items. (required) 16025 :type board_id_platform_containers: str 16026 :param parent_item_id: ID of the frame for which you want to retrieve the list of available items. (required) 16027 :type parent_item_id: str 16028 :param limit: 16029 :type limit: str 16030 :param type: 16031 :type type: str 16032 :param cursor: 16033 :type cursor: str 16034 :param _request_timeout: timeout setting for this request. If one 16035 number provided, it will be total request 16036 timeout. It can also be a pair (tuple) of 16037 (connection, read) timeouts. 16038 :type _request_timeout: int, tuple(int, int), optional 16039 :param _request_auth: set to override the auth_settings for an a single 16040 request; this effectively ignores the 16041 authentication in the spec for a single request. 16042 :type _request_auth: dict, optional 16043 :param _content_type: force content-type for the request. 16044 :type _content_type: str, Optional 16045 :param _headers: set to override the headers for a single 16046 request; this effectively ignores the headers 16047 in the spec for a single request. 16048 :type _headers: dict, optional 16049 :param _host_index: set to override the host_index for a single 16050 request; this effectively ignores the host_index 16051 in the spec for a single request. 16052 :type _host_index: int, optional 16053 :return: Returns the result object. 16054 """ # noqa: E501 16055 16056 _param = self._get_items_within_frame_serialize( 16057 board_id_platform_containers=board_id_platform_containers, 16058 parent_item_id=parent_item_id, 16059 limit=limit, 16060 type=type, 16061 cursor=cursor, 16062 _request_auth=_request_auth, 16063 _content_type=_content_type, 16064 _headers=_headers, 16065 _host_index=_host_index, 16066 ) 16067 16068 _response_types_map: Dict[str, Optional[str]] = { 16069 "200": "GenericItemCursorPaged", 16070 "400": "CreateFrameItem400Response", 16071 "404": "CreateFrameItem400Response", 16072 "429": "CreateFrameItem400Response", 16073 } 16074 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16075 response_data.read() 16076 return self.api_client.response_deserialize( 16077 response_data=response_data, 16078 response_types_map=_response_types_map, 16079 ).data 16080 16081 def _get_items_within_frame_serialize( 16082 self, 16083 board_id_platform_containers, 16084 parent_item_id, 16085 limit, 16086 type, 16087 cursor, 16088 _request_auth, 16089 _content_type, 16090 _headers, 16091 _host_index, 16092 ) -> RequestSerialized: 16093 16094 _host = None 16095 16096 _collection_formats: Dict[str, str] = {} 16097 16098 _path_params: Dict[str, str] = {} 16099 _query_params: List[Tuple[str, str]] = [] 16100 _header_params: Dict[str, Optional[str]] = _headers or {} 16101 _form_params: List[Tuple[str, str]] = [] 16102 _files: Dict[str, str] = {} 16103 _body_params: Optional[bytes] = None 16104 16105 # process the path parameters 16106 if board_id_platform_containers is not None: 16107 _path_params["board_id_PlatformContainers"] = board_id_platform_containers 16108 # process the query parameters 16109 if parent_item_id is not None: 16110 16111 _query_params.append(("parent_item_id", parent_item_id)) 16112 16113 if limit is not None: 16114 16115 _query_params.append(("limit", limit)) 16116 16117 if type is not None: 16118 16119 _query_params.append(("type", type)) 16120 16121 if cursor is not None: 16122 16123 _query_params.append(("cursor", cursor)) 16124 16125 # process the header parameters 16126 # process the form parameters 16127 # process the body parameter 16128 16129 # set the HTTP header `Accept` 16130 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16131 16132 # authentication setting 16133 _auth_settings: List[str] = [] 16134 16135 return self.api_client.param_serialize( 16136 method="GET", 16137 resource_path="/v2/boards/{board_id_PlatformContainers}/items", 16138 path_params=_path_params, 16139 query_params=_query_params, 16140 header_params=_header_params, 16141 body=_body_params, 16142 post_params=_form_params, 16143 files=_files, 16144 auth_settings=_auth_settings, 16145 collection_formats=_collection_formats, 16146 _host=_host, 16147 _request_auth=_request_auth, 16148 ) 16149 16150 @validate_call 16151 def get_specific_item( 16152 self, 16153 board_id: Annotated[ 16154 StrictStr, 16155 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 16156 ], 16157 item_id: Annotated[ 16158 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 16159 ], 16160 _request_timeout: Union[ 16161 None, 16162 Annotated[StrictFloat, Field(gt=0)], 16163 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16164 ] = None, 16165 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16166 _content_type: Optional[StrictStr] = None, 16167 _headers: Optional[Dict[StrictStr, Any]] = None, 16168 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16169 ) -> GenericItem: 16170 """Get specific item on board 16171 16172 Retrieves information for a specific item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 16173 16174 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 16175 :type board_id: str 16176 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 16177 :type item_id: str 16178 :param _request_timeout: timeout setting for this request. If one 16179 number provided, it will be total request 16180 timeout. It can also be a pair (tuple) of 16181 (connection, read) timeouts. 16182 :type _request_timeout: int, tuple(int, int), optional 16183 :param _request_auth: set to override the auth_settings for an a single 16184 request; this effectively ignores the 16185 authentication in the spec for a single request. 16186 :type _request_auth: dict, optional 16187 :param _content_type: force content-type for the request. 16188 :type _content_type: str, Optional 16189 :param _headers: set to override the headers for a single 16190 request; this effectively ignores the headers 16191 in the spec for a single request. 16192 :type _headers: dict, optional 16193 :param _host_index: set to override the host_index for a single 16194 request; this effectively ignores the host_index 16195 in the spec for a single request. 16196 :type _host_index: int, optional 16197 :return: Returns the result object. 16198 """ # noqa: E501 16199 16200 _param = self._get_specific_item_serialize( 16201 board_id=board_id, 16202 item_id=item_id, 16203 _request_auth=_request_auth, 16204 _content_type=_content_type, 16205 _headers=_headers, 16206 _host_index=_host_index, 16207 ) 16208 16209 _response_types_map: Dict[str, Optional[str]] = { 16210 "200": "GenericItem", 16211 "400": None, 16212 "404": None, 16213 "429": None, 16214 } 16215 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16216 response_data.read() 16217 return self.api_client.response_deserialize( 16218 response_data=response_data, 16219 response_types_map=_response_types_map, 16220 ).data 16221 16222 def _get_specific_item_serialize( 16223 self, 16224 board_id, 16225 item_id, 16226 _request_auth, 16227 _content_type, 16228 _headers, 16229 _host_index, 16230 ) -> RequestSerialized: 16231 16232 _host = None 16233 16234 _collection_formats: Dict[str, str] = {} 16235 16236 _path_params: Dict[str, str] = {} 16237 _query_params: List[Tuple[str, str]] = [] 16238 _header_params: Dict[str, Optional[str]] = _headers or {} 16239 _form_params: List[Tuple[str, str]] = [] 16240 _files: Dict[str, str] = {} 16241 _body_params: Optional[bytes] = None 16242 16243 # process the path parameters 16244 if board_id is not None: 16245 _path_params["board_id"] = board_id 16246 if item_id is not None: 16247 _path_params["item_id"] = item_id 16248 # process the query parameters 16249 # process the header parameters 16250 # process the form parameters 16251 # process the body parameter 16252 16253 # set the HTTP header `Accept` 16254 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16255 16256 # authentication setting 16257 _auth_settings: List[str] = [] 16258 16259 return self.api_client.param_serialize( 16260 method="GET", 16261 resource_path="/v2/boards/{board_id}/items/{item_id}", 16262 path_params=_path_params, 16263 query_params=_query_params, 16264 header_params=_header_params, 16265 body=_body_params, 16266 post_params=_form_params, 16267 files=_files, 16268 auth_settings=_auth_settings, 16269 collection_formats=_collection_formats, 16270 _host=_host, 16271 _request_auth=_request_auth, 16272 ) 16273 16274 @validate_call 16275 def update_item_position_or_parent( 16276 self, 16277 board_id: Annotated[ 16278 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 16279 ], 16280 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 16281 generic_item_update: GenericItemUpdate, 16282 _request_timeout: Union[ 16283 None, 16284 Annotated[StrictFloat, Field(gt=0)], 16285 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16286 ] = None, 16287 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16288 _content_type: Optional[StrictStr] = None, 16289 _headers: Optional[Dict[StrictStr, Any]] = None, 16290 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16291 ) -> GenericItem: 16292 """Update item position or parent 16293 16294 Updates the position or the parent of an item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16295 16296 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 16297 :type board_id: str 16298 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 16299 :type item_id: str 16300 :param generic_item_update: (required) 16301 :type generic_item_update: GenericItemUpdate 16302 :param _request_timeout: timeout setting for this request. If one 16303 number provided, it will be total request 16304 timeout. It can also be a pair (tuple) of 16305 (connection, read) timeouts. 16306 :type _request_timeout: int, tuple(int, int), optional 16307 :param _request_auth: set to override the auth_settings for an a single 16308 request; this effectively ignores the 16309 authentication in the spec for a single request. 16310 :type _request_auth: dict, optional 16311 :param _content_type: force content-type for the request. 16312 :type _content_type: str, Optional 16313 :param _headers: set to override the headers for a single 16314 request; this effectively ignores the headers 16315 in the spec for a single request. 16316 :type _headers: dict, optional 16317 :param _host_index: set to override the host_index for a single 16318 request; this effectively ignores the host_index 16319 in the spec for a single request. 16320 :type _host_index: int, optional 16321 :return: Returns the result object. 16322 """ # noqa: E501 16323 16324 _param = self._update_item_position_or_parent_serialize( 16325 board_id=board_id, 16326 item_id=item_id, 16327 generic_item_update=generic_item_update, 16328 _request_auth=_request_auth, 16329 _content_type=_content_type, 16330 _headers=_headers, 16331 _host_index=_host_index, 16332 ) 16333 16334 _response_types_map: Dict[str, Optional[str]] = { 16335 "200": "GenericItem", 16336 "400": None, 16337 "404": None, 16338 "429": None, 16339 } 16340 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16341 response_data.read() 16342 return self.api_client.response_deserialize( 16343 response_data=response_data, 16344 response_types_map=_response_types_map, 16345 ).data 16346 16347 def _update_item_position_or_parent_serialize( 16348 self, 16349 board_id, 16350 item_id, 16351 generic_item_update, 16352 _request_auth, 16353 _content_type, 16354 _headers, 16355 _host_index, 16356 ) -> RequestSerialized: 16357 16358 _host = None 16359 16360 _collection_formats: Dict[str, str] = {} 16361 16362 _path_params: Dict[str, str] = {} 16363 _query_params: List[Tuple[str, str]] = [] 16364 _header_params: Dict[str, Optional[str]] = _headers or {} 16365 _form_params: List[Tuple[str, str]] = [] 16366 _files: Dict[str, str] = {} 16367 _body_params: Optional[bytes] = None 16368 16369 # process the path parameters 16370 if board_id is not None: 16371 _path_params["board_id"] = board_id 16372 if item_id is not None: 16373 _path_params["item_id"] = item_id 16374 # process the query parameters 16375 # process the header parameters 16376 # process the form parameters 16377 # process the body parameter 16378 if generic_item_update is not None: 16379 _body_params = generic_item_update 16380 16381 # set the HTTP header `Accept` 16382 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16383 16384 # set the HTTP header `Content-Type` 16385 if _content_type: 16386 _header_params["Content-Type"] = _content_type 16387 else: 16388 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 16389 if _default_content_type is not None: 16390 _header_params["Content-Type"] = _default_content_type 16391 16392 # authentication setting 16393 _auth_settings: List[str] = [] 16394 16395 return self.api_client.param_serialize( 16396 method="PATCH", 16397 resource_path="/v2/boards/{board_id}/items/{item_id}", 16398 path_params=_path_params, 16399 query_params=_query_params, 16400 header_params=_header_params, 16401 body=_body_params, 16402 post_params=_form_params, 16403 files=_files, 16404 auth_settings=_auth_settings, 16405 collection_formats=_collection_formats, 16406 _host=_host, 16407 _request_auth=_request_auth, 16408 ) 16409 16410 @validate_call 16411 def create_shape_item( 16412 self, 16413 board_id: Annotated[ 16414 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 16415 ], 16416 shape_create_request: ShapeCreateRequest, 16417 _request_timeout: Union[ 16418 None, 16419 Annotated[StrictFloat, Field(gt=0)], 16420 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16421 ] = None, 16422 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16423 _content_type: Optional[StrictStr] = None, 16424 _headers: Optional[Dict[StrictStr, Any]] = None, 16425 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16426 ) -> ShapeItem: 16427 """Create shape item 16428 16429 Adds a shape item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16430 16431 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 16432 :type board_id: str 16433 :param shape_create_request: (required) 16434 :type shape_create_request: ShapeCreateRequest 16435 :param _request_timeout: timeout setting for this request. If one 16436 number provided, it will be total request 16437 timeout. It can also be a pair (tuple) of 16438 (connection, read) timeouts. 16439 :type _request_timeout: int, tuple(int, int), optional 16440 :param _request_auth: set to override the auth_settings for an a single 16441 request; this effectively ignores the 16442 authentication in the spec for a single request. 16443 :type _request_auth: dict, optional 16444 :param _content_type: force content-type for the request. 16445 :type _content_type: str, Optional 16446 :param _headers: set to override the headers for a single 16447 request; this effectively ignores the headers 16448 in the spec for a single request. 16449 :type _headers: dict, optional 16450 :param _host_index: set to override the host_index for a single 16451 request; this effectively ignores the host_index 16452 in the spec for a single request. 16453 :type _host_index: int, optional 16454 :return: Returns the result object. 16455 """ # noqa: E501 16456 16457 _param = self._create_shape_item_serialize( 16458 board_id=board_id, 16459 shape_create_request=shape_create_request, 16460 _request_auth=_request_auth, 16461 _content_type=_content_type, 16462 _headers=_headers, 16463 _host_index=_host_index, 16464 ) 16465 16466 _response_types_map: Dict[str, Optional[str]] = { 16467 "201": "ShapeItem", 16468 "400": None, 16469 "404": None, 16470 "429": None, 16471 } 16472 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16473 response_data.read() 16474 return self.api_client.response_deserialize( 16475 response_data=response_data, 16476 response_types_map=_response_types_map, 16477 ).data 16478 16479 def _create_shape_item_serialize( 16480 self, 16481 board_id, 16482 shape_create_request, 16483 _request_auth, 16484 _content_type, 16485 _headers, 16486 _host_index, 16487 ) -> RequestSerialized: 16488 16489 _host = None 16490 16491 _collection_formats: Dict[str, str] = {} 16492 16493 _path_params: Dict[str, str] = {} 16494 _query_params: List[Tuple[str, str]] = [] 16495 _header_params: Dict[str, Optional[str]] = _headers or {} 16496 _form_params: List[Tuple[str, str]] = [] 16497 _files: Dict[str, str] = {} 16498 _body_params: Optional[bytes] = None 16499 16500 # process the path parameters 16501 if board_id is not None: 16502 _path_params["board_id"] = board_id 16503 # process the query parameters 16504 # process the header parameters 16505 # process the form parameters 16506 # process the body parameter 16507 if shape_create_request is not None: 16508 _body_params = shape_create_request 16509 16510 # set the HTTP header `Accept` 16511 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16512 16513 # set the HTTP header `Content-Type` 16514 if _content_type: 16515 _header_params["Content-Type"] = _content_type 16516 else: 16517 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 16518 if _default_content_type is not None: 16519 _header_params["Content-Type"] = _default_content_type 16520 16521 # authentication setting 16522 _auth_settings: List[str] = [] 16523 16524 return self.api_client.param_serialize( 16525 method="POST", 16526 resource_path="/v2/boards/{board_id}/shapes", 16527 path_params=_path_params, 16528 query_params=_query_params, 16529 header_params=_header_params, 16530 body=_body_params, 16531 post_params=_form_params, 16532 files=_files, 16533 auth_settings=_auth_settings, 16534 collection_formats=_collection_formats, 16535 _host=_host, 16536 _request_auth=_request_auth, 16537 ) 16538 16539 @validate_call 16540 def delete_shape_item( 16541 self, 16542 board_id: Annotated[ 16543 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 16544 ], 16545 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 16546 _request_timeout: Union[ 16547 None, 16548 Annotated[StrictFloat, Field(gt=0)], 16549 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16550 ] = None, 16551 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16552 _content_type: Optional[StrictStr] = None, 16553 _headers: Optional[Dict[StrictStr, Any]] = None, 16554 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16555 ) -> object: 16556 """Delete shape item 16557 16558 Deletes a shape item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 16559 16560 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 16561 :type board_id: str 16562 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 16563 :type item_id: str 16564 :param _request_timeout: timeout setting for this request. If one 16565 number provided, it will be total request 16566 timeout. It can also be a pair (tuple) of 16567 (connection, read) timeouts. 16568 :type _request_timeout: int, tuple(int, int), optional 16569 :param _request_auth: set to override the auth_settings for an a single 16570 request; this effectively ignores the 16571 authentication in the spec for a single request. 16572 :type _request_auth: dict, optional 16573 :param _content_type: force content-type for the request. 16574 :type _content_type: str, Optional 16575 :param _headers: set to override the headers for a single 16576 request; this effectively ignores the headers 16577 in the spec for a single request. 16578 :type _headers: dict, optional 16579 :param _host_index: set to override the host_index for a single 16580 request; this effectively ignores the host_index 16581 in the spec for a single request. 16582 :type _host_index: int, optional 16583 :return: Returns the result object. 16584 """ # noqa: E501 16585 16586 _param = self._delete_shape_item_serialize( 16587 board_id=board_id, 16588 item_id=item_id, 16589 _request_auth=_request_auth, 16590 _content_type=_content_type, 16591 _headers=_headers, 16592 _host_index=_host_index, 16593 ) 16594 16595 _response_types_map: Dict[str, Optional[str]] = { 16596 "204": "object", 16597 "400": None, 16598 "404": None, 16599 "429": None, 16600 } 16601 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16602 response_data.read() 16603 return self.api_client.response_deserialize( 16604 response_data=response_data, 16605 response_types_map=_response_types_map, 16606 ).data 16607 16608 def _delete_shape_item_serialize( 16609 self, 16610 board_id, 16611 item_id, 16612 _request_auth, 16613 _content_type, 16614 _headers, 16615 _host_index, 16616 ) -> RequestSerialized: 16617 16618 _host = None 16619 16620 _collection_formats: Dict[str, str] = {} 16621 16622 _path_params: Dict[str, str] = {} 16623 _query_params: List[Tuple[str, str]] = [] 16624 _header_params: Dict[str, Optional[str]] = _headers or {} 16625 _form_params: List[Tuple[str, str]] = [] 16626 _files: Dict[str, str] = {} 16627 _body_params: Optional[bytes] = None 16628 16629 # process the path parameters 16630 if board_id is not None: 16631 _path_params["board_id"] = board_id 16632 if item_id is not None: 16633 _path_params["item_id"] = item_id 16634 # process the query parameters 16635 # process the header parameters 16636 # process the form parameters 16637 # process the body parameter 16638 16639 # set the HTTP header `Accept` 16640 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16641 16642 # authentication setting 16643 _auth_settings: List[str] = [] 16644 16645 return self.api_client.param_serialize( 16646 method="DELETE", 16647 resource_path="/v2/boards/{board_id}/shapes/{item_id}", 16648 path_params=_path_params, 16649 query_params=_query_params, 16650 header_params=_header_params, 16651 body=_body_params, 16652 post_params=_form_params, 16653 files=_files, 16654 auth_settings=_auth_settings, 16655 collection_formats=_collection_formats, 16656 _host=_host, 16657 _request_auth=_request_auth, 16658 ) 16659 16660 @validate_call 16661 def get_shape_item( 16662 self, 16663 board_id: Annotated[ 16664 StrictStr, 16665 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 16666 ], 16667 item_id: Annotated[ 16668 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 16669 ], 16670 _request_timeout: Union[ 16671 None, 16672 Annotated[StrictFloat, Field(gt=0)], 16673 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16674 ] = None, 16675 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16676 _content_type: Optional[StrictStr] = None, 16677 _headers: Optional[Dict[StrictStr, Any]] = None, 16678 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16679 ) -> ShapeItem: 16680 """Get shape item 16681 16682 Retrieves information for a specific shape item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 16683 16684 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 16685 :type board_id: str 16686 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 16687 :type item_id: str 16688 :param _request_timeout: timeout setting for this request. If one 16689 number provided, it will be total request 16690 timeout. It can also be a pair (tuple) of 16691 (connection, read) timeouts. 16692 :type _request_timeout: int, tuple(int, int), optional 16693 :param _request_auth: set to override the auth_settings for an a single 16694 request; this effectively ignores the 16695 authentication in the spec for a single request. 16696 :type _request_auth: dict, optional 16697 :param _content_type: force content-type for the request. 16698 :type _content_type: str, Optional 16699 :param _headers: set to override the headers for a single 16700 request; this effectively ignores the headers 16701 in the spec for a single request. 16702 :type _headers: dict, optional 16703 :param _host_index: set to override the host_index for a single 16704 request; this effectively ignores the host_index 16705 in the spec for a single request. 16706 :type _host_index: int, optional 16707 :return: Returns the result object. 16708 """ # noqa: E501 16709 16710 _param = self._get_shape_item_serialize( 16711 board_id=board_id, 16712 item_id=item_id, 16713 _request_auth=_request_auth, 16714 _content_type=_content_type, 16715 _headers=_headers, 16716 _host_index=_host_index, 16717 ) 16718 16719 _response_types_map: Dict[str, Optional[str]] = { 16720 "200": "ShapeItem", 16721 "400": None, 16722 "404": None, 16723 "429": None, 16724 } 16725 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16726 response_data.read() 16727 return self.api_client.response_deserialize( 16728 response_data=response_data, 16729 response_types_map=_response_types_map, 16730 ).data 16731 16732 def _get_shape_item_serialize( 16733 self, 16734 board_id, 16735 item_id, 16736 _request_auth, 16737 _content_type, 16738 _headers, 16739 _host_index, 16740 ) -> RequestSerialized: 16741 16742 _host = None 16743 16744 _collection_formats: Dict[str, str] = {} 16745 16746 _path_params: Dict[str, str] = {} 16747 _query_params: List[Tuple[str, str]] = [] 16748 _header_params: Dict[str, Optional[str]] = _headers or {} 16749 _form_params: List[Tuple[str, str]] = [] 16750 _files: Dict[str, str] = {} 16751 _body_params: Optional[bytes] = None 16752 16753 # process the path parameters 16754 if board_id is not None: 16755 _path_params["board_id"] = board_id 16756 if item_id is not None: 16757 _path_params["item_id"] = item_id 16758 # process the query parameters 16759 # process the header parameters 16760 # process the form parameters 16761 # process the body parameter 16762 16763 # set the HTTP header `Accept` 16764 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16765 16766 # authentication setting 16767 _auth_settings: List[str] = [] 16768 16769 return self.api_client.param_serialize( 16770 method="GET", 16771 resource_path="/v2/boards/{board_id}/shapes/{item_id}", 16772 path_params=_path_params, 16773 query_params=_query_params, 16774 header_params=_header_params, 16775 body=_body_params, 16776 post_params=_form_params, 16777 files=_files, 16778 auth_settings=_auth_settings, 16779 collection_formats=_collection_formats, 16780 _host=_host, 16781 _request_auth=_request_auth, 16782 ) 16783 16784 @validate_call 16785 def update_shape_item( 16786 self, 16787 board_id: Annotated[ 16788 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 16789 ], 16790 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 16791 shape_update_request: ShapeUpdateRequest, 16792 _request_timeout: Union[ 16793 None, 16794 Annotated[StrictFloat, Field(gt=0)], 16795 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16796 ] = None, 16797 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16798 _content_type: Optional[StrictStr] = None, 16799 _headers: Optional[Dict[StrictStr, Any]] = None, 16800 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16801 ) -> ShapeItem: 16802 """Update shape item 16803 16804 Updates a shape item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16805 16806 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 16807 :type board_id: str 16808 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 16809 :type item_id: str 16810 :param shape_update_request: (required) 16811 :type shape_update_request: ShapeUpdateRequest 16812 :param _request_timeout: timeout setting for this request. If one 16813 number provided, it will be total request 16814 timeout. It can also be a pair (tuple) of 16815 (connection, read) timeouts. 16816 :type _request_timeout: int, tuple(int, int), optional 16817 :param _request_auth: set to override the auth_settings for an a single 16818 request; this effectively ignores the 16819 authentication in the spec for a single request. 16820 :type _request_auth: dict, optional 16821 :param _content_type: force content-type for the request. 16822 :type _content_type: str, Optional 16823 :param _headers: set to override the headers for a single 16824 request; this effectively ignores the headers 16825 in the spec for a single request. 16826 :type _headers: dict, optional 16827 :param _host_index: set to override the host_index for a single 16828 request; this effectively ignores the host_index 16829 in the spec for a single request. 16830 :type _host_index: int, optional 16831 :return: Returns the result object. 16832 """ # noqa: E501 16833 16834 _param = self._update_shape_item_serialize( 16835 board_id=board_id, 16836 item_id=item_id, 16837 shape_update_request=shape_update_request, 16838 _request_auth=_request_auth, 16839 _content_type=_content_type, 16840 _headers=_headers, 16841 _host_index=_host_index, 16842 ) 16843 16844 _response_types_map: Dict[str, Optional[str]] = { 16845 "200": "ShapeItem", 16846 "400": None, 16847 "404": None, 16848 "409": None, 16849 "429": None, 16850 } 16851 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16852 response_data.read() 16853 return self.api_client.response_deserialize( 16854 response_data=response_data, 16855 response_types_map=_response_types_map, 16856 ).data 16857 16858 def _update_shape_item_serialize( 16859 self, 16860 board_id, 16861 item_id, 16862 shape_update_request, 16863 _request_auth, 16864 _content_type, 16865 _headers, 16866 _host_index, 16867 ) -> RequestSerialized: 16868 16869 _host = None 16870 16871 _collection_formats: Dict[str, str] = {} 16872 16873 _path_params: Dict[str, str] = {} 16874 _query_params: List[Tuple[str, str]] = [] 16875 _header_params: Dict[str, Optional[str]] = _headers or {} 16876 _form_params: List[Tuple[str, str]] = [] 16877 _files: Dict[str, str] = {} 16878 _body_params: Optional[bytes] = None 16879 16880 # process the path parameters 16881 if board_id is not None: 16882 _path_params["board_id"] = board_id 16883 if item_id is not None: 16884 _path_params["item_id"] = item_id 16885 # process the query parameters 16886 # process the header parameters 16887 # process the form parameters 16888 # process the body parameter 16889 if shape_update_request is not None: 16890 _body_params = shape_update_request 16891 16892 # set the HTTP header `Accept` 16893 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16894 16895 # set the HTTP header `Content-Type` 16896 if _content_type: 16897 _header_params["Content-Type"] = _content_type 16898 else: 16899 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 16900 if _default_content_type is not None: 16901 _header_params["Content-Type"] = _default_content_type 16902 16903 # authentication setting 16904 _auth_settings: List[str] = [] 16905 16906 return self.api_client.param_serialize( 16907 method="PATCH", 16908 resource_path="/v2/boards/{board_id}/shapes/{item_id}", 16909 path_params=_path_params, 16910 query_params=_query_params, 16911 header_params=_header_params, 16912 body=_body_params, 16913 post_params=_form_params, 16914 files=_files, 16915 auth_settings=_auth_settings, 16916 collection_formats=_collection_formats, 16917 _host=_host, 16918 _request_auth=_request_auth, 16919 ) 16920 16921 @validate_call 16922 def create_sticky_note_item( 16923 self, 16924 board_id: Annotated[ 16925 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 16926 ], 16927 sticky_note_create_request: StickyNoteCreateRequest, 16928 _request_timeout: Union[ 16929 None, 16930 Annotated[StrictFloat, Field(gt=0)], 16931 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16932 ] = None, 16933 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16934 _content_type: Optional[StrictStr] = None, 16935 _headers: Optional[Dict[StrictStr, Any]] = None, 16936 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16937 ) -> StickyNoteItem: 16938 """Create sticky note item 16939 16940 Adds a sticky note item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16941 16942 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 16943 :type board_id: str 16944 :param sticky_note_create_request: (required) 16945 :type sticky_note_create_request: StickyNoteCreateRequest 16946 :param _request_timeout: timeout setting for this request. If one 16947 number provided, it will be total request 16948 timeout. It can also be a pair (tuple) of 16949 (connection, read) timeouts. 16950 :type _request_timeout: int, tuple(int, int), optional 16951 :param _request_auth: set to override the auth_settings for an a single 16952 request; this effectively ignores the 16953 authentication in the spec for a single request. 16954 :type _request_auth: dict, optional 16955 :param _content_type: force content-type for the request. 16956 :type _content_type: str, Optional 16957 :param _headers: set to override the headers for a single 16958 request; this effectively ignores the headers 16959 in the spec for a single request. 16960 :type _headers: dict, optional 16961 :param _host_index: set to override the host_index for a single 16962 request; this effectively ignores the host_index 16963 in the spec for a single request. 16964 :type _host_index: int, optional 16965 :return: Returns the result object. 16966 """ # noqa: E501 16967 16968 _param = self._create_sticky_note_item_serialize( 16969 board_id=board_id, 16970 sticky_note_create_request=sticky_note_create_request, 16971 _request_auth=_request_auth, 16972 _content_type=_content_type, 16973 _headers=_headers, 16974 _host_index=_host_index, 16975 ) 16976 16977 _response_types_map: Dict[str, Optional[str]] = { 16978 "201": "StickyNoteItem", 16979 "400": None, 16980 "404": None, 16981 "429": None, 16982 } 16983 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16984 response_data.read() 16985 return self.api_client.response_deserialize( 16986 response_data=response_data, 16987 response_types_map=_response_types_map, 16988 ).data 16989 16990 def _create_sticky_note_item_serialize( 16991 self, 16992 board_id, 16993 sticky_note_create_request, 16994 _request_auth, 16995 _content_type, 16996 _headers, 16997 _host_index, 16998 ) -> RequestSerialized: 16999 17000 _host = None 17001 17002 _collection_formats: Dict[str, str] = {} 17003 17004 _path_params: Dict[str, str] = {} 17005 _query_params: List[Tuple[str, str]] = [] 17006 _header_params: Dict[str, Optional[str]] = _headers or {} 17007 _form_params: List[Tuple[str, str]] = [] 17008 _files: Dict[str, str] = {} 17009 _body_params: Optional[bytes] = None 17010 17011 # process the path parameters 17012 if board_id is not None: 17013 _path_params["board_id"] = board_id 17014 # process the query parameters 17015 # process the header parameters 17016 # process the form parameters 17017 # process the body parameter 17018 if sticky_note_create_request is not None: 17019 _body_params = sticky_note_create_request 17020 17021 # set the HTTP header `Accept` 17022 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17023 17024 # set the HTTP header `Content-Type` 17025 if _content_type: 17026 _header_params["Content-Type"] = _content_type 17027 else: 17028 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 17029 if _default_content_type is not None: 17030 _header_params["Content-Type"] = _default_content_type 17031 17032 # authentication setting 17033 _auth_settings: List[str] = [] 17034 17035 return self.api_client.param_serialize( 17036 method="POST", 17037 resource_path="/v2/boards/{board_id}/sticky_notes", 17038 path_params=_path_params, 17039 query_params=_query_params, 17040 header_params=_header_params, 17041 body=_body_params, 17042 post_params=_form_params, 17043 files=_files, 17044 auth_settings=_auth_settings, 17045 collection_formats=_collection_formats, 17046 _host=_host, 17047 _request_auth=_request_auth, 17048 ) 17049 17050 @validate_call 17051 def delete_sticky_note_item( 17052 self, 17053 board_id: Annotated[ 17054 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 17055 ], 17056 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 17057 _request_timeout: Union[ 17058 None, 17059 Annotated[StrictFloat, Field(gt=0)], 17060 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17061 ] = None, 17062 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17063 _content_type: Optional[StrictStr] = None, 17064 _headers: Optional[Dict[StrictStr, Any]] = None, 17065 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17066 ) -> object: 17067 """Delete sticky note item 17068 17069 Deletes a sticky note item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 17070 17071 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 17072 :type board_id: str 17073 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 17074 :type item_id: str 17075 :param _request_timeout: timeout setting for this request. If one 17076 number provided, it will be total request 17077 timeout. It can also be a pair (tuple) of 17078 (connection, read) timeouts. 17079 :type _request_timeout: int, tuple(int, int), optional 17080 :param _request_auth: set to override the auth_settings for an a single 17081 request; this effectively ignores the 17082 authentication in the spec for a single request. 17083 :type _request_auth: dict, optional 17084 :param _content_type: force content-type for the request. 17085 :type _content_type: str, Optional 17086 :param _headers: set to override the headers for a single 17087 request; this effectively ignores the headers 17088 in the spec for a single request. 17089 :type _headers: dict, optional 17090 :param _host_index: set to override the host_index for a single 17091 request; this effectively ignores the host_index 17092 in the spec for a single request. 17093 :type _host_index: int, optional 17094 :return: Returns the result object. 17095 """ # noqa: E501 17096 17097 _param = self._delete_sticky_note_item_serialize( 17098 board_id=board_id, 17099 item_id=item_id, 17100 _request_auth=_request_auth, 17101 _content_type=_content_type, 17102 _headers=_headers, 17103 _host_index=_host_index, 17104 ) 17105 17106 _response_types_map: Dict[str, Optional[str]] = { 17107 "204": "object", 17108 "400": None, 17109 "404": None, 17110 "429": None, 17111 } 17112 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17113 response_data.read() 17114 return self.api_client.response_deserialize( 17115 response_data=response_data, 17116 response_types_map=_response_types_map, 17117 ).data 17118 17119 def _delete_sticky_note_item_serialize( 17120 self, 17121 board_id, 17122 item_id, 17123 _request_auth, 17124 _content_type, 17125 _headers, 17126 _host_index, 17127 ) -> RequestSerialized: 17128 17129 _host = None 17130 17131 _collection_formats: Dict[str, str] = {} 17132 17133 _path_params: Dict[str, str] = {} 17134 _query_params: List[Tuple[str, str]] = [] 17135 _header_params: Dict[str, Optional[str]] = _headers or {} 17136 _form_params: List[Tuple[str, str]] = [] 17137 _files: Dict[str, str] = {} 17138 _body_params: Optional[bytes] = None 17139 17140 # process the path parameters 17141 if board_id is not None: 17142 _path_params["board_id"] = board_id 17143 if item_id is not None: 17144 _path_params["item_id"] = item_id 17145 # process the query parameters 17146 # process the header parameters 17147 # process the form parameters 17148 # process the body parameter 17149 17150 # set the HTTP header `Accept` 17151 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17152 17153 # authentication setting 17154 _auth_settings: List[str] = [] 17155 17156 return self.api_client.param_serialize( 17157 method="DELETE", 17158 resource_path="/v2/boards/{board_id}/sticky_notes/{item_id}", 17159 path_params=_path_params, 17160 query_params=_query_params, 17161 header_params=_header_params, 17162 body=_body_params, 17163 post_params=_form_params, 17164 files=_files, 17165 auth_settings=_auth_settings, 17166 collection_formats=_collection_formats, 17167 _host=_host, 17168 _request_auth=_request_auth, 17169 ) 17170 17171 @validate_call 17172 def get_sticky_note_item( 17173 self, 17174 board_id: Annotated[ 17175 StrictStr, 17176 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 17177 ], 17178 item_id: Annotated[ 17179 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 17180 ], 17181 _request_timeout: Union[ 17182 None, 17183 Annotated[StrictFloat, Field(gt=0)], 17184 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17185 ] = None, 17186 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17187 _content_type: Optional[StrictStr] = None, 17188 _headers: Optional[Dict[StrictStr, Any]] = None, 17189 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17190 ) -> StickyNoteItem: 17191 """Get sticky note item 17192 17193 Retrieves information for a specific sticky note item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17194 17195 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 17196 :type board_id: str 17197 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 17198 :type item_id: str 17199 :param _request_timeout: timeout setting for this request. If one 17200 number provided, it will be total request 17201 timeout. It can also be a pair (tuple) of 17202 (connection, read) timeouts. 17203 :type _request_timeout: int, tuple(int, int), optional 17204 :param _request_auth: set to override the auth_settings for an a single 17205 request; this effectively ignores the 17206 authentication in the spec for a single request. 17207 :type _request_auth: dict, optional 17208 :param _content_type: force content-type for the request. 17209 :type _content_type: str, Optional 17210 :param _headers: set to override the headers for a single 17211 request; this effectively ignores the headers 17212 in the spec for a single request. 17213 :type _headers: dict, optional 17214 :param _host_index: set to override the host_index for a single 17215 request; this effectively ignores the host_index 17216 in the spec for a single request. 17217 :type _host_index: int, optional 17218 :return: Returns the result object. 17219 """ # noqa: E501 17220 17221 _param = self._get_sticky_note_item_serialize( 17222 board_id=board_id, 17223 item_id=item_id, 17224 _request_auth=_request_auth, 17225 _content_type=_content_type, 17226 _headers=_headers, 17227 _host_index=_host_index, 17228 ) 17229 17230 _response_types_map: Dict[str, Optional[str]] = { 17231 "200": "StickyNoteItem", 17232 "400": None, 17233 "404": None, 17234 "429": None, 17235 } 17236 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17237 response_data.read() 17238 return self.api_client.response_deserialize( 17239 response_data=response_data, 17240 response_types_map=_response_types_map, 17241 ).data 17242 17243 def _get_sticky_note_item_serialize( 17244 self, 17245 board_id, 17246 item_id, 17247 _request_auth, 17248 _content_type, 17249 _headers, 17250 _host_index, 17251 ) -> RequestSerialized: 17252 17253 _host = None 17254 17255 _collection_formats: Dict[str, str] = {} 17256 17257 _path_params: Dict[str, str] = {} 17258 _query_params: List[Tuple[str, str]] = [] 17259 _header_params: Dict[str, Optional[str]] = _headers or {} 17260 _form_params: List[Tuple[str, str]] = [] 17261 _files: Dict[str, str] = {} 17262 _body_params: Optional[bytes] = None 17263 17264 # process the path parameters 17265 if board_id is not None: 17266 _path_params["board_id"] = board_id 17267 if item_id is not None: 17268 _path_params["item_id"] = item_id 17269 # process the query parameters 17270 # process the header parameters 17271 # process the form parameters 17272 # process the body parameter 17273 17274 # set the HTTP header `Accept` 17275 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17276 17277 # authentication setting 17278 _auth_settings: List[str] = [] 17279 17280 return self.api_client.param_serialize( 17281 method="GET", 17282 resource_path="/v2/boards/{board_id}/sticky_notes/{item_id}", 17283 path_params=_path_params, 17284 query_params=_query_params, 17285 header_params=_header_params, 17286 body=_body_params, 17287 post_params=_form_params, 17288 files=_files, 17289 auth_settings=_auth_settings, 17290 collection_formats=_collection_formats, 17291 _host=_host, 17292 _request_auth=_request_auth, 17293 ) 17294 17295 @validate_call 17296 def update_sticky_note_item( 17297 self, 17298 board_id: Annotated[ 17299 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 17300 ], 17301 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 17302 sticky_note_update_request: StickyNoteUpdateRequest, 17303 _request_timeout: Union[ 17304 None, 17305 Annotated[StrictFloat, Field(gt=0)], 17306 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17307 ] = None, 17308 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17309 _content_type: Optional[StrictStr] = None, 17310 _headers: Optional[Dict[StrictStr, Any]] = None, 17311 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17312 ) -> StickyNoteItem: 17313 """Update sticky note item 17314 17315 Updates a sticky note item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 17316 17317 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 17318 :type board_id: str 17319 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 17320 :type item_id: str 17321 :param sticky_note_update_request: (required) 17322 :type sticky_note_update_request: StickyNoteUpdateRequest 17323 :param _request_timeout: timeout setting for this request. If one 17324 number provided, it will be total request 17325 timeout. It can also be a pair (tuple) of 17326 (connection, read) timeouts. 17327 :type _request_timeout: int, tuple(int, int), optional 17328 :param _request_auth: set to override the auth_settings for an a single 17329 request; this effectively ignores the 17330 authentication in the spec for a single request. 17331 :type _request_auth: dict, optional 17332 :param _content_type: force content-type for the request. 17333 :type _content_type: str, Optional 17334 :param _headers: set to override the headers for a single 17335 request; this effectively ignores the headers 17336 in the spec for a single request. 17337 :type _headers: dict, optional 17338 :param _host_index: set to override the host_index for a single 17339 request; this effectively ignores the host_index 17340 in the spec for a single request. 17341 :type _host_index: int, optional 17342 :return: Returns the result object. 17343 """ # noqa: E501 17344 17345 _param = self._update_sticky_note_item_serialize( 17346 board_id=board_id, 17347 item_id=item_id, 17348 sticky_note_update_request=sticky_note_update_request, 17349 _request_auth=_request_auth, 17350 _content_type=_content_type, 17351 _headers=_headers, 17352 _host_index=_host_index, 17353 ) 17354 17355 _response_types_map: Dict[str, Optional[str]] = { 17356 "200": "StickyNoteItem", 17357 "400": None, 17358 "404": None, 17359 "409": None, 17360 "429": None, 17361 } 17362 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17363 response_data.read() 17364 return self.api_client.response_deserialize( 17365 response_data=response_data, 17366 response_types_map=_response_types_map, 17367 ).data 17368 17369 def _update_sticky_note_item_serialize( 17370 self, 17371 board_id, 17372 item_id, 17373 sticky_note_update_request, 17374 _request_auth, 17375 _content_type, 17376 _headers, 17377 _host_index, 17378 ) -> RequestSerialized: 17379 17380 _host = None 17381 17382 _collection_formats: Dict[str, str] = {} 17383 17384 _path_params: Dict[str, str] = {} 17385 _query_params: List[Tuple[str, str]] = [] 17386 _header_params: Dict[str, Optional[str]] = _headers or {} 17387 _form_params: List[Tuple[str, str]] = [] 17388 _files: Dict[str, str] = {} 17389 _body_params: Optional[bytes] = None 17390 17391 # process the path parameters 17392 if board_id is not None: 17393 _path_params["board_id"] = board_id 17394 if item_id is not None: 17395 _path_params["item_id"] = item_id 17396 # process the query parameters 17397 # process the header parameters 17398 # process the form parameters 17399 # process the body parameter 17400 if sticky_note_update_request is not None: 17401 _body_params = sticky_note_update_request 17402 17403 # set the HTTP header `Accept` 17404 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17405 17406 # set the HTTP header `Content-Type` 17407 if _content_type: 17408 _header_params["Content-Type"] = _content_type 17409 else: 17410 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 17411 if _default_content_type is not None: 17412 _header_params["Content-Type"] = _default_content_type 17413 17414 # authentication setting 17415 _auth_settings: List[str] = [] 17416 17417 return self.api_client.param_serialize( 17418 method="PATCH", 17419 resource_path="/v2/boards/{board_id}/sticky_notes/{item_id}", 17420 path_params=_path_params, 17421 query_params=_query_params, 17422 header_params=_header_params, 17423 body=_body_params, 17424 post_params=_form_params, 17425 files=_files, 17426 auth_settings=_auth_settings, 17427 collection_formats=_collection_formats, 17428 _host=_host, 17429 _request_auth=_request_auth, 17430 ) 17431 17432 @validate_call 17433 def attach_tag_to_item( 17434 self, 17435 board_id_platform_tags: Annotated[ 17436 StrictStr, 17437 Field(description="Unique identifier (ID) of the board with the item that you want to add a tag to."), 17438 ], 17439 item_id: Annotated[ 17440 StrictStr, Field(description="Unique identifier (ID) of the item to which you want to add a tag.") 17441 ], 17442 tag_id: Annotated[ 17443 StrictStr, Field(description="Unique identifier (ID) of the tag you want to add to the item.") 17444 ], 17445 _request_timeout: Union[ 17446 None, 17447 Annotated[StrictFloat, Field(gt=0)], 17448 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17449 ] = None, 17450 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17451 _content_type: Optional[StrictStr] = None, 17452 _headers: Optional[Dict[StrictStr, Any]] = None, 17453 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17454 ) -> object: 17455 """Attach tag to item 17456 17457 Attach an existing tag to the specified item. Card and sticky note items can have up to 8 tags. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17458 17459 :param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to add a tag to. (required) 17460 :type board_id_platform_tags: str 17461 :param item_id: Unique identifier (ID) of the item to which you want to add a tag. (required) 17462 :type item_id: str 17463 :param tag_id: Unique identifier (ID) of the tag you want to add to the item. (required) 17464 :type tag_id: str 17465 :param _request_timeout: timeout setting for this request. If one 17466 number provided, it will be total request 17467 timeout. It can also be a pair (tuple) of 17468 (connection, read) timeouts. 17469 :type _request_timeout: int, tuple(int, int), optional 17470 :param _request_auth: set to override the auth_settings for an a single 17471 request; this effectively ignores the 17472 authentication in the spec for a single request. 17473 :type _request_auth: dict, optional 17474 :param _content_type: force content-type for the request. 17475 :type _content_type: str, Optional 17476 :param _headers: set to override the headers for a single 17477 request; this effectively ignores the headers 17478 in the spec for a single request. 17479 :type _headers: dict, optional 17480 :param _host_index: set to override the host_index for a single 17481 request; this effectively ignores the host_index 17482 in the spec for a single request. 17483 :type _host_index: int, optional 17484 :return: Returns the result object. 17485 """ # noqa: E501 17486 17487 _param = self._attach_tag_to_item_serialize( 17488 board_id_platform_tags=board_id_platform_tags, 17489 item_id=item_id, 17490 tag_id=tag_id, 17491 _request_auth=_request_auth, 17492 _content_type=_content_type, 17493 _headers=_headers, 17494 _host_index=_host_index, 17495 ) 17496 17497 _response_types_map: Dict[str, Optional[str]] = { 17498 "204": "object", 17499 "400": "GetTagsFromItem400Response", 17500 "404": "GetTagsFromItem400Response", 17501 "429": "GetTagsFromItem400Response", 17502 } 17503 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17504 response_data.read() 17505 return self.api_client.response_deserialize( 17506 response_data=response_data, 17507 response_types_map=_response_types_map, 17508 ).data 17509 17510 def _attach_tag_to_item_serialize( 17511 self, 17512 board_id_platform_tags, 17513 item_id, 17514 tag_id, 17515 _request_auth, 17516 _content_type, 17517 _headers, 17518 _host_index, 17519 ) -> RequestSerialized: 17520 17521 _host = None 17522 17523 _collection_formats: Dict[str, str] = {} 17524 17525 _path_params: Dict[str, str] = {} 17526 _query_params: List[Tuple[str, str]] = [] 17527 _header_params: Dict[str, Optional[str]] = _headers or {} 17528 _form_params: List[Tuple[str, str]] = [] 17529 _files: Dict[str, str] = {} 17530 _body_params: Optional[bytes] = None 17531 17532 # process the path parameters 17533 if board_id_platform_tags is not None: 17534 _path_params["board_id_PlatformTags"] = board_id_platform_tags 17535 if item_id is not None: 17536 _path_params["item_id"] = item_id 17537 # process the query parameters 17538 if tag_id is not None: 17539 17540 _query_params.append(("tag_id", tag_id)) 17541 17542 # process the header parameters 17543 # process the form parameters 17544 # process the body parameter 17545 17546 # set the HTTP header `Accept` 17547 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17548 17549 # authentication setting 17550 _auth_settings: List[str] = [] 17551 17552 return self.api_client.param_serialize( 17553 method="POST", 17554 resource_path="/v2/boards/{board_id_PlatformTags}/items/{item_id}", 17555 path_params=_path_params, 17556 query_params=_query_params, 17557 header_params=_header_params, 17558 body=_body_params, 17559 post_params=_form_params, 17560 files=_files, 17561 auth_settings=_auth_settings, 17562 collection_formats=_collection_formats, 17563 _host=_host, 17564 _request_auth=_request_auth, 17565 ) 17566 17567 @validate_call 17568 def create_tag( 17569 self, 17570 board_id: Annotated[ 17571 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the tag.") 17572 ], 17573 tag_create_request: TagCreateRequest, 17574 _request_timeout: Union[ 17575 None, 17576 Annotated[StrictFloat, Field(gt=0)], 17577 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17578 ] = None, 17579 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17580 _content_type: Optional[StrictStr] = None, 17581 _headers: Optional[Dict[StrictStr, Any]] = None, 17582 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17583 ) -> TagWithLinks: 17584 """Create tag 17585 17586 Creates a tag on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17587 17588 :param board_id: Unique identifier (ID) of the board where you want to create the tag. (required) 17589 :type board_id: str 17590 :param tag_create_request: (required) 17591 :type tag_create_request: TagCreateRequest 17592 :param _request_timeout: timeout setting for this request. If one 17593 number provided, it will be total request 17594 timeout. It can also be a pair (tuple) of 17595 (connection, read) timeouts. 17596 :type _request_timeout: int, tuple(int, int), optional 17597 :param _request_auth: set to override the auth_settings for an a single 17598 request; this effectively ignores the 17599 authentication in the spec for a single request. 17600 :type _request_auth: dict, optional 17601 :param _content_type: force content-type for the request. 17602 :type _content_type: str, Optional 17603 :param _headers: set to override the headers for a single 17604 request; this effectively ignores the headers 17605 in the spec for a single request. 17606 :type _headers: dict, optional 17607 :param _host_index: set to override the host_index for a single 17608 request; this effectively ignores the host_index 17609 in the spec for a single request. 17610 :type _host_index: int, optional 17611 :return: Returns the result object. 17612 """ # noqa: E501 17613 17614 _param = self._create_tag_serialize( 17615 board_id=board_id, 17616 tag_create_request=tag_create_request, 17617 _request_auth=_request_auth, 17618 _content_type=_content_type, 17619 _headers=_headers, 17620 _host_index=_host_index, 17621 ) 17622 17623 _response_types_map: Dict[str, Optional[str]] = { 17624 "201": "TagWithLinks", 17625 "400": "GetTagsFromItem400Response", 17626 "404": "GetTagsFromItem400Response", 17627 "429": "GetTagsFromItem400Response", 17628 } 17629 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17630 response_data.read() 17631 return self.api_client.response_deserialize( 17632 response_data=response_data, 17633 response_types_map=_response_types_map, 17634 ).data 17635 17636 def _create_tag_serialize( 17637 self, 17638 board_id, 17639 tag_create_request, 17640 _request_auth, 17641 _content_type, 17642 _headers, 17643 _host_index, 17644 ) -> RequestSerialized: 17645 17646 _host = None 17647 17648 _collection_formats: Dict[str, str] = {} 17649 17650 _path_params: Dict[str, str] = {} 17651 _query_params: List[Tuple[str, str]] = [] 17652 _header_params: Dict[str, Optional[str]] = _headers or {} 17653 _form_params: List[Tuple[str, str]] = [] 17654 _files: Dict[str, str] = {} 17655 _body_params: Optional[bytes] = None 17656 17657 # process the path parameters 17658 if board_id is not None: 17659 _path_params["board_id"] = board_id 17660 # process the query parameters 17661 # process the header parameters 17662 # process the form parameters 17663 # process the body parameter 17664 if tag_create_request is not None: 17665 _body_params = tag_create_request 17666 17667 # set the HTTP header `Accept` 17668 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17669 17670 # set the HTTP header `Content-Type` 17671 if _content_type: 17672 _header_params["Content-Type"] = _content_type 17673 else: 17674 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 17675 if _default_content_type is not None: 17676 _header_params["Content-Type"] = _default_content_type 17677 17678 # authentication setting 17679 _auth_settings: List[str] = [] 17680 17681 return self.api_client.param_serialize( 17682 method="POST", 17683 resource_path="/v2/boards/{board_id}/tags", 17684 path_params=_path_params, 17685 query_params=_query_params, 17686 header_params=_header_params, 17687 body=_body_params, 17688 post_params=_form_params, 17689 files=_files, 17690 auth_settings=_auth_settings, 17691 collection_formats=_collection_formats, 17692 _host=_host, 17693 _request_auth=_request_auth, 17694 ) 17695 17696 @validate_call 17697 def delete_tag( 17698 self, 17699 board_id: Annotated[ 17700 StrictStr, Field(description="Unique identifier (ID) of the board where you want to delete a specific tag.") 17701 ], 17702 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to delete.")], 17703 _request_timeout: Union[ 17704 None, 17705 Annotated[StrictFloat, Field(gt=0)], 17706 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17707 ] = None, 17708 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17709 _content_type: Optional[StrictStr] = None, 17710 _headers: Optional[Dict[StrictStr, Any]] = None, 17711 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17712 ) -> object: 17713 """Delete tag 17714 17715 Deletes the specified tag from the board. The tag is also removed from all cards and sticky notes on the board. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17716 17717 :param board_id: Unique identifier (ID) of the board where you want to delete a specific tag. (required) 17718 :type board_id: str 17719 :param tag_id: Unique identifier (ID) of the tag that you want to delete. (required) 17720 :type tag_id: str 17721 :param _request_timeout: timeout setting for this request. If one 17722 number provided, it will be total request 17723 timeout. It can also be a pair (tuple) of 17724 (connection, read) timeouts. 17725 :type _request_timeout: int, tuple(int, int), optional 17726 :param _request_auth: set to override the auth_settings for an a single 17727 request; this effectively ignores the 17728 authentication in the spec for a single request. 17729 :type _request_auth: dict, optional 17730 :param _content_type: force content-type for the request. 17731 :type _content_type: str, Optional 17732 :param _headers: set to override the headers for a single 17733 request; this effectively ignores the headers 17734 in the spec for a single request. 17735 :type _headers: dict, optional 17736 :param _host_index: set to override the host_index for a single 17737 request; this effectively ignores the host_index 17738 in the spec for a single request. 17739 :type _host_index: int, optional 17740 :return: Returns the result object. 17741 """ # noqa: E501 17742 17743 _param = self._delete_tag_serialize( 17744 board_id=board_id, 17745 tag_id=tag_id, 17746 _request_auth=_request_auth, 17747 _content_type=_content_type, 17748 _headers=_headers, 17749 _host_index=_host_index, 17750 ) 17751 17752 _response_types_map: Dict[str, Optional[str]] = { 17753 "204": "object", 17754 "400": "GetTagsFromItem400Response", 17755 "404": "GetTagsFromItem400Response", 17756 "429": "GetTagsFromItem400Response", 17757 } 17758 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17759 response_data.read() 17760 return self.api_client.response_deserialize( 17761 response_data=response_data, 17762 response_types_map=_response_types_map, 17763 ).data 17764 17765 def _delete_tag_serialize( 17766 self, 17767 board_id, 17768 tag_id, 17769 _request_auth, 17770 _content_type, 17771 _headers, 17772 _host_index, 17773 ) -> RequestSerialized: 17774 17775 _host = None 17776 17777 _collection_formats: Dict[str, str] = {} 17778 17779 _path_params: Dict[str, str] = {} 17780 _query_params: List[Tuple[str, str]] = [] 17781 _header_params: Dict[str, Optional[str]] = _headers or {} 17782 _form_params: List[Tuple[str, str]] = [] 17783 _files: Dict[str, str] = {} 17784 _body_params: Optional[bytes] = None 17785 17786 # process the path parameters 17787 if board_id is not None: 17788 _path_params["board_id"] = board_id 17789 if tag_id is not None: 17790 _path_params["tag_id"] = tag_id 17791 # process the query parameters 17792 # process the header parameters 17793 # process the form parameters 17794 # process the body parameter 17795 17796 # set the HTTP header `Accept` 17797 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17798 17799 # authentication setting 17800 _auth_settings: List[str] = [] 17801 17802 return self.api_client.param_serialize( 17803 method="DELETE", 17804 resource_path="/v2/boards/{board_id}/tags/{tag_id}", 17805 path_params=_path_params, 17806 query_params=_query_params, 17807 header_params=_header_params, 17808 body=_body_params, 17809 post_params=_form_params, 17810 files=_files, 17811 auth_settings=_auth_settings, 17812 collection_formats=_collection_formats, 17813 _host=_host, 17814 _request_auth=_request_auth, 17815 ) 17816 17817 @validate_call 17818 def get_items_by_tag( 17819 self, 17820 board_id_platform_tags: Annotated[ 17821 StrictStr, 17822 Field(description="Unique identifier (ID) of the board where you want to retrieve a specific tag."), 17823 ], 17824 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to retrieve.")], 17825 limit: Optional[Annotated[str, Field(strict=True)]] = None, 17826 offset: Optional[StrictStr] = None, 17827 _request_timeout: Union[ 17828 None, 17829 Annotated[StrictFloat, Field(gt=0)], 17830 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17831 ] = None, 17832 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17833 _content_type: Optional[StrictStr] = None, 17834 _headers: Optional[Dict[StrictStr, Any]] = None, 17835 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17836 ) -> ItemPagedResponse: 17837 """Get items by tag 17838 17839 Retrieves all the items that have the specified tag.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17840 17841 :param board_id_platform_tags: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) 17842 :type board_id_platform_tags: str 17843 :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) 17844 :type tag_id: str 17845 :param limit: 17846 :type limit: str 17847 :param offset: 17848 :type offset: str 17849 :param _request_timeout: timeout setting for this request. If one 17850 number provided, it will be total request 17851 timeout. It can also be a pair (tuple) of 17852 (connection, read) timeouts. 17853 :type _request_timeout: int, tuple(int, int), optional 17854 :param _request_auth: set to override the auth_settings for an a single 17855 request; this effectively ignores the 17856 authentication in the spec for a single request. 17857 :type _request_auth: dict, optional 17858 :param _content_type: force content-type for the request. 17859 :type _content_type: str, Optional 17860 :param _headers: set to override the headers for a single 17861 request; this effectively ignores the headers 17862 in the spec for a single request. 17863 :type _headers: dict, optional 17864 :param _host_index: set to override the host_index for a single 17865 request; this effectively ignores the host_index 17866 in the spec for a single request. 17867 :type _host_index: int, optional 17868 :return: Returns the result object. 17869 """ # noqa: E501 17870 17871 _param = self._get_items_by_tag_serialize( 17872 board_id_platform_tags=board_id_platform_tags, 17873 tag_id=tag_id, 17874 limit=limit, 17875 offset=offset, 17876 _request_auth=_request_auth, 17877 _content_type=_content_type, 17878 _headers=_headers, 17879 _host_index=_host_index, 17880 ) 17881 17882 _response_types_map: Dict[str, Optional[str]] = { 17883 "200": "ItemPagedResponse", 17884 "400": "GetTagsFromItem400Response", 17885 "404": "GetTagsFromItem400Response", 17886 "429": "GetTagsFromItem400Response", 17887 } 17888 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17889 response_data.read() 17890 return self.api_client.response_deserialize( 17891 response_data=response_data, 17892 response_types_map=_response_types_map, 17893 ).data 17894 17895 def _get_items_by_tag_serialize( 17896 self, 17897 board_id_platform_tags, 17898 tag_id, 17899 limit, 17900 offset, 17901 _request_auth, 17902 _content_type, 17903 _headers, 17904 _host_index, 17905 ) -> RequestSerialized: 17906 17907 _host = None 17908 17909 _collection_formats: Dict[str, str] = {} 17910 17911 _path_params: Dict[str, str] = {} 17912 _query_params: List[Tuple[str, str]] = [] 17913 _header_params: Dict[str, Optional[str]] = _headers or {} 17914 _form_params: List[Tuple[str, str]] = [] 17915 _files: Dict[str, str] = {} 17916 _body_params: Optional[bytes] = None 17917 17918 # process the path parameters 17919 if board_id_platform_tags is not None: 17920 _path_params["board_id_PlatformTags"] = board_id_platform_tags 17921 # process the query parameters 17922 if limit is not None: 17923 17924 _query_params.append(("limit", limit)) 17925 17926 if offset is not None: 17927 17928 _query_params.append(("offset", offset)) 17929 17930 if tag_id is not None: 17931 17932 _query_params.append(("tag_id", tag_id)) 17933 17934 # process the header parameters 17935 # process the form parameters 17936 # process the body parameter 17937 17938 # set the HTTP header `Accept` 17939 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17940 17941 # authentication setting 17942 _auth_settings: List[str] = [] 17943 17944 return self.api_client.param_serialize( 17945 method="GET", 17946 resource_path="/v2/boards/{board_id_PlatformTags}/items", 17947 path_params=_path_params, 17948 query_params=_query_params, 17949 header_params=_header_params, 17950 body=_body_params, 17951 post_params=_form_params, 17952 files=_files, 17953 auth_settings=_auth_settings, 17954 collection_formats=_collection_formats, 17955 _host=_host, 17956 _request_auth=_request_auth, 17957 ) 17958 17959 @validate_call 17960 def get_tag( 17961 self, 17962 board_id: Annotated[ 17963 StrictStr, 17964 Field(description="Unique identifier (ID) of the board where you want to retrieve a specific tag."), 17965 ], 17966 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to retrieve.")], 17967 _request_timeout: Union[ 17968 None, 17969 Annotated[StrictFloat, Field(gt=0)], 17970 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17971 ] = None, 17972 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17973 _content_type: Optional[StrictStr] = None, 17974 _headers: Optional[Dict[StrictStr, Any]] = None, 17975 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17976 ) -> TagWithLinks: 17977 """Get tag 17978 17979 Retrieves information for a specific tag.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17980 17981 :param board_id: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) 17982 :type board_id: str 17983 :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) 17984 :type tag_id: str 17985 :param _request_timeout: timeout setting for this request. If one 17986 number provided, it will be total request 17987 timeout. It can also be a pair (tuple) of 17988 (connection, read) timeouts. 17989 :type _request_timeout: int, tuple(int, int), optional 17990 :param _request_auth: set to override the auth_settings for an a single 17991 request; this effectively ignores the 17992 authentication in the spec for a single request. 17993 :type _request_auth: dict, optional 17994 :param _content_type: force content-type for the request. 17995 :type _content_type: str, Optional 17996 :param _headers: set to override the headers for a single 17997 request; this effectively ignores the headers 17998 in the spec for a single request. 17999 :type _headers: dict, optional 18000 :param _host_index: set to override the host_index for a single 18001 request; this effectively ignores the host_index 18002 in the spec for a single request. 18003 :type _host_index: int, optional 18004 :return: Returns the result object. 18005 """ # noqa: E501 18006 18007 _param = self._get_tag_serialize( 18008 board_id=board_id, 18009 tag_id=tag_id, 18010 _request_auth=_request_auth, 18011 _content_type=_content_type, 18012 _headers=_headers, 18013 _host_index=_host_index, 18014 ) 18015 18016 _response_types_map: Dict[str, Optional[str]] = { 18017 "200": "TagWithLinks", 18018 "400": "GetTagsFromItem400Response", 18019 "404": "GetTagsFromItem400Response", 18020 "429": "GetTagsFromItem400Response", 18021 } 18022 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18023 response_data.read() 18024 return self.api_client.response_deserialize( 18025 response_data=response_data, 18026 response_types_map=_response_types_map, 18027 ).data 18028 18029 def _get_tag_serialize( 18030 self, 18031 board_id, 18032 tag_id, 18033 _request_auth, 18034 _content_type, 18035 _headers, 18036 _host_index, 18037 ) -> RequestSerialized: 18038 18039 _host = None 18040 18041 _collection_formats: Dict[str, str] = {} 18042 18043 _path_params: Dict[str, str] = {} 18044 _query_params: List[Tuple[str, str]] = [] 18045 _header_params: Dict[str, Optional[str]] = _headers or {} 18046 _form_params: List[Tuple[str, str]] = [] 18047 _files: Dict[str, str] = {} 18048 _body_params: Optional[bytes] = None 18049 18050 # process the path parameters 18051 if board_id is not None: 18052 _path_params["board_id"] = board_id 18053 if tag_id is not None: 18054 _path_params["tag_id"] = tag_id 18055 # process the query parameters 18056 # process the header parameters 18057 # process the form parameters 18058 # process the body parameter 18059 18060 # set the HTTP header `Accept` 18061 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18062 18063 # authentication setting 18064 _auth_settings: List[str] = [] 18065 18066 return self.api_client.param_serialize( 18067 method="GET", 18068 resource_path="/v2/boards/{board_id}/tags/{tag_id}", 18069 path_params=_path_params, 18070 query_params=_query_params, 18071 header_params=_header_params, 18072 body=_body_params, 18073 post_params=_form_params, 18074 files=_files, 18075 auth_settings=_auth_settings, 18076 collection_formats=_collection_formats, 18077 _host=_host, 18078 _request_auth=_request_auth, 18079 ) 18080 18081 @validate_call 18082 def get_tags_from_board( 18083 self, 18084 board_id: Annotated[ 18085 StrictStr, Field(description="Unique identifier (ID) of the board whose tags you want to retrieve.") 18086 ], 18087 limit: Optional[Annotated[str, Field(strict=True)]] = None, 18088 offset: Optional[StrictStr] = None, 18089 _request_timeout: Union[ 18090 None, 18091 Annotated[StrictFloat, Field(gt=0)], 18092 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18093 ] = None, 18094 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18095 _content_type: Optional[StrictStr] = None, 18096 _headers: Optional[Dict[StrictStr, Any]] = None, 18097 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18098 ) -> TagsPagedResponse: 18099 """Get tags from board 18100 18101 Retrieves all the tags from the specified board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18102 18103 :param board_id: Unique identifier (ID) of the board whose tags you want to retrieve. (required) 18104 :type board_id: str 18105 :param limit: 18106 :type limit: str 18107 :param offset: 18108 :type offset: str 18109 :param _request_timeout: timeout setting for this request. If one 18110 number provided, it will be total request 18111 timeout. It can also be a pair (tuple) of 18112 (connection, read) timeouts. 18113 :type _request_timeout: int, tuple(int, int), optional 18114 :param _request_auth: set to override the auth_settings for an a single 18115 request; this effectively ignores the 18116 authentication in the spec for a single request. 18117 :type _request_auth: dict, optional 18118 :param _content_type: force content-type for the request. 18119 :type _content_type: str, Optional 18120 :param _headers: set to override the headers for a single 18121 request; this effectively ignores the headers 18122 in the spec for a single request. 18123 :type _headers: dict, optional 18124 :param _host_index: set to override the host_index for a single 18125 request; this effectively ignores the host_index 18126 in the spec for a single request. 18127 :type _host_index: int, optional 18128 :return: Returns the result object. 18129 """ # noqa: E501 18130 18131 _param = self._get_tags_from_board_serialize( 18132 board_id=board_id, 18133 limit=limit, 18134 offset=offset, 18135 _request_auth=_request_auth, 18136 _content_type=_content_type, 18137 _headers=_headers, 18138 _host_index=_host_index, 18139 ) 18140 18141 _response_types_map: Dict[str, Optional[str]] = { 18142 "200": "TagsPagedResponse", 18143 "400": "GetTagsFromItem400Response", 18144 "404": "GetTagsFromItem400Response", 18145 "429": "GetTagsFromItem400Response", 18146 } 18147 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18148 response_data.read() 18149 return self.api_client.response_deserialize( 18150 response_data=response_data, 18151 response_types_map=_response_types_map, 18152 ).data 18153 18154 def _get_tags_from_board_serialize( 18155 self, 18156 board_id, 18157 limit, 18158 offset, 18159 _request_auth, 18160 _content_type, 18161 _headers, 18162 _host_index, 18163 ) -> RequestSerialized: 18164 18165 _host = None 18166 18167 _collection_formats: Dict[str, str] = {} 18168 18169 _path_params: Dict[str, str] = {} 18170 _query_params: List[Tuple[str, str]] = [] 18171 _header_params: Dict[str, Optional[str]] = _headers or {} 18172 _form_params: List[Tuple[str, str]] = [] 18173 _files: Dict[str, str] = {} 18174 _body_params: Optional[bytes] = None 18175 18176 # process the path parameters 18177 if board_id is not None: 18178 _path_params["board_id"] = board_id 18179 # process the query parameters 18180 if limit is not None: 18181 18182 _query_params.append(("limit", limit)) 18183 18184 if offset is not None: 18185 18186 _query_params.append(("offset", offset)) 18187 18188 # process the header parameters 18189 # process the form parameters 18190 # process the body parameter 18191 18192 # set the HTTP header `Accept` 18193 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18194 18195 # authentication setting 18196 _auth_settings: List[str] = [] 18197 18198 return self.api_client.param_serialize( 18199 method="GET", 18200 resource_path="/v2/boards/{board_id}/tags", 18201 path_params=_path_params, 18202 query_params=_query_params, 18203 header_params=_header_params, 18204 body=_body_params, 18205 post_params=_form_params, 18206 files=_files, 18207 auth_settings=_auth_settings, 18208 collection_formats=_collection_formats, 18209 _host=_host, 18210 _request_auth=_request_auth, 18211 ) 18212 18213 @validate_call 18214 def get_tags_from_item( 18215 self, 18216 board_id: Annotated[ 18217 StrictStr, 18218 Field(description="Unique identifier (ID) of the board with the item whose tags you want to retrieve."), 18219 ], 18220 item_id: Annotated[ 18221 StrictStr, Field(description="Unique identifier (ID) of the item whose tags you want to retrieve.") 18222 ], 18223 _request_timeout: Union[ 18224 None, 18225 Annotated[StrictFloat, Field(gt=0)], 18226 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18227 ] = None, 18228 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18229 _content_type: Optional[StrictStr] = None, 18230 _headers: Optional[Dict[StrictStr, Any]] = None, 18231 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18232 ) -> GetTagsResponse: 18233 """Get tags from item 18234 18235 Retrieves all the tags from the specified item.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18236 18237 :param board_id: Unique identifier (ID) of the board with the item whose tags you want to retrieve. (required) 18238 :type board_id: str 18239 :param item_id: Unique identifier (ID) of the item whose tags you want to retrieve. (required) 18240 :type item_id: str 18241 :param _request_timeout: timeout setting for this request. If one 18242 number provided, it will be total request 18243 timeout. It can also be a pair (tuple) of 18244 (connection, read) timeouts. 18245 :type _request_timeout: int, tuple(int, int), optional 18246 :param _request_auth: set to override the auth_settings for an a single 18247 request; this effectively ignores the 18248 authentication in the spec for a single request. 18249 :type _request_auth: dict, optional 18250 :param _content_type: force content-type for the request. 18251 :type _content_type: str, Optional 18252 :param _headers: set to override the headers for a single 18253 request; this effectively ignores the headers 18254 in the spec for a single request. 18255 :type _headers: dict, optional 18256 :param _host_index: set to override the host_index for a single 18257 request; this effectively ignores the host_index 18258 in the spec for a single request. 18259 :type _host_index: int, optional 18260 :return: Returns the result object. 18261 """ # noqa: E501 18262 18263 _param = self._get_tags_from_item_serialize( 18264 board_id=board_id, 18265 item_id=item_id, 18266 _request_auth=_request_auth, 18267 _content_type=_content_type, 18268 _headers=_headers, 18269 _host_index=_host_index, 18270 ) 18271 18272 _response_types_map: Dict[str, Optional[str]] = { 18273 "200": "GetTagsResponse", 18274 "400": "GetTagsFromItem400Response", 18275 "404": "GetTagsFromItem400Response", 18276 "429": "GetTagsFromItem400Response", 18277 } 18278 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18279 response_data.read() 18280 return self.api_client.response_deserialize( 18281 response_data=response_data, 18282 response_types_map=_response_types_map, 18283 ).data 18284 18285 def _get_tags_from_item_serialize( 18286 self, 18287 board_id, 18288 item_id, 18289 _request_auth, 18290 _content_type, 18291 _headers, 18292 _host_index, 18293 ) -> RequestSerialized: 18294 18295 _host = None 18296 18297 _collection_formats: Dict[str, str] = {} 18298 18299 _path_params: Dict[str, str] = {} 18300 _query_params: List[Tuple[str, str]] = [] 18301 _header_params: Dict[str, Optional[str]] = _headers or {} 18302 _form_params: List[Tuple[str, str]] = [] 18303 _files: Dict[str, str] = {} 18304 _body_params: Optional[bytes] = None 18305 18306 # process the path parameters 18307 if board_id is not None: 18308 _path_params["board_id"] = board_id 18309 if item_id is not None: 18310 _path_params["item_id"] = item_id 18311 # process the query parameters 18312 # process the header parameters 18313 # process the form parameters 18314 # process the body parameter 18315 18316 # set the HTTP header `Accept` 18317 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18318 18319 # authentication setting 18320 _auth_settings: List[str] = [] 18321 18322 return self.api_client.param_serialize( 18323 method="GET", 18324 resource_path="/v2/boards/{board_id}/items/{item_id}/tags", 18325 path_params=_path_params, 18326 query_params=_query_params, 18327 header_params=_header_params, 18328 body=_body_params, 18329 post_params=_form_params, 18330 files=_files, 18331 auth_settings=_auth_settings, 18332 collection_formats=_collection_formats, 18333 _host=_host, 18334 _request_auth=_request_auth, 18335 ) 18336 18337 @validate_call 18338 def remove_tag_from_item( 18339 self, 18340 board_id_platform_tags: Annotated[ 18341 StrictStr, 18342 Field(description="Unique identifier (ID) of the board with the item that you want to remove a tag from."), 18343 ], 18344 item_id: Annotated[ 18345 StrictStr, Field(description="Unique identifier (ID) of the item that you want to remove the tag from.") 18346 ], 18347 tag_id: Annotated[ 18348 StrictStr, Field(description="Unique identifier (ID) of the tag that you want to remove from the item.") 18349 ], 18350 _request_timeout: Union[ 18351 None, 18352 Annotated[StrictFloat, Field(gt=0)], 18353 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18354 ] = None, 18355 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18356 _content_type: Optional[StrictStr] = None, 18357 _headers: Optional[Dict[StrictStr, Any]] = None, 18358 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18359 ) -> object: 18360 """Remove tag from item 18361 18362 Removes the specified tag from the specified item. The tag still exists on the board. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18363 18364 :param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to remove a tag from. (required) 18365 :type board_id_platform_tags: str 18366 :param item_id: Unique identifier (ID) of the item that you want to remove the tag from. (required) 18367 :type item_id: str 18368 :param tag_id: Unique identifier (ID) of the tag that you want to remove from the item. (required) 18369 :type tag_id: str 18370 :param _request_timeout: timeout setting for this request. If one 18371 number provided, it will be total request 18372 timeout. It can also be a pair (tuple) of 18373 (connection, read) timeouts. 18374 :type _request_timeout: int, tuple(int, int), optional 18375 :param _request_auth: set to override the auth_settings for an a single 18376 request; this effectively ignores the 18377 authentication in the spec for a single request. 18378 :type _request_auth: dict, optional 18379 :param _content_type: force content-type for the request. 18380 :type _content_type: str, Optional 18381 :param _headers: set to override the headers for a single 18382 request; this effectively ignores the headers 18383 in the spec for a single request. 18384 :type _headers: dict, optional 18385 :param _host_index: set to override the host_index for a single 18386 request; this effectively ignores the host_index 18387 in the spec for a single request. 18388 :type _host_index: int, optional 18389 :return: Returns the result object. 18390 """ # noqa: E501 18391 18392 _param = self._remove_tag_from_item_serialize( 18393 board_id_platform_tags=board_id_platform_tags, 18394 item_id=item_id, 18395 tag_id=tag_id, 18396 _request_auth=_request_auth, 18397 _content_type=_content_type, 18398 _headers=_headers, 18399 _host_index=_host_index, 18400 ) 18401 18402 _response_types_map: Dict[str, Optional[str]] = { 18403 "204": "object", 18404 "400": "GetTagsFromItem400Response", 18405 "404": "GetTagsFromItem400Response", 18406 "429": "GetTagsFromItem400Response", 18407 } 18408 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18409 response_data.read() 18410 return self.api_client.response_deserialize( 18411 response_data=response_data, 18412 response_types_map=_response_types_map, 18413 ).data 18414 18415 def _remove_tag_from_item_serialize( 18416 self, 18417 board_id_platform_tags, 18418 item_id, 18419 tag_id, 18420 _request_auth, 18421 _content_type, 18422 _headers, 18423 _host_index, 18424 ) -> RequestSerialized: 18425 18426 _host = None 18427 18428 _collection_formats: Dict[str, str] = {} 18429 18430 _path_params: Dict[str, str] = {} 18431 _query_params: List[Tuple[str, str]] = [] 18432 _header_params: Dict[str, Optional[str]] = _headers or {} 18433 _form_params: List[Tuple[str, str]] = [] 18434 _files: Dict[str, str] = {} 18435 _body_params: Optional[bytes] = None 18436 18437 # process the path parameters 18438 if board_id_platform_tags is not None: 18439 _path_params["board_id_PlatformTags"] = board_id_platform_tags 18440 if item_id is not None: 18441 _path_params["item_id"] = item_id 18442 # process the query parameters 18443 if tag_id is not None: 18444 18445 _query_params.append(("tag_id", tag_id)) 18446 18447 # process the header parameters 18448 # process the form parameters 18449 # process the body parameter 18450 18451 # set the HTTP header `Accept` 18452 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18453 18454 # authentication setting 18455 _auth_settings: List[str] = [] 18456 18457 return self.api_client.param_serialize( 18458 method="DELETE", 18459 resource_path="/v2/boards/{board_id_PlatformTags}/items/{item_id}", 18460 path_params=_path_params, 18461 query_params=_query_params, 18462 header_params=_header_params, 18463 body=_body_params, 18464 post_params=_form_params, 18465 files=_files, 18466 auth_settings=_auth_settings, 18467 collection_formats=_collection_formats, 18468 _host=_host, 18469 _request_auth=_request_auth, 18470 ) 18471 18472 @validate_call 18473 def update_tag( 18474 self, 18475 board_id: Annotated[ 18476 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update a specific tag.") 18477 ], 18478 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to update.")], 18479 tag_update_request: TagUpdateRequest, 18480 _request_timeout: Union[ 18481 None, 18482 Annotated[StrictFloat, Field(gt=0)], 18483 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18484 ] = None, 18485 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18486 _content_type: Optional[StrictStr] = None, 18487 _headers: Optional[Dict[StrictStr, Any]] = None, 18488 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18489 ) -> TagWithLinks: 18490 """Update tag 18491 18492 Updates a tag based on the data properties provided in the request body. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18493 18494 :param board_id: Unique identifier (ID) of the board where you want to update a specific tag. (required) 18495 :type board_id: str 18496 :param tag_id: Unique identifier (ID) of the tag that you want to update. (required) 18497 :type tag_id: str 18498 :param tag_update_request: (required) 18499 :type tag_update_request: TagUpdateRequest 18500 :param _request_timeout: timeout setting for this request. If one 18501 number provided, it will be total request 18502 timeout. It can also be a pair (tuple) of 18503 (connection, read) timeouts. 18504 :type _request_timeout: int, tuple(int, int), optional 18505 :param _request_auth: set to override the auth_settings for an a single 18506 request; this effectively ignores the 18507 authentication in the spec for a single request. 18508 :type _request_auth: dict, optional 18509 :param _content_type: force content-type for the request. 18510 :type _content_type: str, Optional 18511 :param _headers: set to override the headers for a single 18512 request; this effectively ignores the headers 18513 in the spec for a single request. 18514 :type _headers: dict, optional 18515 :param _host_index: set to override the host_index for a single 18516 request; this effectively ignores the host_index 18517 in the spec for a single request. 18518 :type _host_index: int, optional 18519 :return: Returns the result object. 18520 """ # noqa: E501 18521 18522 _param = self._update_tag_serialize( 18523 board_id=board_id, 18524 tag_id=tag_id, 18525 tag_update_request=tag_update_request, 18526 _request_auth=_request_auth, 18527 _content_type=_content_type, 18528 _headers=_headers, 18529 _host_index=_host_index, 18530 ) 18531 18532 _response_types_map: Dict[str, Optional[str]] = { 18533 "200": "TagWithLinks", 18534 "400": "GetTagsFromItem400Response", 18535 "404": "GetTagsFromItem400Response", 18536 "429": "GetTagsFromItem400Response", 18537 } 18538 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18539 response_data.read() 18540 return self.api_client.response_deserialize( 18541 response_data=response_data, 18542 response_types_map=_response_types_map, 18543 ).data 18544 18545 def _update_tag_serialize( 18546 self, 18547 board_id, 18548 tag_id, 18549 tag_update_request, 18550 _request_auth, 18551 _content_type, 18552 _headers, 18553 _host_index, 18554 ) -> RequestSerialized: 18555 18556 _host = None 18557 18558 _collection_formats: Dict[str, str] = {} 18559 18560 _path_params: Dict[str, str] = {} 18561 _query_params: List[Tuple[str, str]] = [] 18562 _header_params: Dict[str, Optional[str]] = _headers or {} 18563 _form_params: List[Tuple[str, str]] = [] 18564 _files: Dict[str, str] = {} 18565 _body_params: Optional[bytes] = None 18566 18567 # process the path parameters 18568 if board_id is not None: 18569 _path_params["board_id"] = board_id 18570 if tag_id is not None: 18571 _path_params["tag_id"] = tag_id 18572 # process the query parameters 18573 # process the header parameters 18574 # process the form parameters 18575 # process the body parameter 18576 if tag_update_request is not None: 18577 _body_params = tag_update_request 18578 18579 # set the HTTP header `Accept` 18580 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18581 18582 # set the HTTP header `Content-Type` 18583 if _content_type: 18584 _header_params["Content-Type"] = _content_type 18585 else: 18586 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 18587 if _default_content_type is not None: 18588 _header_params["Content-Type"] = _default_content_type 18589 18590 # authentication setting 18591 _auth_settings: List[str] = [] 18592 18593 return self.api_client.param_serialize( 18594 method="PATCH", 18595 resource_path="/v2/boards/{board_id}/tags/{tag_id}", 18596 path_params=_path_params, 18597 query_params=_query_params, 18598 header_params=_header_params, 18599 body=_body_params, 18600 post_params=_form_params, 18601 files=_files, 18602 auth_settings=_auth_settings, 18603 collection_formats=_collection_formats, 18604 _host=_host, 18605 _request_auth=_request_auth, 18606 ) 18607 18608 @validate_call 18609 def create_text_item( 18610 self, 18611 board_id: Annotated[ 18612 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 18613 ], 18614 text_create_request: TextCreateRequest, 18615 _request_timeout: Union[ 18616 None, 18617 Annotated[StrictFloat, Field(gt=0)], 18618 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18619 ] = None, 18620 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18621 _content_type: Optional[StrictStr] = None, 18622 _headers: Optional[Dict[StrictStr, Any]] = None, 18623 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18624 ) -> TextItem: 18625 """Create text item 18626 18627 Adds a text item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 18628 18629 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 18630 :type board_id: str 18631 :param text_create_request: (required) 18632 :type text_create_request: TextCreateRequest 18633 :param _request_timeout: timeout setting for this request. If one 18634 number provided, it will be total request 18635 timeout. It can also be a pair (tuple) of 18636 (connection, read) timeouts. 18637 :type _request_timeout: int, tuple(int, int), optional 18638 :param _request_auth: set to override the auth_settings for an a single 18639 request; this effectively ignores the 18640 authentication in the spec for a single request. 18641 :type _request_auth: dict, optional 18642 :param _content_type: force content-type for the request. 18643 :type _content_type: str, Optional 18644 :param _headers: set to override the headers for a single 18645 request; this effectively ignores the headers 18646 in the spec for a single request. 18647 :type _headers: dict, optional 18648 :param _host_index: set to override the host_index for a single 18649 request; this effectively ignores the host_index 18650 in the spec for a single request. 18651 :type _host_index: int, optional 18652 :return: Returns the result object. 18653 """ # noqa: E501 18654 18655 _param = self._create_text_item_serialize( 18656 board_id=board_id, 18657 text_create_request=text_create_request, 18658 _request_auth=_request_auth, 18659 _content_type=_content_type, 18660 _headers=_headers, 18661 _host_index=_host_index, 18662 ) 18663 18664 _response_types_map: Dict[str, Optional[str]] = { 18665 "201": "TextItem", 18666 "400": None, 18667 "404": None, 18668 "429": None, 18669 } 18670 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18671 response_data.read() 18672 return self.api_client.response_deserialize( 18673 response_data=response_data, 18674 response_types_map=_response_types_map, 18675 ).data 18676 18677 def _create_text_item_serialize( 18678 self, 18679 board_id, 18680 text_create_request, 18681 _request_auth, 18682 _content_type, 18683 _headers, 18684 _host_index, 18685 ) -> RequestSerialized: 18686 18687 _host = None 18688 18689 _collection_formats: Dict[str, str] = {} 18690 18691 _path_params: Dict[str, str] = {} 18692 _query_params: List[Tuple[str, str]] = [] 18693 _header_params: Dict[str, Optional[str]] = _headers or {} 18694 _form_params: List[Tuple[str, str]] = [] 18695 _files: Dict[str, str] = {} 18696 _body_params: Optional[bytes] = None 18697 18698 # process the path parameters 18699 if board_id is not None: 18700 _path_params["board_id"] = board_id 18701 # process the query parameters 18702 # process the header parameters 18703 # process the form parameters 18704 # process the body parameter 18705 if text_create_request is not None: 18706 _body_params = text_create_request 18707 18708 # set the HTTP header `Accept` 18709 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18710 18711 # set the HTTP header `Content-Type` 18712 if _content_type: 18713 _header_params["Content-Type"] = _content_type 18714 else: 18715 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 18716 if _default_content_type is not None: 18717 _header_params["Content-Type"] = _default_content_type 18718 18719 # authentication setting 18720 _auth_settings: List[str] = [] 18721 18722 return self.api_client.param_serialize( 18723 method="POST", 18724 resource_path="/v2/boards/{board_id}/texts", 18725 path_params=_path_params, 18726 query_params=_query_params, 18727 header_params=_header_params, 18728 body=_body_params, 18729 post_params=_form_params, 18730 files=_files, 18731 auth_settings=_auth_settings, 18732 collection_formats=_collection_formats, 18733 _host=_host, 18734 _request_auth=_request_auth, 18735 ) 18736 18737 @validate_call 18738 def delete_text_item( 18739 self, 18740 board_id: Annotated[ 18741 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 18742 ], 18743 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 18744 _request_timeout: Union[ 18745 None, 18746 Annotated[StrictFloat, Field(gt=0)], 18747 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18748 ] = None, 18749 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18750 _content_type: Optional[StrictStr] = None, 18751 _headers: Optional[Dict[StrictStr, Any]] = None, 18752 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18753 ) -> object: 18754 """Delete text item 18755 18756 Deletes a text item from the board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 18757 18758 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 18759 :type board_id: str 18760 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 18761 :type item_id: str 18762 :param _request_timeout: timeout setting for this request. If one 18763 number provided, it will be total request 18764 timeout. It can also be a pair (tuple) of 18765 (connection, read) timeouts. 18766 :type _request_timeout: int, tuple(int, int), optional 18767 :param _request_auth: set to override the auth_settings for an a single 18768 request; this effectively ignores the 18769 authentication in the spec for a single request. 18770 :type _request_auth: dict, optional 18771 :param _content_type: force content-type for the request. 18772 :type _content_type: str, Optional 18773 :param _headers: set to override the headers for a single 18774 request; this effectively ignores the headers 18775 in the spec for a single request. 18776 :type _headers: dict, optional 18777 :param _host_index: set to override the host_index for a single 18778 request; this effectively ignores the host_index 18779 in the spec for a single request. 18780 :type _host_index: int, optional 18781 :return: Returns the result object. 18782 """ # noqa: E501 18783 18784 _param = self._delete_text_item_serialize( 18785 board_id=board_id, 18786 item_id=item_id, 18787 _request_auth=_request_auth, 18788 _content_type=_content_type, 18789 _headers=_headers, 18790 _host_index=_host_index, 18791 ) 18792 18793 _response_types_map: Dict[str, Optional[str]] = { 18794 "204": "object", 18795 "400": None, 18796 "404": None, 18797 "429": None, 18798 } 18799 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18800 response_data.read() 18801 return self.api_client.response_deserialize( 18802 response_data=response_data, 18803 response_types_map=_response_types_map, 18804 ).data 18805 18806 def _delete_text_item_serialize( 18807 self, 18808 board_id, 18809 item_id, 18810 _request_auth, 18811 _content_type, 18812 _headers, 18813 _host_index, 18814 ) -> RequestSerialized: 18815 18816 _host = None 18817 18818 _collection_formats: Dict[str, str] = {} 18819 18820 _path_params: Dict[str, str] = {} 18821 _query_params: List[Tuple[str, str]] = [] 18822 _header_params: Dict[str, Optional[str]] = _headers or {} 18823 _form_params: List[Tuple[str, str]] = [] 18824 _files: Dict[str, str] = {} 18825 _body_params: Optional[bytes] = None 18826 18827 # process the path parameters 18828 if board_id is not None: 18829 _path_params["board_id"] = board_id 18830 if item_id is not None: 18831 _path_params["item_id"] = item_id 18832 # process the query parameters 18833 # process the header parameters 18834 # process the form parameters 18835 # process the body parameter 18836 18837 # set the HTTP header `Accept` 18838 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18839 18840 # authentication setting 18841 _auth_settings: List[str] = [] 18842 18843 return self.api_client.param_serialize( 18844 method="DELETE", 18845 resource_path="/v2/boards/{board_id}/texts/{item_id}", 18846 path_params=_path_params, 18847 query_params=_query_params, 18848 header_params=_header_params, 18849 body=_body_params, 18850 post_params=_form_params, 18851 files=_files, 18852 auth_settings=_auth_settings, 18853 collection_formats=_collection_formats, 18854 _host=_host, 18855 _request_auth=_request_auth, 18856 ) 18857 18858 @validate_call 18859 def get_text_item( 18860 self, 18861 board_id: Annotated[ 18862 StrictStr, 18863 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 18864 ], 18865 item_id: Annotated[ 18866 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 18867 ], 18868 _request_timeout: Union[ 18869 None, 18870 Annotated[StrictFloat, Field(gt=0)], 18871 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18872 ] = None, 18873 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18874 _content_type: Optional[StrictStr] = None, 18875 _headers: Optional[Dict[StrictStr, Any]] = None, 18876 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18877 ) -> TextItem: 18878 """Get text item 18879 18880 Retrieves information for a specific text item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18881 18882 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 18883 :type board_id: str 18884 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 18885 :type item_id: str 18886 :param _request_timeout: timeout setting for this request. If one 18887 number provided, it will be total request 18888 timeout. It can also be a pair (tuple) of 18889 (connection, read) timeouts. 18890 :type _request_timeout: int, tuple(int, int), optional 18891 :param _request_auth: set to override the auth_settings for an a single 18892 request; this effectively ignores the 18893 authentication in the spec for a single request. 18894 :type _request_auth: dict, optional 18895 :param _content_type: force content-type for the request. 18896 :type _content_type: str, Optional 18897 :param _headers: set to override the headers for a single 18898 request; this effectively ignores the headers 18899 in the spec for a single request. 18900 :type _headers: dict, optional 18901 :param _host_index: set to override the host_index for a single 18902 request; this effectively ignores the host_index 18903 in the spec for a single request. 18904 :type _host_index: int, optional 18905 :return: Returns the result object. 18906 """ # noqa: E501 18907 18908 _param = self._get_text_item_serialize( 18909 board_id=board_id, 18910 item_id=item_id, 18911 _request_auth=_request_auth, 18912 _content_type=_content_type, 18913 _headers=_headers, 18914 _host_index=_host_index, 18915 ) 18916 18917 _response_types_map: Dict[str, Optional[str]] = { 18918 "200": "TextItem", 18919 "400": None, 18920 "404": None, 18921 "429": None, 18922 } 18923 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18924 response_data.read() 18925 return self.api_client.response_deserialize( 18926 response_data=response_data, 18927 response_types_map=_response_types_map, 18928 ).data 18929 18930 def _get_text_item_serialize( 18931 self, 18932 board_id, 18933 item_id, 18934 _request_auth, 18935 _content_type, 18936 _headers, 18937 _host_index, 18938 ) -> RequestSerialized: 18939 18940 _host = None 18941 18942 _collection_formats: Dict[str, str] = {} 18943 18944 _path_params: Dict[str, str] = {} 18945 _query_params: List[Tuple[str, str]] = [] 18946 _header_params: Dict[str, Optional[str]] = _headers or {} 18947 _form_params: List[Tuple[str, str]] = [] 18948 _files: Dict[str, str] = {} 18949 _body_params: Optional[bytes] = None 18950 18951 # process the path parameters 18952 if board_id is not None: 18953 _path_params["board_id"] = board_id 18954 if item_id is not None: 18955 _path_params["item_id"] = item_id 18956 # process the query parameters 18957 # process the header parameters 18958 # process the form parameters 18959 # process the body parameter 18960 18961 # set the HTTP header `Accept` 18962 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18963 18964 # authentication setting 18965 _auth_settings: List[str] = [] 18966 18967 return self.api_client.param_serialize( 18968 method="GET", 18969 resource_path="/v2/boards/{board_id}/texts/{item_id}", 18970 path_params=_path_params, 18971 query_params=_query_params, 18972 header_params=_header_params, 18973 body=_body_params, 18974 post_params=_form_params, 18975 files=_files, 18976 auth_settings=_auth_settings, 18977 collection_formats=_collection_formats, 18978 _host=_host, 18979 _request_auth=_request_auth, 18980 ) 18981 18982 @validate_call 18983 def update_text_item( 18984 self, 18985 board_id: Annotated[ 18986 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 18987 ], 18988 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 18989 text_update_request: TextUpdateRequest, 18990 _request_timeout: Union[ 18991 None, 18992 Annotated[StrictFloat, Field(gt=0)], 18993 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18994 ] = None, 18995 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18996 _content_type: Optional[StrictStr] = None, 18997 _headers: Optional[Dict[StrictStr, Any]] = None, 18998 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18999 ) -> TextItem: 19000 """Update text item 19001 19002 Updates a text item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 19003 19004 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 19005 :type board_id: str 19006 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 19007 :type item_id: str 19008 :param text_update_request: (required) 19009 :type text_update_request: TextUpdateRequest 19010 :param _request_timeout: timeout setting for this request. If one 19011 number provided, it will be total request 19012 timeout. It can also be a pair (tuple) of 19013 (connection, read) timeouts. 19014 :type _request_timeout: int, tuple(int, int), optional 19015 :param _request_auth: set to override the auth_settings for an a single 19016 request; this effectively ignores the 19017 authentication in the spec for a single request. 19018 :type _request_auth: dict, optional 19019 :param _content_type: force content-type for the request. 19020 :type _content_type: str, Optional 19021 :param _headers: set to override the headers for a single 19022 request; this effectively ignores the headers 19023 in the spec for a single request. 19024 :type _headers: dict, optional 19025 :param _host_index: set to override the host_index for a single 19026 request; this effectively ignores the host_index 19027 in the spec for a single request. 19028 :type _host_index: int, optional 19029 :return: Returns the result object. 19030 """ # noqa: E501 19031 19032 _param = self._update_text_item_serialize( 19033 board_id=board_id, 19034 item_id=item_id, 19035 text_update_request=text_update_request, 19036 _request_auth=_request_auth, 19037 _content_type=_content_type, 19038 _headers=_headers, 19039 _host_index=_host_index, 19040 ) 19041 19042 _response_types_map: Dict[str, Optional[str]] = { 19043 "200": "TextItem", 19044 "400": None, 19045 "404": None, 19046 "409": None, 19047 "429": None, 19048 } 19049 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19050 response_data.read() 19051 return self.api_client.response_deserialize( 19052 response_data=response_data, 19053 response_types_map=_response_types_map, 19054 ).data 19055 19056 def _update_text_item_serialize( 19057 self, 19058 board_id, 19059 item_id, 19060 text_update_request, 19061 _request_auth, 19062 _content_type, 19063 _headers, 19064 _host_index, 19065 ) -> RequestSerialized: 19066 19067 _host = None 19068 19069 _collection_formats: Dict[str, str] = {} 19070 19071 _path_params: Dict[str, str] = {} 19072 _query_params: List[Tuple[str, str]] = [] 19073 _header_params: Dict[str, Optional[str]] = _headers or {} 19074 _form_params: List[Tuple[str, str]] = [] 19075 _files: Dict[str, str] = {} 19076 _body_params: Optional[bytes] = None 19077 19078 # process the path parameters 19079 if board_id is not None: 19080 _path_params["board_id"] = board_id 19081 if item_id is not None: 19082 _path_params["item_id"] = item_id 19083 # process the query parameters 19084 # process the header parameters 19085 # process the form parameters 19086 # process the body parameter 19087 if text_update_request is not None: 19088 _body_params = text_update_request 19089 19090 # set the HTTP header `Accept` 19091 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 19092 19093 # set the HTTP header `Content-Type` 19094 if _content_type: 19095 _header_params["Content-Type"] = _content_type 19096 else: 19097 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 19098 if _default_content_type is not None: 19099 _header_params["Content-Type"] = _default_content_type 19100 19101 # authentication setting 19102 _auth_settings: List[str] = [] 19103 19104 return self.api_client.param_serialize( 19105 method="PATCH", 19106 resource_path="/v2/boards/{board_id}/texts/{item_id}", 19107 path_params=_path_params, 19108 query_params=_query_params, 19109 header_params=_header_params, 19110 body=_body_params, 19111 post_params=_form_params, 19112 files=_files, 19113 auth_settings=_auth_settings, 19114 collection_formats=_collection_formats, 19115 _host=_host, 19116 _request_auth=_request_auth, 19117 ) 19118 19119 @validate_call 19120 def revoke_token( 19121 self, 19122 access_token: Annotated[StrictStr, Field(description="Access token that you want to revoke")], 19123 _request_timeout: Union[ 19124 None, 19125 Annotated[StrictFloat, Field(gt=0)], 19126 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 19127 ] = None, 19128 _request_auth: Optional[Dict[StrictStr, Any]] = None, 19129 _content_type: Optional[StrictStr] = None, 19130 _headers: Optional[Dict[StrictStr, Any]] = None, 19131 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19132 ) -> None: 19133 """(Deprecated) Revoke token (v1) 19134 19135 <p><b>Please use the new revoke endpoint <code>/v2/oauth/revoke</code>. This endpoint is considered vulnerable and deprecated due to access token passed publicly in the URL.</b></p> Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user. 19136 19137 :param access_token: Access token that you want to revoke (required) 19138 :type access_token: str 19139 :param _request_timeout: timeout setting for this request. If one 19140 number provided, it will be total request 19141 timeout. It can also be a pair (tuple) of 19142 (connection, read) timeouts. 19143 :type _request_timeout: int, tuple(int, int), optional 19144 :param _request_auth: set to override the auth_settings for an a single 19145 request; this effectively ignores the 19146 authentication in the spec for a single request. 19147 :type _request_auth: dict, optional 19148 :param _content_type: force content-type for the request. 19149 :type _content_type: str, Optional 19150 :param _headers: set to override the headers for a single 19151 request; this effectively ignores the headers 19152 in the spec for a single request. 19153 :type _headers: dict, optional 19154 :param _host_index: set to override the host_index for a single 19155 request; this effectively ignores the host_index 19156 in the spec for a single request. 19157 :type _host_index: int, optional 19158 :return: Returns the result object. 19159 """ # noqa: E501 19160 warnings.warn("POST /v1/oauth/revoke is deprecated.", DeprecationWarning) 19161 19162 _param = self._revoke_token_serialize( 19163 access_token=access_token, 19164 _request_auth=_request_auth, 19165 _content_type=_content_type, 19166 _headers=_headers, 19167 _host_index=_host_index, 19168 ) 19169 19170 _response_types_map: Dict[str, Optional[str]] = { 19171 "204": None, 19172 "400": None, 19173 } 19174 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19175 response_data.read() 19176 return self.api_client.response_deserialize( 19177 response_data=response_data, 19178 response_types_map=_response_types_map, 19179 ).data 19180 19181 def _revoke_token_serialize( 19182 self, 19183 access_token, 19184 _request_auth, 19185 _content_type, 19186 _headers, 19187 _host_index, 19188 ) -> RequestSerialized: 19189 19190 _host = None 19191 19192 _collection_formats: Dict[str, str] = {} 19193 19194 _path_params: Dict[str, str] = {} 19195 _query_params: List[Tuple[str, str]] = [] 19196 _header_params: Dict[str, Optional[str]] = _headers or {} 19197 _form_params: List[Tuple[str, str]] = [] 19198 _files: Dict[str, str] = {} 19199 _body_params: Optional[bytes] = None 19200 19201 # process the path parameters 19202 # process the query parameters 19203 if access_token is not None: 19204 19205 _query_params.append(("access_token", access_token)) 19206 19207 # process the header parameters 19208 # process the form parameters 19209 # process the body parameter 19210 19211 # authentication setting 19212 _auth_settings: List[str] = [] 19213 19214 return self.api_client.param_serialize( 19215 method="POST", 19216 resource_path="/v1/oauth/revoke", 19217 path_params=_path_params, 19218 query_params=_query_params, 19219 header_params=_header_params, 19220 body=_body_params, 19221 post_params=_form_params, 19222 files=_files, 19223 auth_settings=_auth_settings, 19224 collection_formats=_collection_formats, 19225 _host=_host, 19226 _request_auth=_request_auth, 19227 ) 19228 19229 @validate_call 19230 def token_info( 19231 self, 19232 _request_timeout: Union[ 19233 None, 19234 Annotated[StrictFloat, Field(gt=0)], 19235 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 19236 ] = None, 19237 _request_auth: Optional[Dict[StrictStr, Any]] = None, 19238 _content_type: Optional[StrictStr] = None, 19239 _headers: Optional[Dict[StrictStr, Any]] = None, 19240 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19241 ) -> TokenInformation: 19242 """Get access token information 19243 19244 Get information about an access token, such as the token type, scopes, team, user, token creation date and time, and the user who created the token. 19245 19246 :param _request_timeout: timeout setting for this request. If one 19247 number provided, it will be total request 19248 timeout. It can also be a pair (tuple) of 19249 (connection, read) timeouts. 19250 :type _request_timeout: int, tuple(int, int), optional 19251 :param _request_auth: set to override the auth_settings for an a single 19252 request; this effectively ignores the 19253 authentication in the spec for a single request. 19254 :type _request_auth: dict, optional 19255 :param _content_type: force content-type for the request. 19256 :type _content_type: str, Optional 19257 :param _headers: set to override the headers for a single 19258 request; this effectively ignores the headers 19259 in the spec for a single request. 19260 :type _headers: dict, optional 19261 :param _host_index: set to override the host_index for a single 19262 request; this effectively ignores the host_index 19263 in the spec for a single request. 19264 :type _host_index: int, optional 19265 :return: Returns the result object. 19266 """ # noqa: E501 19267 19268 _param = self._token_info_serialize( 19269 _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index 19270 ) 19271 19272 _response_types_map: Dict[str, Optional[str]] = { 19273 "200": "TokenInformation", 19274 "400": None, 19275 } 19276 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19277 response_data.read() 19278 return self.api_client.response_deserialize( 19279 response_data=response_data, 19280 response_types_map=_response_types_map, 19281 ).data 19282 19283 def _token_info_serialize( 19284 self, 19285 _request_auth, 19286 _content_type, 19287 _headers, 19288 _host_index, 19289 ) -> RequestSerialized: 19290 19291 _host = None 19292 19293 _collection_formats: Dict[str, str] = {} 19294 19295 _path_params: Dict[str, str] = {} 19296 _query_params: List[Tuple[str, str]] = [] 19297 _header_params: Dict[str, Optional[str]] = _headers or {} 19298 _form_params: List[Tuple[str, str]] = [] 19299 _files: Dict[str, str] = {} 19300 _body_params: Optional[bytes] = None 19301 19302 # process the path parameters 19303 # process the query parameters 19304 # process the header parameters 19305 # process the form parameters 19306 # process the body parameter 19307 19308 # set the HTTP header `Accept` 19309 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 19310 19311 # authentication setting 19312 _auth_settings: List[str] = [] 19313 19314 return self.api_client.param_serialize( 19315 method="GET", 19316 resource_path="/v1/oauth-token", 19317 path_params=_path_params, 19318 query_params=_query_params, 19319 header_params=_header_params, 19320 body=_body_params, 19321 post_params=_form_params, 19322 files=_files, 19323 auth_settings=_auth_settings, 19324 collection_formats=_collection_formats, 19325 _host=_host, 19326 _request_auth=_request_auth, 19327 )
189class MiroApiEndpoints: 190 """NOTE: This class is auto generated by OpenAPI Generator 191 Ref: https://openapi-generator.tech 192 193 Do not edit the class manually. 194 """ 195 196 def __init__(self, api_client=None) -> None: 197 if api_client is None: 198 api_client = ApiClient.get_default() 199 self.api_client = api_client 200 201 @validate_call 202 def get_metrics( 203 self, 204 app_id: Annotated[StrictStr, Field(description="ID of the app to get metrics for.")], 205 start_date: Annotated[ 206 date, Field(description="Start date of the period in UTC format. For example, 2024-12-31.") 207 ], 208 end_date: Annotated[date, Field(description="End date of the period in UTC format. For example, 2024-12-31.")], 209 period: Annotated[Optional[StrictStr], Field(description="Group data by this time period.")] = None, 210 _request_timeout: Union[ 211 None, 212 Annotated[StrictFloat, Field(gt=0)], 213 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 214 ] = None, 215 _request_auth: Optional[Dict[StrictStr, Any]] = None, 216 _content_type: Optional[StrictStr] = None, 217 _headers: Optional[Dict[StrictStr, Any]] = None, 218 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 219 ) -> List[GetMetrics200ResponseInner]: 220 """Get app metrics 221 222 Returns a list of usage metrics for a specific app for a given time range, grouped by requested time period. This endpoint requires an app management API token. It can be generated in the <a href=\"https://developers.miro.com/?features=appMetricsToken#your-apps\">Your Apps</a> section of Developer Hub.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a><br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 223 224 :param app_id: ID of the app to get metrics for. (required) 225 :type app_id: str 226 :param start_date: Start date of the period in UTC format. For example, 2024-12-31. (required) 227 :type start_date: date 228 :param end_date: End date of the period in UTC format. For example, 2024-12-31. (required) 229 :type end_date: date 230 :param period: Group data by this time period. 231 :type period: str 232 :param _request_timeout: timeout setting for this request. If one 233 number provided, it will be total request 234 timeout. It can also be a pair (tuple) of 235 (connection, read) timeouts. 236 :type _request_timeout: int, tuple(int, int), optional 237 :param _request_auth: set to override the auth_settings for an a single 238 request; this effectively ignores the 239 authentication in the spec for a single request. 240 :type _request_auth: dict, optional 241 :param _content_type: force content-type for the request. 242 :type _content_type: str, Optional 243 :param _headers: set to override the headers for a single 244 request; this effectively ignores the headers 245 in the spec for a single request. 246 :type _headers: dict, optional 247 :param _host_index: set to override the host_index for a single 248 request; this effectively ignores the host_index 249 in the spec for a single request. 250 :type _host_index: int, optional 251 :return: Returns the result object. 252 """ # noqa: E501 253 254 _param = self._get_metrics_serialize( 255 app_id=app_id, 256 start_date=start_date, 257 end_date=end_date, 258 period=period, 259 _request_auth=_request_auth, 260 _content_type=_content_type, 261 _headers=_headers, 262 _host_index=_host_index, 263 ) 264 265 _response_types_map: Dict[str, Optional[str]] = { 266 "200": "List[GetMetrics200ResponseInner]", 267 "404": "GetMetrics404Response", 268 } 269 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 270 response_data.read() 271 return self.api_client.response_deserialize( 272 response_data=response_data, 273 response_types_map=_response_types_map, 274 ).data 275 276 def _get_metrics_serialize( 277 self, 278 app_id, 279 start_date, 280 end_date, 281 period, 282 _request_auth, 283 _content_type, 284 _headers, 285 _host_index, 286 ) -> RequestSerialized: 287 288 _host = None 289 290 _collection_formats: Dict[str, str] = {} 291 292 _path_params: Dict[str, str] = {} 293 _query_params: List[Tuple[str, str]] = [] 294 _header_params: Dict[str, Optional[str]] = _headers or {} 295 _form_params: List[Tuple[str, str]] = [] 296 _files: Dict[str, str] = {} 297 _body_params: Optional[bytes] = None 298 299 # process the path parameters 300 if app_id is not None: 301 _path_params["app_id"] = app_id 302 # process the query parameters 303 if start_date is not None: 304 if isinstance(start_date, date): 305 _query_params.append(("startDate", start_date.strftime(self.api_client.configuration.date_format))) 306 else: 307 _query_params.append(("startDate", start_date)) 308 309 if end_date is not None: 310 if isinstance(end_date, date): 311 _query_params.append(("endDate", end_date.strftime(self.api_client.configuration.date_format))) 312 else: 313 _query_params.append(("endDate", end_date)) 314 315 if period is not None: 316 317 _query_params.append(("period", period)) 318 319 # process the header parameters 320 # process the form parameters 321 # process the body parameter 322 323 # set the HTTP header `Accept` 324 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 325 326 # authentication setting 327 _auth_settings: List[str] = [] 328 329 return self.api_client.param_serialize( 330 method="GET", 331 resource_path="/v2-experimental/apps/{app_id}/metrics", 332 path_params=_path_params, 333 query_params=_query_params, 334 header_params=_header_params, 335 body=_body_params, 336 post_params=_form_params, 337 files=_files, 338 auth_settings=_auth_settings, 339 collection_formats=_collection_formats, 340 _host=_host, 341 _request_auth=_request_auth, 342 ) 343 344 @validate_call 345 def get_metrics_total( 346 self, 347 app_id: Annotated[StrictStr, Field(description="ID of the app to get total metrics for.")], 348 _request_timeout: Union[ 349 None, 350 Annotated[StrictFloat, Field(gt=0)], 351 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 352 ] = None, 353 _request_auth: Optional[Dict[StrictStr, Any]] = None, 354 _content_type: Optional[StrictStr] = None, 355 _headers: Optional[Dict[StrictStr, Any]] = None, 356 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 357 ) -> GetMetricsTotal200Response: 358 """Get total app metrics 359 360 Returns total usage metrics for a specific app since the app was created. This endpoint requires an app management API token. It can be generated in <a href=\"https://developers.miro.com/?features=appMetricsToken#your-apps\">your apps</a> section of Developer Hub.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a><br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 361 362 :param app_id: ID of the app to get total metrics for. (required) 363 :type app_id: str 364 :param _request_timeout: timeout setting for this request. If one 365 number provided, it will be total request 366 timeout. It can also be a pair (tuple) of 367 (connection, read) timeouts. 368 :type _request_timeout: int, tuple(int, int), optional 369 :param _request_auth: set to override the auth_settings for an a single 370 request; this effectively ignores the 371 authentication in the spec for a single request. 372 :type _request_auth: dict, optional 373 :param _content_type: force content-type for the request. 374 :type _content_type: str, Optional 375 :param _headers: set to override the headers for a single 376 request; this effectively ignores the headers 377 in the spec for a single request. 378 :type _headers: dict, optional 379 :param _host_index: set to override the host_index for a single 380 request; this effectively ignores the host_index 381 in the spec for a single request. 382 :type _host_index: int, optional 383 :return: Returns the result object. 384 """ # noqa: E501 385 386 _param = self._get_metrics_total_serialize( 387 app_id=app_id, 388 _request_auth=_request_auth, 389 _content_type=_content_type, 390 _headers=_headers, 391 _host_index=_host_index, 392 ) 393 394 _response_types_map: Dict[str, Optional[str]] = { 395 "200": "GetMetricsTotal200Response", 396 "404": "GetMetricsTotal404Response", 397 } 398 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 399 response_data.read() 400 return self.api_client.response_deserialize( 401 response_data=response_data, 402 response_types_map=_response_types_map, 403 ).data 404 405 def _get_metrics_total_serialize( 406 self, 407 app_id, 408 _request_auth, 409 _content_type, 410 _headers, 411 _host_index, 412 ) -> RequestSerialized: 413 414 _host = None 415 416 _collection_formats: Dict[str, str] = {} 417 418 _path_params: Dict[str, str] = {} 419 _query_params: List[Tuple[str, str]] = [] 420 _header_params: Dict[str, Optional[str]] = _headers or {} 421 _form_params: List[Tuple[str, str]] = [] 422 _files: Dict[str, str] = {} 423 _body_params: Optional[bytes] = None 424 425 # process the path parameters 426 if app_id is not None: 427 _path_params["app_id"] = app_id 428 # process the query parameters 429 # process the header parameters 430 # process the form parameters 431 # process the body parameter 432 433 # set the HTTP header `Accept` 434 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 435 436 # authentication setting 437 _auth_settings: List[str] = [] 438 439 return self.api_client.param_serialize( 440 method="GET", 441 resource_path="/v2-experimental/apps/{app_id}/metrics-total", 442 path_params=_path_params, 443 query_params=_query_params, 444 header_params=_header_params, 445 body=_body_params, 446 post_params=_form_params, 447 files=_files, 448 auth_settings=_auth_settings, 449 collection_formats=_collection_formats, 450 _host=_host, 451 _request_auth=_request_auth, 452 ) 453 454 @validate_call 455 def enterprise_get_audit_logs( 456 self, 457 created_after: Annotated[ 458 StrictStr, 459 Field( 460 description='Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-03-30T17:26:50.000Z` as the value for the `createdAfter` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC))." ' 461 ), 462 ], 463 created_before: Annotated[ 464 StrictStr, 465 Field( 466 description="Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-04-30T17:26:50.000Z` as the value for the `createdBefore` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 467 ), 468 ], 469 cursor: Annotated[ 470 Optional[StrictStr], 471 Field( 472 description="A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the appropriate cursor value returned in the response." 473 ), 474 ] = None, 475 limit: Annotated[ 476 Optional[StrictInt], 477 Field( 478 description="Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.<br>Default: `100` " 479 ), 480 ] = None, 481 sorting: Annotated[ 482 Optional[StrictStr], 483 Field( 484 description="Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log `createdAt` parameter).<br>Default: `ASC` " 485 ), 486 ] = None, 487 _request_timeout: Union[ 488 None, 489 Annotated[StrictFloat, Field(gt=0)], 490 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 491 ] = None, 492 _request_auth: Optional[Dict[StrictStr, Any]] = None, 493 _content_type: Optional[StrictStr] = None, 494 _headers: Optional[Dict[StrictStr, Any]] = None, 495 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 496 ) -> AuditPage: 497 """Get audit logs 498 499 Retrieves a page of audit events from the last 90 days. If you want to retrieve data that is older than 90 days, you can use the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/360017571434-Audit-logs#h_01J7EY4E0F67EFTRQ7BT688HW0\">CSV export feature</a>.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>auditlogs:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> 500 501 :param created_after: Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-03-30T17:26:50.000Z` as the value for the `createdAfter` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\" (required) 502 :type created_after: str 503 :param created_before: Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-04-30T17:26:50.000Z` as the value for the `createdBefore` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 504 :type created_before: str 505 :param cursor: A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the appropriate cursor value returned in the response. 506 :type cursor: str 507 :param limit: Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.<br>Default: `100` 508 :type limit: int 509 :param sorting: Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log `createdAt` parameter).<br>Default: `ASC` 510 :type sorting: str 511 :param _request_timeout: timeout setting for this request. If one 512 number provided, it will be total request 513 timeout. It can also be a pair (tuple) of 514 (connection, read) timeouts. 515 :type _request_timeout: int, tuple(int, int), optional 516 :param _request_auth: set to override the auth_settings for an a single 517 request; this effectively ignores the 518 authentication in the spec for a single request. 519 :type _request_auth: dict, optional 520 :param _content_type: force content-type for the request. 521 :type _content_type: str, Optional 522 :param _headers: set to override the headers for a single 523 request; this effectively ignores the headers 524 in the spec for a single request. 525 :type _headers: dict, optional 526 :param _host_index: set to override the host_index for a single 527 request; this effectively ignores the host_index 528 in the spec for a single request. 529 :type _host_index: int, optional 530 :return: Returns the result object. 531 """ # noqa: E501 532 533 _param = self._enterprise_get_audit_logs_serialize( 534 created_after=created_after, 535 created_before=created_before, 536 cursor=cursor, 537 limit=limit, 538 sorting=sorting, 539 _request_auth=_request_auth, 540 _content_type=_content_type, 541 _headers=_headers, 542 _host_index=_host_index, 543 ) 544 545 _response_types_map: Dict[str, Optional[str]] = { 546 "200": "AuditPage", 547 "400": None, 548 "401": None, 549 "403": None, 550 "404": None, 551 "409": None, 552 "429": None, 553 } 554 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 555 response_data.read() 556 return self.api_client.response_deserialize( 557 response_data=response_data, 558 response_types_map=_response_types_map, 559 ).data 560 561 def _enterprise_get_audit_logs_serialize( 562 self, 563 created_after, 564 created_before, 565 cursor, 566 limit, 567 sorting, 568 _request_auth, 569 _content_type, 570 _headers, 571 _host_index, 572 ) -> RequestSerialized: 573 574 _host = None 575 576 _collection_formats: Dict[str, str] = {} 577 578 _path_params: Dict[str, str] = {} 579 _query_params: List[Tuple[str, str]] = [] 580 _header_params: Dict[str, Optional[str]] = _headers or {} 581 _form_params: List[Tuple[str, str]] = [] 582 _files: Dict[str, str] = {} 583 _body_params: Optional[bytes] = None 584 585 # process the path parameters 586 # process the query parameters 587 if created_after is not None: 588 589 _query_params.append(("createdAfter", created_after)) 590 591 if created_before is not None: 592 593 _query_params.append(("createdBefore", created_before)) 594 595 if cursor is not None: 596 597 _query_params.append(("cursor", cursor)) 598 599 if limit is not None: 600 601 _query_params.append(("limit", limit)) 602 603 if sorting is not None: 604 605 _query_params.append(("sorting", sorting)) 606 607 # process the header parameters 608 # process the form parameters 609 # process the body parameter 610 611 # set the HTTP header `Accept` 612 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 613 614 # authentication setting 615 _auth_settings: List[str] = [] 616 617 return self.api_client.param_serialize( 618 method="GET", 619 resource_path="/v2/audit/logs", 620 path_params=_path_params, 621 query_params=_query_params, 622 header_params=_header_params, 623 body=_body_params, 624 post_params=_form_params, 625 files=_files, 626 auth_settings=_auth_settings, 627 collection_formats=_collection_formats, 628 _host=_host, 629 _request_auth=_request_auth, 630 ) 631 632 @validate_call 633 def enterprise_board_content_item_logs_fetch( 634 self, 635 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 636 var_from: Annotated[ 637 datetime, 638 Field( 639 description="Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 640 ), 641 ], 642 to: Annotated[ 643 datetime, 644 Field( 645 description="Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 646 ), 647 ], 648 board_ids: Annotated[ 649 Optional[Annotated[List[StrictStr], Field(max_length=15)]], 650 Field(description="List of board IDs for which you want to retrieve the content logs."), 651 ] = None, 652 emails: Annotated[ 653 Optional[Annotated[List[StrictStr], Field(max_length=15)]], 654 Field( 655 description="Filter content logs based on the list of emails of users who created, modified, or deleted the board item." 656 ), 657 ] = None, 658 cursor: Annotated[ 659 Optional[StrictStr], 660 Field( 661 description="A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request. " 662 ), 663 ] = None, 664 limit: Annotated[ 665 Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], 666 Field( 667 description="The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value. " 668 ), 669 ] = None, 670 sorting: Annotated[ 671 Optional[StrictStr], 672 Field( 673 description="Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify `asc`. To sort by a descending modified date, specify `desc`. " 674 ), 675 ] = None, 676 _request_timeout: Union[ 677 None, 678 Annotated[StrictFloat, Field(gt=0)], 679 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 680 ] = None, 681 _request_auth: Optional[Dict[StrictStr, Any]] = None, 682 _content_type: Optional[StrictStr] = None, 683 _headers: Optional[Dict[StrictStr, Any]] = None, 684 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 685 ) -> GetBoardItemContentLogsResponse: 686 """Retrieve content change logs of board items 687 688 Retrieves content changes for board items within your organization. Content changes are actions that users can perform on board items, such as updating a sticky note's text. You can retrieve results for a specific time period. You can also filter results based on the board IDs and the emails of users who created, modified, or deleted a board item. Additionally, results can be paginated for easier viewing and processing. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>contentlogs:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin.</p> 689 690 :param org_id: Unique identifier of the organization. (required) 691 :type org_id: str 692 :param var_from: Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 693 :type var_from: datetime 694 :param to: Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 695 :type to: datetime 696 :param board_ids: List of board IDs for which you want to retrieve the content logs. 697 :type board_ids: List[str] 698 :param emails: Filter content logs based on the list of emails of users who created, modified, or deleted the board item. 699 :type emails: List[str] 700 :param cursor: A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request. 701 :type cursor: str 702 :param limit: The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value. 703 :type limit: int 704 :param sorting: Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify `asc`. To sort by a descending modified date, specify `desc`. 705 :type sorting: str 706 :param _request_timeout: timeout setting for this request. If one 707 number provided, it will be total request 708 timeout. It can also be a pair (tuple) of 709 (connection, read) timeouts. 710 :type _request_timeout: int, tuple(int, int), optional 711 :param _request_auth: set to override the auth_settings for an a single 712 request; this effectively ignores the 713 authentication in the spec for a single request. 714 :type _request_auth: dict, optional 715 :param _content_type: force content-type for the request. 716 :type _content_type: str, Optional 717 :param _headers: set to override the headers for a single 718 request; this effectively ignores the headers 719 in the spec for a single request. 720 :type _headers: dict, optional 721 :param _host_index: set to override the host_index for a single 722 request; this effectively ignores the host_index 723 in the spec for a single request. 724 :type _host_index: int, optional 725 :return: Returns the result object. 726 """ # noqa: E501 727 728 _param = self._enterprise_board_content_item_logs_fetch_serialize( 729 org_id=org_id, 730 var_from=var_from, 731 to=to, 732 board_ids=board_ids, 733 emails=emails, 734 cursor=cursor, 735 limit=limit, 736 sorting=sorting, 737 _request_auth=_request_auth, 738 _content_type=_content_type, 739 _headers=_headers, 740 _host_index=_host_index, 741 ) 742 743 _response_types_map: Dict[str, Optional[str]] = { 744 "200": "GetBoardItemContentLogsResponse", 745 "400": None, 746 "401": None, 747 "403": None, 748 "404": None, 749 "429": None, 750 } 751 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 752 response_data.read() 753 return self.api_client.response_deserialize( 754 response_data=response_data, 755 response_types_map=_response_types_map, 756 ).data 757 758 def _enterprise_board_content_item_logs_fetch_serialize( 759 self, 760 org_id, 761 var_from, 762 to, 763 board_ids, 764 emails, 765 cursor, 766 limit, 767 sorting, 768 _request_auth, 769 _content_type, 770 _headers, 771 _host_index, 772 ) -> RequestSerialized: 773 774 _host = None 775 776 _collection_formats: Dict[str, str] = { 777 "board_ids": "multi", 778 "emails": "multi", 779 } 780 781 _path_params: Dict[str, str] = {} 782 _query_params: List[Tuple[str, str]] = [] 783 _header_params: Dict[str, Optional[str]] = _headers or {} 784 _form_params: List[Tuple[str, str]] = [] 785 _files: Dict[str, str] = {} 786 _body_params: Optional[bytes] = None 787 788 # process the path parameters 789 if org_id is not None: 790 _path_params["org_id"] = org_id 791 # process the query parameters 792 if board_ids is not None: 793 794 _query_params.append(("board_ids", board_ids)) 795 796 if emails is not None: 797 798 _query_params.append(("emails", emails)) 799 800 if var_from is not None: 801 if isinstance(var_from, datetime): 802 _query_params.append(("from", var_from.strftime(self.api_client.configuration.datetime_format))) 803 else: 804 _query_params.append(("from", var_from)) 805 806 if to is not None: 807 if isinstance(to, datetime): 808 _query_params.append(("to", to.strftime(self.api_client.configuration.datetime_format))) 809 else: 810 _query_params.append(("to", to)) 811 812 if cursor is not None: 813 814 _query_params.append(("cursor", cursor)) 815 816 if limit is not None: 817 818 _query_params.append(("limit", limit)) 819 820 if sorting is not None: 821 822 _query_params.append(("sorting", sorting)) 823 824 # process the header parameters 825 # process the form parameters 826 # process the body parameter 827 828 # set the HTTP header `Accept` 829 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 830 831 # authentication setting 832 _auth_settings: List[str] = [] 833 834 return self.api_client.param_serialize( 835 method="GET", 836 resource_path="/v2/orgs/{org_id}/content-logs/items", 837 path_params=_path_params, 838 query_params=_query_params, 839 header_params=_header_params, 840 body=_body_params, 841 post_params=_form_params, 842 files=_files, 843 auth_settings=_auth_settings, 844 collection_formats=_collection_formats, 845 _host=_host, 846 _request_auth=_request_auth, 847 ) 848 849 @validate_call 850 def enterprise_board_export_job_results( 851 self, 852 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 853 job_id: Annotated[StrictStr, Field(description="Unique identifier of the job.")], 854 _request_timeout: Union[ 855 None, 856 Annotated[StrictFloat, Field(gt=0)], 857 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 858 ] = None, 859 _request_auth: Optional[Dict[StrictStr, Any]] = None, 860 _content_type: Optional[StrictStr] = None, 861 _headers: Optional[Dict[StrictStr, Any]] = None, 862 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 863 ) -> BoardExportResult: 864 """Get results for board export job 865 866 Retrieves the result of the board export job. The response provides more information about the board export job, such as the S3 link to the files created.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 867 868 :param org_id: Unique identifier of the organization. (required) 869 :type org_id: str 870 :param job_id: Unique identifier of the job. (required) 871 :type job_id: str 872 :param _request_timeout: timeout setting for this request. If one 873 number provided, it will be total request 874 timeout. It can also be a pair (tuple) of 875 (connection, read) timeouts. 876 :type _request_timeout: int, tuple(int, int), optional 877 :param _request_auth: set to override the auth_settings for an a single 878 request; this effectively ignores the 879 authentication in the spec for a single request. 880 :type _request_auth: dict, optional 881 :param _content_type: force content-type for the request. 882 :type _content_type: str, Optional 883 :param _headers: set to override the headers for a single 884 request; this effectively ignores the headers 885 in the spec for a single request. 886 :type _headers: dict, optional 887 :param _host_index: set to override the host_index for a single 888 request; this effectively ignores the host_index 889 in the spec for a single request. 890 :type _host_index: int, optional 891 :return: Returns the result object. 892 """ # noqa: E501 893 894 _param = self._enterprise_board_export_job_results_serialize( 895 org_id=org_id, 896 job_id=job_id, 897 _request_auth=_request_auth, 898 _content_type=_content_type, 899 _headers=_headers, 900 _host_index=_host_index, 901 ) 902 903 _response_types_map: Dict[str, Optional[str]] = { 904 "200": "BoardExportResult", 905 "400": None, 906 "401": None, 907 "403": None, 908 "404": None, 909 "429": None, 910 } 911 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 912 response_data.read() 913 return self.api_client.response_deserialize( 914 response_data=response_data, 915 response_types_map=_response_types_map, 916 ).data 917 918 def _enterprise_board_export_job_results_serialize( 919 self, 920 org_id, 921 job_id, 922 _request_auth, 923 _content_type, 924 _headers, 925 _host_index, 926 ) -> RequestSerialized: 927 928 _host = None 929 930 _collection_formats: Dict[str, str] = {} 931 932 _path_params: Dict[str, str] = {} 933 _query_params: List[Tuple[str, str]] = [] 934 _header_params: Dict[str, Optional[str]] = _headers or {} 935 _form_params: List[Tuple[str, str]] = [] 936 _files: Dict[str, str] = {} 937 _body_params: Optional[bytes] = None 938 939 # process the path parameters 940 if org_id is not None: 941 _path_params["org_id"] = org_id 942 if job_id is not None: 943 _path_params["job_id"] = job_id 944 # process the query parameters 945 # process the header parameters 946 # process the form parameters 947 # process the body parameter 948 949 # set the HTTP header `Accept` 950 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 951 952 # authentication setting 953 _auth_settings: List[str] = [] 954 955 return self.api_client.param_serialize( 956 method="GET", 957 resource_path="/v2/orgs/{org_id}/boards/export/jobs/{job_id}/results", 958 path_params=_path_params, 959 query_params=_query_params, 960 header_params=_header_params, 961 body=_body_params, 962 post_params=_form_params, 963 files=_files, 964 auth_settings=_auth_settings, 965 collection_formats=_collection_formats, 966 _host=_host, 967 _request_auth=_request_auth, 968 ) 969 970 @validate_call 971 def enterprise_board_export_job_status( 972 self, 973 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 974 job_id: Annotated[StrictStr, Field(description="Unique identifier of the board export job.")], 975 _request_timeout: Union[ 976 None, 977 Annotated[StrictFloat, Field(gt=0)], 978 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 979 ] = None, 980 _request_auth: Optional[Dict[StrictStr, Any]] = None, 981 _content_type: Optional[StrictStr] = None, 982 _headers: Optional[Dict[StrictStr, Any]] = None, 983 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 984 ) -> BoardExportJobStatus: 985 """Get board export job status 986 987 Retrieves the status of the board export job.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 988 989 :param org_id: Unique identifier of the organization. (required) 990 :type org_id: str 991 :param job_id: Unique identifier of the board export job. (required) 992 :type job_id: str 993 :param _request_timeout: timeout setting for this request. If one 994 number provided, it will be total request 995 timeout. It can also be a pair (tuple) of 996 (connection, read) timeouts. 997 :type _request_timeout: int, tuple(int, int), optional 998 :param _request_auth: set to override the auth_settings for an a single 999 request; this effectively ignores the 1000 authentication in the spec for a single request. 1001 :type _request_auth: dict, optional 1002 :param _content_type: force content-type for the request. 1003 :type _content_type: str, Optional 1004 :param _headers: set to override the headers for a single 1005 request; this effectively ignores the headers 1006 in the spec for a single request. 1007 :type _headers: dict, optional 1008 :param _host_index: set to override the host_index for a single 1009 request; this effectively ignores the host_index 1010 in the spec for a single request. 1011 :type _host_index: int, optional 1012 :return: Returns the result object. 1013 """ # noqa: E501 1014 1015 _param = self._enterprise_board_export_job_status_serialize( 1016 org_id=org_id, 1017 job_id=job_id, 1018 _request_auth=_request_auth, 1019 _content_type=_content_type, 1020 _headers=_headers, 1021 _host_index=_host_index, 1022 ) 1023 1024 _response_types_map: Dict[str, Optional[str]] = { 1025 "200": "BoardExportJobStatus", 1026 "400": None, 1027 "401": None, 1028 "403": None, 1029 "404": None, 1030 "429": None, 1031 } 1032 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1033 response_data.read() 1034 return self.api_client.response_deserialize( 1035 response_data=response_data, 1036 response_types_map=_response_types_map, 1037 ).data 1038 1039 def _enterprise_board_export_job_status_serialize( 1040 self, 1041 org_id, 1042 job_id, 1043 _request_auth, 1044 _content_type, 1045 _headers, 1046 _host_index, 1047 ) -> RequestSerialized: 1048 1049 _host = None 1050 1051 _collection_formats: Dict[str, str] = {} 1052 1053 _path_params: Dict[str, str] = {} 1054 _query_params: List[Tuple[str, str]] = [] 1055 _header_params: Dict[str, Optional[str]] = _headers or {} 1056 _form_params: List[Tuple[str, str]] = [] 1057 _files: Dict[str, str] = {} 1058 _body_params: Optional[bytes] = None 1059 1060 # process the path parameters 1061 if org_id is not None: 1062 _path_params["org_id"] = org_id 1063 if job_id is not None: 1064 _path_params["job_id"] = job_id 1065 # process the query parameters 1066 # process the header parameters 1067 # process the form parameters 1068 # process the body parameter 1069 1070 # set the HTTP header `Accept` 1071 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1072 1073 # authentication setting 1074 _auth_settings: List[str] = [] 1075 1076 return self.api_client.param_serialize( 1077 method="GET", 1078 resource_path="/v2/orgs/{org_id}/boards/export/jobs/{job_id}", 1079 path_params=_path_params, 1080 query_params=_query_params, 1081 header_params=_header_params, 1082 body=_body_params, 1083 post_params=_form_params, 1084 files=_files, 1085 auth_settings=_auth_settings, 1086 collection_formats=_collection_formats, 1087 _host=_host, 1088 _request_auth=_request_auth, 1089 ) 1090 1091 @validate_call 1092 def enterprise_create_board_export( 1093 self, 1094 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 1095 request_id: Annotated[StrictStr, Field(description="Unique identifier of the board export job.")], 1096 create_board_export_request: CreateBoardExportRequest, 1097 _request_timeout: Union[ 1098 None, 1099 Annotated[StrictFloat, Field(gt=0)], 1100 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1101 ] = None, 1102 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1103 _content_type: Optional[StrictStr] = None, 1104 _headers: Optional[Dict[StrictStr, Any]] = None, 1105 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1106 ) -> BoardExportJobId: 1107 """Create board export job 1108 1109 Creates an export job for one or more boards.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1110 1111 :param org_id: Unique identifier of the organization. (required) 1112 :type org_id: str 1113 :param request_id: Unique identifier of the board export job. (required) 1114 :type request_id: str 1115 :param create_board_export_request: (required) 1116 :type create_board_export_request: CreateBoardExportRequest 1117 :param _request_timeout: timeout setting for this request. If one 1118 number provided, it will be total request 1119 timeout. It can also be a pair (tuple) of 1120 (connection, read) timeouts. 1121 :type _request_timeout: int, tuple(int, int), optional 1122 :param _request_auth: set to override the auth_settings for an a single 1123 request; this effectively ignores the 1124 authentication in the spec for a single request. 1125 :type _request_auth: dict, optional 1126 :param _content_type: force content-type for the request. 1127 :type _content_type: str, Optional 1128 :param _headers: set to override the headers for a single 1129 request; this effectively ignores the headers 1130 in the spec for a single request. 1131 :type _headers: dict, optional 1132 :param _host_index: set to override the host_index for a single 1133 request; this effectively ignores the host_index 1134 in the spec for a single request. 1135 :type _host_index: int, optional 1136 :return: Returns the result object. 1137 """ # noqa: E501 1138 1139 _param = self._enterprise_create_board_export_serialize( 1140 org_id=org_id, 1141 request_id=request_id, 1142 create_board_export_request=create_board_export_request, 1143 _request_auth=_request_auth, 1144 _content_type=_content_type, 1145 _headers=_headers, 1146 _host_index=_host_index, 1147 ) 1148 1149 _response_types_map: Dict[str, Optional[str]] = { 1150 "200": "BoardExportJobId", 1151 "400": None, 1152 "401": None, 1153 "403": None, 1154 "404": None, 1155 "429": None, 1156 } 1157 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1158 response_data.read() 1159 return self.api_client.response_deserialize( 1160 response_data=response_data, 1161 response_types_map=_response_types_map, 1162 ).data 1163 1164 def _enterprise_create_board_export_serialize( 1165 self, 1166 org_id, 1167 request_id, 1168 create_board_export_request, 1169 _request_auth, 1170 _content_type, 1171 _headers, 1172 _host_index, 1173 ) -> RequestSerialized: 1174 1175 _host = None 1176 1177 _collection_formats: Dict[str, str] = {} 1178 1179 _path_params: Dict[str, str] = {} 1180 _query_params: List[Tuple[str, str]] = [] 1181 _header_params: Dict[str, Optional[str]] = _headers or {} 1182 _form_params: List[Tuple[str, str]] = [] 1183 _files: Dict[str, str] = {} 1184 _body_params: Optional[bytes] = None 1185 1186 # process the path parameters 1187 if org_id is not None: 1188 _path_params["org_id"] = org_id 1189 # process the query parameters 1190 if request_id is not None: 1191 1192 _query_params.append(("request_id", request_id)) 1193 1194 # process the header parameters 1195 # process the form parameters 1196 # process the body parameter 1197 if create_board_export_request is not None: 1198 _body_params = create_board_export_request 1199 1200 # set the HTTP header `Accept` 1201 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1202 1203 # set the HTTP header `Content-Type` 1204 if _content_type: 1205 _header_params["Content-Type"] = _content_type 1206 else: 1207 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1208 if _default_content_type is not None: 1209 _header_params["Content-Type"] = _default_content_type 1210 1211 # authentication setting 1212 _auth_settings: List[str] = [] 1213 1214 return self.api_client.param_serialize( 1215 method="POST", 1216 resource_path="/v2/orgs/{org_id}/boards/export/jobs", 1217 path_params=_path_params, 1218 query_params=_query_params, 1219 header_params=_header_params, 1220 body=_body_params, 1221 post_params=_form_params, 1222 files=_files, 1223 auth_settings=_auth_settings, 1224 collection_formats=_collection_formats, 1225 _host=_host, 1226 _request_auth=_request_auth, 1227 ) 1228 1229 @validate_call 1230 def enterprise_dataclassification_board_get( 1231 self, 1232 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1233 team_id: Annotated[StrictStr, Field(description="id of the team")], 1234 board_id: Annotated[StrictStr, Field(description="Unique identifier of the board that you want to retrieve.")], 1235 _request_timeout: Union[ 1236 None, 1237 Annotated[StrictFloat, Field(gt=0)], 1238 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1239 ] = None, 1240 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1241 _content_type: Optional[StrictStr] = None, 1242 _headers: Optional[Dict[StrictStr, Any]] = None, 1243 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1244 ) -> BoardDataClassificationLabel: 1245 """Get board classification 1246 1247 Retrieves board classification for a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1248 1249 :param org_id: id of the organization (required) 1250 :type org_id: str 1251 :param team_id: id of the team (required) 1252 :type team_id: str 1253 :param board_id: Unique identifier of the board that you want to retrieve. (required) 1254 :type board_id: str 1255 :param _request_timeout: timeout setting for this request. If one 1256 number provided, it will be total request 1257 timeout. It can also be a pair (tuple) of 1258 (connection, read) timeouts. 1259 :type _request_timeout: int, tuple(int, int), optional 1260 :param _request_auth: set to override the auth_settings for an a single 1261 request; this effectively ignores the 1262 authentication in the spec for a single request. 1263 :type _request_auth: dict, optional 1264 :param _content_type: force content-type for the request. 1265 :type _content_type: str, Optional 1266 :param _headers: set to override the headers for a single 1267 request; this effectively ignores the headers 1268 in the spec for a single request. 1269 :type _headers: dict, optional 1270 :param _host_index: set to override the host_index for a single 1271 request; this effectively ignores the host_index 1272 in the spec for a single request. 1273 :type _host_index: int, optional 1274 :return: Returns the result object. 1275 """ # noqa: E501 1276 1277 _param = self._enterprise_dataclassification_board_get_serialize( 1278 org_id=org_id, 1279 team_id=team_id, 1280 board_id=board_id, 1281 _request_auth=_request_auth, 1282 _content_type=_content_type, 1283 _headers=_headers, 1284 _host_index=_host_index, 1285 ) 1286 1287 _response_types_map: Dict[str, Optional[str]] = { 1288 "200": "BoardDataClassificationLabel", 1289 "400": None, 1290 "401": None, 1291 "403": None, 1292 "404": None, 1293 "429": None, 1294 } 1295 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1296 response_data.read() 1297 return self.api_client.response_deserialize( 1298 response_data=response_data, 1299 response_types_map=_response_types_map, 1300 ).data 1301 1302 def _enterprise_dataclassification_board_get_serialize( 1303 self, 1304 org_id, 1305 team_id, 1306 board_id, 1307 _request_auth, 1308 _content_type, 1309 _headers, 1310 _host_index, 1311 ) -> RequestSerialized: 1312 1313 _host = None 1314 1315 _collection_formats: Dict[str, str] = {} 1316 1317 _path_params: Dict[str, str] = {} 1318 _query_params: List[Tuple[str, str]] = [] 1319 _header_params: Dict[str, Optional[str]] = _headers or {} 1320 _form_params: List[Tuple[str, str]] = [] 1321 _files: Dict[str, str] = {} 1322 _body_params: Optional[bytes] = None 1323 1324 # process the path parameters 1325 if org_id is not None: 1326 _path_params["org_id"] = org_id 1327 if team_id is not None: 1328 _path_params["team_id"] = team_id 1329 if board_id is not None: 1330 _path_params["board_id"] = board_id 1331 # process the query parameters 1332 # process the header parameters 1333 # process the form parameters 1334 # process the body parameter 1335 1336 # set the HTTP header `Accept` 1337 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1338 1339 # authentication setting 1340 _auth_settings: List[str] = [] 1341 1342 return self.api_client.param_serialize( 1343 method="GET", 1344 resource_path="/v2/orgs/{org_id}/teams/{team_id}/boards/{board_id}/data-classification", 1345 path_params=_path_params, 1346 query_params=_query_params, 1347 header_params=_header_params, 1348 body=_body_params, 1349 post_params=_form_params, 1350 files=_files, 1351 auth_settings=_auth_settings, 1352 collection_formats=_collection_formats, 1353 _host=_host, 1354 _request_auth=_request_auth, 1355 ) 1356 1357 @validate_call 1358 def enterprise_dataclassification_board_set( 1359 self, 1360 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1361 team_id: Annotated[StrictStr, Field(description="id of the team")], 1362 board_id: Annotated[StrictStr, Field(description="Unique identifier of the board that you want to update.")], 1363 data_classification_label_id: DataClassificationLabelId, 1364 _request_timeout: Union[ 1365 None, 1366 Annotated[StrictFloat, Field(gt=0)], 1367 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1368 ] = None, 1369 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1370 _content_type: Optional[StrictStr] = None, 1371 _headers: Optional[Dict[StrictStr, Any]] = None, 1372 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1373 ) -> BoardDataClassificationLabel: 1374 """Update board classification 1375 1376 Updates board classification for an existing board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1377 1378 :param org_id: id of the organization (required) 1379 :type org_id: str 1380 :param team_id: id of the team (required) 1381 :type team_id: str 1382 :param board_id: Unique identifier of the board that you want to update. (required) 1383 :type board_id: str 1384 :param data_classification_label_id: (required) 1385 :type data_classification_label_id: DataClassificationLabelId 1386 :param _request_timeout: timeout setting for this request. If one 1387 number provided, it will be total request 1388 timeout. It can also be a pair (tuple) of 1389 (connection, read) timeouts. 1390 :type _request_timeout: int, tuple(int, int), optional 1391 :param _request_auth: set to override the auth_settings for an a single 1392 request; this effectively ignores the 1393 authentication in the spec for a single request. 1394 :type _request_auth: dict, optional 1395 :param _content_type: force content-type for the request. 1396 :type _content_type: str, Optional 1397 :param _headers: set to override the headers for a single 1398 request; this effectively ignores the headers 1399 in the spec for a single request. 1400 :type _headers: dict, optional 1401 :param _host_index: set to override the host_index for a single 1402 request; this effectively ignores the host_index 1403 in the spec for a single request. 1404 :type _host_index: int, optional 1405 :return: Returns the result object. 1406 """ # noqa: E501 1407 1408 _param = self._enterprise_dataclassification_board_set_serialize( 1409 org_id=org_id, 1410 team_id=team_id, 1411 board_id=board_id, 1412 data_classification_label_id=data_classification_label_id, 1413 _request_auth=_request_auth, 1414 _content_type=_content_type, 1415 _headers=_headers, 1416 _host_index=_host_index, 1417 ) 1418 1419 _response_types_map: Dict[str, Optional[str]] = { 1420 "200": "BoardDataClassificationLabel", 1421 "400": None, 1422 "401": None, 1423 "403": None, 1424 "404": None, 1425 "429": None, 1426 } 1427 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1428 response_data.read() 1429 return self.api_client.response_deserialize( 1430 response_data=response_data, 1431 response_types_map=_response_types_map, 1432 ).data 1433 1434 def _enterprise_dataclassification_board_set_serialize( 1435 self, 1436 org_id, 1437 team_id, 1438 board_id, 1439 data_classification_label_id, 1440 _request_auth, 1441 _content_type, 1442 _headers, 1443 _host_index, 1444 ) -> RequestSerialized: 1445 1446 _host = None 1447 1448 _collection_formats: Dict[str, str] = {} 1449 1450 _path_params: Dict[str, str] = {} 1451 _query_params: List[Tuple[str, str]] = [] 1452 _header_params: Dict[str, Optional[str]] = _headers or {} 1453 _form_params: List[Tuple[str, str]] = [] 1454 _files: Dict[str, str] = {} 1455 _body_params: Optional[bytes] = None 1456 1457 # process the path parameters 1458 if org_id is not None: 1459 _path_params["org_id"] = org_id 1460 if team_id is not None: 1461 _path_params["team_id"] = team_id 1462 if board_id is not None: 1463 _path_params["board_id"] = board_id 1464 # process the query parameters 1465 # process the header parameters 1466 # process the form parameters 1467 # process the body parameter 1468 if data_classification_label_id is not None: 1469 _body_params = data_classification_label_id 1470 1471 # set the HTTP header `Accept` 1472 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1473 1474 # set the HTTP header `Content-Type` 1475 if _content_type: 1476 _header_params["Content-Type"] = _content_type 1477 else: 1478 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1479 if _default_content_type is not None: 1480 _header_params["Content-Type"] = _default_content_type 1481 1482 # authentication setting 1483 _auth_settings: List[str] = [] 1484 1485 return self.api_client.param_serialize( 1486 method="POST", 1487 resource_path="/v2/orgs/{org_id}/teams/{team_id}/boards/{board_id}/data-classification", 1488 path_params=_path_params, 1489 query_params=_query_params, 1490 header_params=_header_params, 1491 body=_body_params, 1492 post_params=_form_params, 1493 files=_files, 1494 auth_settings=_auth_settings, 1495 collection_formats=_collection_formats, 1496 _host=_host, 1497 _request_auth=_request_auth, 1498 ) 1499 1500 @validate_call 1501 def enterprise_dataclassification_organization_settings_get( 1502 self, 1503 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1504 _request_timeout: Union[ 1505 None, 1506 Annotated[StrictFloat, Field(gt=0)], 1507 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1508 ] = None, 1509 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1510 _content_type: Optional[StrictStr] = None, 1511 _headers: Optional[Dict[StrictStr, Any]] = None, 1512 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1513 ) -> DataClassificationOrganizationSettings: 1514 """Get organization settings 1515 1516 Retrieves board classification settings for an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1517 1518 :param org_id: id of the organization (required) 1519 :type org_id: str 1520 :param _request_timeout: timeout setting for this request. If one 1521 number provided, it will be total request 1522 timeout. It can also be a pair (tuple) of 1523 (connection, read) timeouts. 1524 :type _request_timeout: int, tuple(int, int), optional 1525 :param _request_auth: set to override the auth_settings for an a single 1526 request; this effectively ignores the 1527 authentication in the spec for a single request. 1528 :type _request_auth: dict, optional 1529 :param _content_type: force content-type for the request. 1530 :type _content_type: str, Optional 1531 :param _headers: set to override the headers for a single 1532 request; this effectively ignores the headers 1533 in the spec for a single request. 1534 :type _headers: dict, optional 1535 :param _host_index: set to override the host_index for a single 1536 request; this effectively ignores the host_index 1537 in the spec for a single request. 1538 :type _host_index: int, optional 1539 :return: Returns the result object. 1540 """ # noqa: E501 1541 1542 _param = self._enterprise_dataclassification_organization_settings_get_serialize( 1543 org_id=org_id, 1544 _request_auth=_request_auth, 1545 _content_type=_content_type, 1546 _headers=_headers, 1547 _host_index=_host_index, 1548 ) 1549 1550 _response_types_map: Dict[str, Optional[str]] = { 1551 "200": "DataClassificationOrganizationSettings", 1552 "400": None, 1553 "401": None, 1554 "403": None, 1555 "404": None, 1556 "429": None, 1557 } 1558 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1559 response_data.read() 1560 return self.api_client.response_deserialize( 1561 response_data=response_data, 1562 response_types_map=_response_types_map, 1563 ).data 1564 1565 def _enterprise_dataclassification_organization_settings_get_serialize( 1566 self, 1567 org_id, 1568 _request_auth, 1569 _content_type, 1570 _headers, 1571 _host_index, 1572 ) -> RequestSerialized: 1573 1574 _host = None 1575 1576 _collection_formats: Dict[str, str] = {} 1577 1578 _path_params: Dict[str, str] = {} 1579 _query_params: List[Tuple[str, str]] = [] 1580 _header_params: Dict[str, Optional[str]] = _headers or {} 1581 _form_params: List[Tuple[str, str]] = [] 1582 _files: Dict[str, str] = {} 1583 _body_params: Optional[bytes] = None 1584 1585 # process the path parameters 1586 if org_id is not None: 1587 _path_params["org_id"] = org_id 1588 # process the query parameters 1589 # process the header parameters 1590 # process the form parameters 1591 # process the body parameter 1592 1593 # set the HTTP header `Accept` 1594 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1595 1596 # authentication setting 1597 _auth_settings: List[str] = [] 1598 1599 return self.api_client.param_serialize( 1600 method="GET", 1601 resource_path="/v2/orgs/{org_id}/data-classification-settings", 1602 path_params=_path_params, 1603 query_params=_query_params, 1604 header_params=_header_params, 1605 body=_body_params, 1606 post_params=_form_params, 1607 files=_files, 1608 auth_settings=_auth_settings, 1609 collection_formats=_collection_formats, 1610 _host=_host, 1611 _request_auth=_request_auth, 1612 ) 1613 1614 @validate_call 1615 def enterprise_dataclassification_team_boards_bulk( 1616 self, 1617 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1618 team_id: Annotated[StrictStr, Field(description="id of the team")], 1619 update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest, 1620 _request_timeout: Union[ 1621 None, 1622 Annotated[StrictFloat, Field(gt=0)], 1623 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1624 ] = None, 1625 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1626 _content_type: Optional[StrictStr] = None, 1627 _headers: Optional[Dict[StrictStr, Any]] = None, 1628 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1629 ) -> UpdateBoardsDataClassificationLabel: 1630 """Bulk update boards classification 1631 1632 Updates board classification for not-classified only or all boards in an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1633 1634 :param org_id: id of the organization (required) 1635 :type org_id: str 1636 :param team_id: id of the team (required) 1637 :type team_id: str 1638 :param update_boards_data_classification_label_request: (required) 1639 :type update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest 1640 :param _request_timeout: timeout setting for this request. If one 1641 number provided, it will be total request 1642 timeout. It can also be a pair (tuple) of 1643 (connection, read) timeouts. 1644 :type _request_timeout: int, tuple(int, int), optional 1645 :param _request_auth: set to override the auth_settings for an a single 1646 request; this effectively ignores the 1647 authentication in the spec for a single request. 1648 :type _request_auth: dict, optional 1649 :param _content_type: force content-type for the request. 1650 :type _content_type: str, Optional 1651 :param _headers: set to override the headers for a single 1652 request; this effectively ignores the headers 1653 in the spec for a single request. 1654 :type _headers: dict, optional 1655 :param _host_index: set to override the host_index for a single 1656 request; this effectively ignores the host_index 1657 in the spec for a single request. 1658 :type _host_index: int, optional 1659 :return: Returns the result object. 1660 """ # noqa: E501 1661 1662 _param = self._enterprise_dataclassification_team_boards_bulk_serialize( 1663 org_id=org_id, 1664 team_id=team_id, 1665 update_boards_data_classification_label_request=update_boards_data_classification_label_request, 1666 _request_auth=_request_auth, 1667 _content_type=_content_type, 1668 _headers=_headers, 1669 _host_index=_host_index, 1670 ) 1671 1672 _response_types_map: Dict[str, Optional[str]] = { 1673 "200": "UpdateBoardsDataClassificationLabel", 1674 "400": None, 1675 "401": None, 1676 "403": None, 1677 "404": None, 1678 "429": None, 1679 } 1680 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1681 response_data.read() 1682 return self.api_client.response_deserialize( 1683 response_data=response_data, 1684 response_types_map=_response_types_map, 1685 ).data 1686 1687 def _enterprise_dataclassification_team_boards_bulk_serialize( 1688 self, 1689 org_id, 1690 team_id, 1691 update_boards_data_classification_label_request, 1692 _request_auth, 1693 _content_type, 1694 _headers, 1695 _host_index, 1696 ) -> RequestSerialized: 1697 1698 _host = None 1699 1700 _collection_formats: Dict[str, str] = {} 1701 1702 _path_params: Dict[str, str] = {} 1703 _query_params: List[Tuple[str, str]] = [] 1704 _header_params: Dict[str, Optional[str]] = _headers or {} 1705 _form_params: List[Tuple[str, str]] = [] 1706 _files: Dict[str, str] = {} 1707 _body_params: Optional[bytes] = None 1708 1709 # process the path parameters 1710 if org_id is not None: 1711 _path_params["org_id"] = org_id 1712 if team_id is not None: 1713 _path_params["team_id"] = team_id 1714 # process the query parameters 1715 # process the header parameters 1716 # process the form parameters 1717 # process the body parameter 1718 if update_boards_data_classification_label_request is not None: 1719 _body_params = update_boards_data_classification_label_request 1720 1721 # set the HTTP header `Accept` 1722 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1723 1724 # set the HTTP header `Content-Type` 1725 if _content_type: 1726 _header_params["Content-Type"] = _content_type 1727 else: 1728 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1729 if _default_content_type is not None: 1730 _header_params["Content-Type"] = _default_content_type 1731 1732 # authentication setting 1733 _auth_settings: List[str] = [] 1734 1735 return self.api_client.param_serialize( 1736 method="PATCH", 1737 resource_path="/v2/orgs/{org_id}/teams/{team_id}/data-classification", 1738 path_params=_path_params, 1739 query_params=_query_params, 1740 header_params=_header_params, 1741 body=_body_params, 1742 post_params=_form_params, 1743 files=_files, 1744 auth_settings=_auth_settings, 1745 collection_formats=_collection_formats, 1746 _host=_host, 1747 _request_auth=_request_auth, 1748 ) 1749 1750 @validate_call 1751 def enterprise_dataclassification_team_settings_get( 1752 self, 1753 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1754 team_id: Annotated[StrictStr, Field(description="id of the team")], 1755 _request_timeout: Union[ 1756 None, 1757 Annotated[StrictFloat, Field(gt=0)], 1758 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1759 ] = None, 1760 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1761 _content_type: Optional[StrictStr] = None, 1762 _headers: Optional[Dict[StrictStr, Any]] = None, 1763 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1764 ) -> DataClassificationTeamSettings: 1765 """Get team settings 1766 1767 Retrieves board classification settings for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1768 1769 :param org_id: id of the organization (required) 1770 :type org_id: str 1771 :param team_id: id of the team (required) 1772 :type team_id: str 1773 :param _request_timeout: timeout setting for this request. If one 1774 number provided, it will be total request 1775 timeout. It can also be a pair (tuple) of 1776 (connection, read) timeouts. 1777 :type _request_timeout: int, tuple(int, int), optional 1778 :param _request_auth: set to override the auth_settings for an a single 1779 request; this effectively ignores the 1780 authentication in the spec for a single request. 1781 :type _request_auth: dict, optional 1782 :param _content_type: force content-type for the request. 1783 :type _content_type: str, Optional 1784 :param _headers: set to override the headers for a single 1785 request; this effectively ignores the headers 1786 in the spec for a single request. 1787 :type _headers: dict, optional 1788 :param _host_index: set to override the host_index for a single 1789 request; this effectively ignores the host_index 1790 in the spec for a single request. 1791 :type _host_index: int, optional 1792 :return: Returns the result object. 1793 """ # noqa: E501 1794 1795 _param = self._enterprise_dataclassification_team_settings_get_serialize( 1796 org_id=org_id, 1797 team_id=team_id, 1798 _request_auth=_request_auth, 1799 _content_type=_content_type, 1800 _headers=_headers, 1801 _host_index=_host_index, 1802 ) 1803 1804 _response_types_map: Dict[str, Optional[str]] = { 1805 "200": "DataClassificationTeamSettings", 1806 "400": None, 1807 "401": None, 1808 "403": None, 1809 "404": None, 1810 "429": None, 1811 } 1812 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1813 response_data.read() 1814 return self.api_client.response_deserialize( 1815 response_data=response_data, 1816 response_types_map=_response_types_map, 1817 ).data 1818 1819 def _enterprise_dataclassification_team_settings_get_serialize( 1820 self, 1821 org_id, 1822 team_id, 1823 _request_auth, 1824 _content_type, 1825 _headers, 1826 _host_index, 1827 ) -> RequestSerialized: 1828 1829 _host = None 1830 1831 _collection_formats: Dict[str, str] = {} 1832 1833 _path_params: Dict[str, str] = {} 1834 _query_params: List[Tuple[str, str]] = [] 1835 _header_params: Dict[str, Optional[str]] = _headers or {} 1836 _form_params: List[Tuple[str, str]] = [] 1837 _files: Dict[str, str] = {} 1838 _body_params: Optional[bytes] = None 1839 1840 # process the path parameters 1841 if org_id is not None: 1842 _path_params["org_id"] = org_id 1843 if team_id is not None: 1844 _path_params["team_id"] = team_id 1845 # process the query parameters 1846 # process the header parameters 1847 # process the form parameters 1848 # process the body parameter 1849 1850 # set the HTTP header `Accept` 1851 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1852 1853 # authentication setting 1854 _auth_settings: List[str] = [] 1855 1856 return self.api_client.param_serialize( 1857 method="GET", 1858 resource_path="/v2/orgs/{org_id}/teams/{team_id}/data-classification-settings", 1859 path_params=_path_params, 1860 query_params=_query_params, 1861 header_params=_header_params, 1862 body=_body_params, 1863 post_params=_form_params, 1864 files=_files, 1865 auth_settings=_auth_settings, 1866 collection_formats=_collection_formats, 1867 _host=_host, 1868 _request_auth=_request_auth, 1869 ) 1870 1871 @validate_call 1872 def enterprise_dataclassification_team_settings_set( 1873 self, 1874 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1875 team_id: Annotated[StrictStr, Field(description="id of the team")], 1876 update_team_settings_request: UpdateTeamSettingsRequest, 1877 _request_timeout: Union[ 1878 None, 1879 Annotated[StrictFloat, Field(gt=0)], 1880 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1881 ] = None, 1882 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1883 _content_type: Optional[StrictStr] = None, 1884 _headers: Optional[Dict[StrictStr, Any]] = None, 1885 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1886 ) -> DataClassificationTeamSettings: 1887 """Update team settings 1888 1889 Updates board classification settings for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1890 1891 :param org_id: id of the organization (required) 1892 :type org_id: str 1893 :param team_id: id of the team (required) 1894 :type team_id: str 1895 :param update_team_settings_request: (required) 1896 :type update_team_settings_request: UpdateTeamSettingsRequest 1897 :param _request_timeout: timeout setting for this request. If one 1898 number provided, it will be total request 1899 timeout. It can also be a pair (tuple) of 1900 (connection, read) timeouts. 1901 :type _request_timeout: int, tuple(int, int), optional 1902 :param _request_auth: set to override the auth_settings for an a single 1903 request; this effectively ignores the 1904 authentication in the spec for a single request. 1905 :type _request_auth: dict, optional 1906 :param _content_type: force content-type for the request. 1907 :type _content_type: str, Optional 1908 :param _headers: set to override the headers for a single 1909 request; this effectively ignores the headers 1910 in the spec for a single request. 1911 :type _headers: dict, optional 1912 :param _host_index: set to override the host_index for a single 1913 request; this effectively ignores the host_index 1914 in the spec for a single request. 1915 :type _host_index: int, optional 1916 :return: Returns the result object. 1917 """ # noqa: E501 1918 1919 _param = self._enterprise_dataclassification_team_settings_set_serialize( 1920 org_id=org_id, 1921 team_id=team_id, 1922 update_team_settings_request=update_team_settings_request, 1923 _request_auth=_request_auth, 1924 _content_type=_content_type, 1925 _headers=_headers, 1926 _host_index=_host_index, 1927 ) 1928 1929 _response_types_map: Dict[str, Optional[str]] = { 1930 "200": "DataClassificationTeamSettings", 1931 "400": None, 1932 "401": None, 1933 "403": None, 1934 "404": None, 1935 "429": None, 1936 } 1937 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1938 response_data.read() 1939 return self.api_client.response_deserialize( 1940 response_data=response_data, 1941 response_types_map=_response_types_map, 1942 ).data 1943 1944 def _enterprise_dataclassification_team_settings_set_serialize( 1945 self, 1946 org_id, 1947 team_id, 1948 update_team_settings_request, 1949 _request_auth, 1950 _content_type, 1951 _headers, 1952 _host_index, 1953 ) -> RequestSerialized: 1954 1955 _host = None 1956 1957 _collection_formats: Dict[str, str] = {} 1958 1959 _path_params: Dict[str, str] = {} 1960 _query_params: List[Tuple[str, str]] = [] 1961 _header_params: Dict[str, Optional[str]] = _headers or {} 1962 _form_params: List[Tuple[str, str]] = [] 1963 _files: Dict[str, str] = {} 1964 _body_params: Optional[bytes] = None 1965 1966 # process the path parameters 1967 if org_id is not None: 1968 _path_params["org_id"] = org_id 1969 if team_id is not None: 1970 _path_params["team_id"] = team_id 1971 # process the query parameters 1972 # process the header parameters 1973 # process the form parameters 1974 # process the body parameter 1975 if update_team_settings_request is not None: 1976 _body_params = update_team_settings_request 1977 1978 # set the HTTP header `Accept` 1979 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 1980 1981 # set the HTTP header `Content-Type` 1982 if _content_type: 1983 _header_params["Content-Type"] = _content_type 1984 else: 1985 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 1986 if _default_content_type is not None: 1987 _header_params["Content-Type"] = _default_content_type 1988 1989 # authentication setting 1990 _auth_settings: List[str] = [] 1991 1992 return self.api_client.param_serialize( 1993 method="PATCH", 1994 resource_path="/v2/orgs/{org_id}/teams/{team_id}/data-classification-settings", 1995 path_params=_path_params, 1996 query_params=_query_params, 1997 header_params=_header_params, 1998 body=_body_params, 1999 post_params=_form_params, 2000 files=_files, 2001 auth_settings=_auth_settings, 2002 collection_formats=_collection_formats, 2003 _host=_host, 2004 _request_auth=_request_auth, 2005 ) 2006 2007 @validate_call 2008 def create_items( 2009 self, 2010 board_id: Annotated[ 2011 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2012 ], 2013 item_create: Annotated[List[ItemCreate], Field(min_length=1, max_length=20)], 2014 _request_timeout: Union[ 2015 None, 2016 Annotated[StrictFloat, Field(gt=0)], 2017 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2018 ] = None, 2019 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2020 _content_type: Optional[StrictStr] = None, 2021 _headers: Optional[Dict[StrictStr, Any]] = None, 2022 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2023 ) -> Items: 2024 """Create items in bulk 2025 2026 Adds different types of items to a board. You can add up to 20 items of the same or different type per create call. For example, you can create 3 shape items, 4 card items, and 5 sticky notes in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. <br/><br>To try out this API in our documentation:<br/><br>1. In the **BODY PARAMS** section, scroll down until you see **ADD OBJECT** (Figure 1).<br><br><img alt=“add src=\"https://files.readme.io/570dac1-small-add_object.png\"><br>Figure 1. Add object user interface in readme<br><br>2. Click **ADD OBJECT**, and then select or enter the appropriate values for parameters of the item that you want to add.<br><br>3. Repeat steps 1 and 2 for each item that you want to add.<br> <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item. For example, if you want to create one sticky note, one card, and one shape item in one call, the rate limiting applicable will be 300 credits. This is because create item calls take Level 2 rate limiting of 100 credits each, 100 for sticky note, 100 for card, and 100 for shape item. 2027 2028 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2029 :type board_id: str 2030 :param item_create: (required) 2031 :type item_create: List[ItemCreate] 2032 :param _request_timeout: timeout setting for this request. If one 2033 number provided, it will be total request 2034 timeout. It can also be a pair (tuple) of 2035 (connection, read) timeouts. 2036 :type _request_timeout: int, tuple(int, int), optional 2037 :param _request_auth: set to override the auth_settings for an a single 2038 request; this effectively ignores the 2039 authentication in the spec for a single request. 2040 :type _request_auth: dict, optional 2041 :param _content_type: force content-type for the request. 2042 :type _content_type: str, Optional 2043 :param _headers: set to override the headers for a single 2044 request; this effectively ignores the headers 2045 in the spec for a single request. 2046 :type _headers: dict, optional 2047 :param _host_index: set to override the host_index for a single 2048 request; this effectively ignores the host_index 2049 in the spec for a single request. 2050 :type _host_index: int, optional 2051 :return: Returns the result object. 2052 """ # noqa: E501 2053 2054 _param = self._create_items_serialize( 2055 board_id=board_id, 2056 item_create=item_create, 2057 _request_auth=_request_auth, 2058 _content_type=_content_type, 2059 _headers=_headers, 2060 _host_index=_host_index, 2061 ) 2062 2063 _response_types_map: Dict[str, Optional[str]] = { 2064 "201": "Items", 2065 "400": "BulkOperationError", 2066 "429": "Error", 2067 } 2068 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2069 response_data.read() 2070 return self.api_client.response_deserialize( 2071 response_data=response_data, 2072 response_types_map=_response_types_map, 2073 ).data 2074 2075 def _create_items_serialize( 2076 self, 2077 board_id, 2078 item_create, 2079 _request_auth, 2080 _content_type, 2081 _headers, 2082 _host_index, 2083 ) -> RequestSerialized: 2084 2085 _host = None 2086 2087 _collection_formats: Dict[str, str] = { 2088 "ItemCreate": "", 2089 } 2090 2091 _path_params: Dict[str, str] = {} 2092 _query_params: List[Tuple[str, str]] = [] 2093 _header_params: Dict[str, Optional[str]] = _headers or {} 2094 _form_params: List[Tuple[str, str]] = [] 2095 _files: Dict[str, str] = {} 2096 _body_params: Optional[bytes] = None 2097 2098 # process the path parameters 2099 if board_id is not None: 2100 _path_params["board_id"] = board_id 2101 # process the query parameters 2102 # process the header parameters 2103 # process the form parameters 2104 # process the body parameter 2105 if item_create is not None: 2106 _body_params = item_create 2107 2108 # set the HTTP header `Accept` 2109 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2110 2111 # set the HTTP header `Content-Type` 2112 if _content_type: 2113 _header_params["Content-Type"] = _content_type 2114 else: 2115 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 2116 if _default_content_type is not None: 2117 _header_params["Content-Type"] = _default_content_type 2118 2119 # authentication setting 2120 _auth_settings: List[str] = [] 2121 2122 return self.api_client.param_serialize( 2123 method="POST", 2124 resource_path="/v2/boards/{board_id}/items/bulk", 2125 path_params=_path_params, 2126 query_params=_query_params, 2127 header_params=_header_params, 2128 body=_body_params, 2129 post_params=_form_params, 2130 files=_files, 2131 auth_settings=_auth_settings, 2132 collection_formats=_collection_formats, 2133 _host=_host, 2134 _request_auth=_request_auth, 2135 ) 2136 2137 @validate_call 2138 def create_items_in_bulk_using_file_from_device( 2139 self, 2140 board_id: Annotated[ 2141 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2142 ], 2143 data: Annotated[ 2144 Union[StrictBytes, StrictStr], 2145 Field( 2146 description="JSON file containing bulk data, where each object represents an item to be created. For details, see [JSON file example](https://developers.miro.com/reference/json-data-example)." 2147 ), 2148 ], 2149 resources: Annotated[ 2150 List[Union[StrictBytes, StrictStr]], 2151 Field(description="Array of items to create (PDFs, images, etc.). Maximum of 20 items."), 2152 ], 2153 _request_timeout: Union[ 2154 None, 2155 Annotated[StrictFloat, Field(gt=0)], 2156 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2157 ] = None, 2158 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2159 _content_type: Optional[StrictStr] = None, 2160 _headers: Optional[Dict[StrictStr, Any]] = None, 2161 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2162 ) -> Items: 2163 """Create items in bulk using file from device 2164 2165 Adds different types of items to a board using files from a device. You can add up to 20 items of the same or different type per create call. For example, you can create 5 document items and 5 images in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. To try out this API in our documentation: 1. In the **BODY PARAMS** section, select **ADD FILE**, and then upload a local file. Repeat for each item that you want to add. 2. Upload a JSON file that contains the bulk data for the items you want to create. <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item<br/> 2166 2167 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2168 :type board_id: str 2169 :param data: JSON file containing bulk data, where each object represents an item to be created. For details, see [JSON file example](https://developers.miro.com/reference/json-data-example). (required) 2170 :type data: bytearray 2171 :param resources: Array of items to create (PDFs, images, etc.). Maximum of 20 items. (required) 2172 :type resources: List[bytearray] 2173 :param _request_timeout: timeout setting for this request. If one 2174 number provided, it will be total request 2175 timeout. It can also be a pair (tuple) of 2176 (connection, read) timeouts. 2177 :type _request_timeout: int, tuple(int, int), optional 2178 :param _request_auth: set to override the auth_settings for an a single 2179 request; this effectively ignores the 2180 authentication in the spec for a single request. 2181 :type _request_auth: dict, optional 2182 :param _content_type: force content-type for the request. 2183 :type _content_type: str, Optional 2184 :param _headers: set to override the headers for a single 2185 request; this effectively ignores the headers 2186 in the spec for a single request. 2187 :type _headers: dict, optional 2188 :param _host_index: set to override the host_index for a single 2189 request; this effectively ignores the host_index 2190 in the spec for a single request. 2191 :type _host_index: int, optional 2192 :return: Returns the result object. 2193 """ # noqa: E501 2194 2195 _param = self._create_items_in_bulk_using_file_from_device_serialize( 2196 board_id=board_id, 2197 data=data, 2198 resources=resources, 2199 _request_auth=_request_auth, 2200 _content_type=_content_type, 2201 _headers=_headers, 2202 _host_index=_host_index, 2203 ) 2204 2205 _response_types_map: Dict[str, Optional[str]] = { 2206 "201": "Items", 2207 } 2208 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2209 response_data.read() 2210 return self.api_client.response_deserialize( 2211 response_data=response_data, 2212 response_types_map=_response_types_map, 2213 ).data 2214 2215 def _create_items_in_bulk_using_file_from_device_serialize( 2216 self, 2217 board_id, 2218 data, 2219 resources, 2220 _request_auth, 2221 _content_type, 2222 _headers, 2223 _host_index, 2224 ) -> RequestSerialized: 2225 2226 _host = None 2227 2228 _collection_formats: Dict[str, str] = { 2229 "resources": "csv", 2230 } 2231 2232 _path_params: Dict[str, str] = {} 2233 _query_params: List[Tuple[str, str]] = [] 2234 _header_params: Dict[str, Optional[str]] = _headers or {} 2235 _form_params: List[Tuple[str, str]] = [] 2236 _files: Dict[str, str] = {} 2237 _body_params: Optional[bytes] = None 2238 2239 # process the path parameters 2240 if board_id is not None: 2241 _path_params["board_id"] = board_id 2242 # process the query parameters 2243 # process the header parameters 2244 # process the form parameters 2245 if data is not None: 2246 _files["data"] = data 2247 if resources is not None: 2248 _files["resources"] = resources 2249 # process the body parameter 2250 2251 # set the HTTP header `Accept` 2252 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2253 2254 # set the HTTP header `Content-Type` 2255 if _content_type: 2256 _header_params["Content-Type"] = _content_type 2257 else: 2258 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 2259 if _default_content_type is not None: 2260 _header_params["Content-Type"] = _default_content_type 2261 2262 # authentication setting 2263 _auth_settings: List[str] = [] 2264 2265 return self.api_client.param_serialize( 2266 method="POST", 2267 resource_path="/v2/boards/{board_id_Platformcreateitemsinbulkusingfilefromdevice}/items/bulk", 2268 path_params=_path_params, 2269 query_params=_query_params, 2270 header_params=_header_params, 2271 body=_body_params, 2272 post_params=_form_params, 2273 files=_files, 2274 auth_settings=_auth_settings, 2275 collection_formats=_collection_formats, 2276 _host=_host, 2277 _request_auth=_request_auth, 2278 ) 2279 2280 @validate_call 2281 def create_shape_item_flowchart( 2282 self, 2283 board_id: Annotated[ 2284 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2285 ], 2286 shape_create_request: ShapeCreateRequest, 2287 _request_timeout: Union[ 2288 None, 2289 Annotated[StrictFloat, Field(gt=0)], 2290 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2291 ] = None, 2292 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2293 _content_type: Optional[StrictStr] = None, 2294 _headers: Optional[Dict[StrictStr, Any]] = None, 2295 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2296 ) -> ShapeItem: 2297 """Create shape item 2298 2299 Adds a flowchart shape item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2300 2301 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2302 :type board_id: str 2303 :param shape_create_request: (required) 2304 :type shape_create_request: ShapeCreateRequest 2305 :param _request_timeout: timeout setting for this request. If one 2306 number provided, it will be total request 2307 timeout. It can also be a pair (tuple) of 2308 (connection, read) timeouts. 2309 :type _request_timeout: int, tuple(int, int), optional 2310 :param _request_auth: set to override the auth_settings for an a single 2311 request; this effectively ignores the 2312 authentication in the spec for a single request. 2313 :type _request_auth: dict, optional 2314 :param _content_type: force content-type for the request. 2315 :type _content_type: str, Optional 2316 :param _headers: set to override the headers for a single 2317 request; this effectively ignores the headers 2318 in the spec for a single request. 2319 :type _headers: dict, optional 2320 :param _host_index: set to override the host_index for a single 2321 request; this effectively ignores the host_index 2322 in the spec for a single request. 2323 :type _host_index: int, optional 2324 :return: Returns the result object. 2325 """ # noqa: E501 2326 2327 _param = self._create_shape_item_flowchart_serialize( 2328 board_id=board_id, 2329 shape_create_request=shape_create_request, 2330 _request_auth=_request_auth, 2331 _content_type=_content_type, 2332 _headers=_headers, 2333 _host_index=_host_index, 2334 ) 2335 2336 _response_types_map: Dict[str, Optional[str]] = { 2337 "201": "ShapeItem", 2338 "400": "CreateFrameItem400Response", 2339 "404": "CreateFrameItem400Response", 2340 "429": "CreateFrameItem400Response", 2341 } 2342 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2343 response_data.read() 2344 return self.api_client.response_deserialize( 2345 response_data=response_data, 2346 response_types_map=_response_types_map, 2347 ).data 2348 2349 def _create_shape_item_flowchart_serialize( 2350 self, 2351 board_id, 2352 shape_create_request, 2353 _request_auth, 2354 _content_type, 2355 _headers, 2356 _host_index, 2357 ) -> RequestSerialized: 2358 2359 _host = None 2360 2361 _collection_formats: Dict[str, str] = {} 2362 2363 _path_params: Dict[str, str] = {} 2364 _query_params: List[Tuple[str, str]] = [] 2365 _header_params: Dict[str, Optional[str]] = _headers or {} 2366 _form_params: List[Tuple[str, str]] = [] 2367 _files: Dict[str, str] = {} 2368 _body_params: Optional[bytes] = None 2369 2370 # process the path parameters 2371 if board_id is not None: 2372 _path_params["board_id"] = board_id 2373 # process the query parameters 2374 # process the header parameters 2375 # process the form parameters 2376 # process the body parameter 2377 if shape_create_request is not None: 2378 _body_params = shape_create_request 2379 2380 # set the HTTP header `Accept` 2381 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2382 2383 # set the HTTP header `Content-Type` 2384 if _content_type: 2385 _header_params["Content-Type"] = _content_type 2386 else: 2387 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 2388 if _default_content_type is not None: 2389 _header_params["Content-Type"] = _default_content_type 2390 2391 # authentication setting 2392 _auth_settings: List[str] = [] 2393 2394 return self.api_client.param_serialize( 2395 method="POST", 2396 resource_path="/v2-experimental/boards/{board_id}/shapes", 2397 path_params=_path_params, 2398 query_params=_query_params, 2399 header_params=_header_params, 2400 body=_body_params, 2401 post_params=_form_params, 2402 files=_files, 2403 auth_settings=_auth_settings, 2404 collection_formats=_collection_formats, 2405 _host=_host, 2406 _request_auth=_request_auth, 2407 ) 2408 2409 @validate_call 2410 def delete_shape_item_flowchart( 2411 self, 2412 board_id: Annotated[ 2413 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 2414 ], 2415 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 2416 _request_timeout: Union[ 2417 None, 2418 Annotated[StrictFloat, Field(gt=0)], 2419 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2420 ] = None, 2421 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2422 _content_type: Optional[StrictStr] = None, 2423 _headers: Optional[Dict[StrictStr, Any]] = None, 2424 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2425 ) -> object: 2426 """Delete shape item 2427 2428 Deletes a flowchart shape item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 2429 2430 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 2431 :type board_id: str 2432 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 2433 :type item_id: str 2434 :param _request_timeout: timeout setting for this request. If one 2435 number provided, it will be total request 2436 timeout. It can also be a pair (tuple) of 2437 (connection, read) timeouts. 2438 :type _request_timeout: int, tuple(int, int), optional 2439 :param _request_auth: set to override the auth_settings for an a single 2440 request; this effectively ignores the 2441 authentication in the spec for a single request. 2442 :type _request_auth: dict, optional 2443 :param _content_type: force content-type for the request. 2444 :type _content_type: str, Optional 2445 :param _headers: set to override the headers for a single 2446 request; this effectively ignores the headers 2447 in the spec for a single request. 2448 :type _headers: dict, optional 2449 :param _host_index: set to override the host_index for a single 2450 request; this effectively ignores the host_index 2451 in the spec for a single request. 2452 :type _host_index: int, optional 2453 :return: Returns the result object. 2454 """ # noqa: E501 2455 2456 _param = self._delete_shape_item_flowchart_serialize( 2457 board_id=board_id, 2458 item_id=item_id, 2459 _request_auth=_request_auth, 2460 _content_type=_content_type, 2461 _headers=_headers, 2462 _host_index=_host_index, 2463 ) 2464 2465 _response_types_map: Dict[str, Optional[str]] = { 2466 "204": "object", 2467 "400": "CreateFrameItem400Response", 2468 "404": "CreateFrameItem400Response", 2469 "429": "CreateFrameItem400Response", 2470 } 2471 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2472 response_data.read() 2473 return self.api_client.response_deserialize( 2474 response_data=response_data, 2475 response_types_map=_response_types_map, 2476 ).data 2477 2478 def _delete_shape_item_flowchart_serialize( 2479 self, 2480 board_id, 2481 item_id, 2482 _request_auth, 2483 _content_type, 2484 _headers, 2485 _host_index, 2486 ) -> RequestSerialized: 2487 2488 _host = None 2489 2490 _collection_formats: Dict[str, str] = {} 2491 2492 _path_params: Dict[str, str] = {} 2493 _query_params: List[Tuple[str, str]] = [] 2494 _header_params: Dict[str, Optional[str]] = _headers or {} 2495 _form_params: List[Tuple[str, str]] = [] 2496 _files: Dict[str, str] = {} 2497 _body_params: Optional[bytes] = None 2498 2499 # process the path parameters 2500 if board_id is not None: 2501 _path_params["board_id"] = board_id 2502 if item_id is not None: 2503 _path_params["item_id"] = item_id 2504 # process the query parameters 2505 # process the header parameters 2506 # process the form parameters 2507 # process the body parameter 2508 2509 # set the HTTP header `Accept` 2510 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2511 2512 # authentication setting 2513 _auth_settings: List[str] = [] 2514 2515 return self.api_client.param_serialize( 2516 method="DELETE", 2517 resource_path="/v2-experimental/boards/{board_id}/shapes/{item_id}", 2518 path_params=_path_params, 2519 query_params=_query_params, 2520 header_params=_header_params, 2521 body=_body_params, 2522 post_params=_form_params, 2523 files=_files, 2524 auth_settings=_auth_settings, 2525 collection_formats=_collection_formats, 2526 _host=_host, 2527 _request_auth=_request_auth, 2528 ) 2529 2530 @validate_call 2531 def get_items_experimental( 2532 self, 2533 board_id: Annotated[ 2534 StrictStr, 2535 Field( 2536 description="Unique identifier (ID) of the board for which you want to retrieve the list of available items." 2537 ), 2538 ], 2539 limit: Optional[Annotated[str, Field(strict=True)]] = None, 2540 type: Optional[StrictStr] = None, 2541 cursor: Optional[StrictStr] = None, 2542 _request_timeout: Union[ 2543 None, 2544 Annotated[StrictFloat, Field(gt=0)], 2545 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2546 ] = None, 2547 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2548 _content_type: Optional[StrictStr] = None, 2549 _headers: Optional[Dict[StrictStr, Any]] = None, 2550 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2551 ) -> GenericItemCursorPaged: 2552 """Get items on board 2553 2554 Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2555 2556 :param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) 2557 :type board_id: str 2558 :param limit: 2559 :type limit: str 2560 :param type: 2561 :type type: str 2562 :param cursor: 2563 :type cursor: str 2564 :param _request_timeout: timeout setting for this request. If one 2565 number provided, it will be total request 2566 timeout. It can also be a pair (tuple) of 2567 (connection, read) timeouts. 2568 :type _request_timeout: int, tuple(int, int), optional 2569 :param _request_auth: set to override the auth_settings for an a single 2570 request; this effectively ignores the 2571 authentication in the spec for a single request. 2572 :type _request_auth: dict, optional 2573 :param _content_type: force content-type for the request. 2574 :type _content_type: str, Optional 2575 :param _headers: set to override the headers for a single 2576 request; this effectively ignores the headers 2577 in the spec for a single request. 2578 :type _headers: dict, optional 2579 :param _host_index: set to override the host_index for a single 2580 request; this effectively ignores the host_index 2581 in the spec for a single request. 2582 :type _host_index: int, optional 2583 :return: Returns the result object. 2584 """ # noqa: E501 2585 2586 _param = self._get_items_experimental_serialize( 2587 board_id=board_id, 2588 limit=limit, 2589 type=type, 2590 cursor=cursor, 2591 _request_auth=_request_auth, 2592 _content_type=_content_type, 2593 _headers=_headers, 2594 _host_index=_host_index, 2595 ) 2596 2597 _response_types_map: Dict[str, Optional[str]] = { 2598 "200": "GenericItemCursorPaged", 2599 "400": "CreateFrameItem400Response", 2600 "404": "CreateFrameItem400Response", 2601 "429": "CreateFrameItem400Response", 2602 } 2603 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2604 response_data.read() 2605 return self.api_client.response_deserialize( 2606 response_data=response_data, 2607 response_types_map=_response_types_map, 2608 ).data 2609 2610 def _get_items_experimental_serialize( 2611 self, 2612 board_id, 2613 limit, 2614 type, 2615 cursor, 2616 _request_auth, 2617 _content_type, 2618 _headers, 2619 _host_index, 2620 ) -> RequestSerialized: 2621 2622 _host = None 2623 2624 _collection_formats: Dict[str, str] = {} 2625 2626 _path_params: Dict[str, str] = {} 2627 _query_params: List[Tuple[str, str]] = [] 2628 _header_params: Dict[str, Optional[str]] = _headers or {} 2629 _form_params: List[Tuple[str, str]] = [] 2630 _files: Dict[str, str] = {} 2631 _body_params: Optional[bytes] = None 2632 2633 # process the path parameters 2634 if board_id is not None: 2635 _path_params["board_id"] = board_id 2636 # process the query parameters 2637 if limit is not None: 2638 2639 _query_params.append(("limit", limit)) 2640 2641 if type is not None: 2642 2643 _query_params.append(("type", type)) 2644 2645 if cursor is not None: 2646 2647 _query_params.append(("cursor", cursor)) 2648 2649 # process the header parameters 2650 # process the form parameters 2651 # process the body parameter 2652 2653 # set the HTTP header `Accept` 2654 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2655 2656 # authentication setting 2657 _auth_settings: List[str] = [] 2658 2659 return self.api_client.param_serialize( 2660 method="GET", 2661 resource_path="/v2-experimental/boards/{board_id}/items", 2662 path_params=_path_params, 2663 query_params=_query_params, 2664 header_params=_header_params, 2665 body=_body_params, 2666 post_params=_form_params, 2667 files=_files, 2668 auth_settings=_auth_settings, 2669 collection_formats=_collection_formats, 2670 _host=_host, 2671 _request_auth=_request_auth, 2672 ) 2673 2674 @validate_call 2675 def get_shape_item_flowchart( 2676 self, 2677 board_id: Annotated[ 2678 StrictStr, 2679 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 2680 ], 2681 item_id: Annotated[ 2682 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 2683 ], 2684 _request_timeout: Union[ 2685 None, 2686 Annotated[StrictFloat, Field(gt=0)], 2687 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2688 ] = None, 2689 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2690 _content_type: Optional[StrictStr] = None, 2691 _headers: Optional[Dict[StrictStr, Any]] = None, 2692 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2693 ) -> ShapeItem: 2694 """Get shape item 2695 2696 Retrieves information for a specific shape item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 2697 2698 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 2699 :type board_id: str 2700 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 2701 :type item_id: str 2702 :param _request_timeout: timeout setting for this request. If one 2703 number provided, it will be total request 2704 timeout. It can also be a pair (tuple) of 2705 (connection, read) timeouts. 2706 :type _request_timeout: int, tuple(int, int), optional 2707 :param _request_auth: set to override the auth_settings for an a single 2708 request; this effectively ignores the 2709 authentication in the spec for a single request. 2710 :type _request_auth: dict, optional 2711 :param _content_type: force content-type for the request. 2712 :type _content_type: str, Optional 2713 :param _headers: set to override the headers for a single 2714 request; this effectively ignores the headers 2715 in the spec for a single request. 2716 :type _headers: dict, optional 2717 :param _host_index: set to override the host_index for a single 2718 request; this effectively ignores the host_index 2719 in the spec for a single request. 2720 :type _host_index: int, optional 2721 :return: Returns the result object. 2722 """ # noqa: E501 2723 2724 _param = self._get_shape_item_flowchart_serialize( 2725 board_id=board_id, 2726 item_id=item_id, 2727 _request_auth=_request_auth, 2728 _content_type=_content_type, 2729 _headers=_headers, 2730 _host_index=_host_index, 2731 ) 2732 2733 _response_types_map: Dict[str, Optional[str]] = { 2734 "200": "ShapeItem", 2735 "400": "CreateFrameItem400Response", 2736 "404": "CreateFrameItem400Response", 2737 "429": "CreateFrameItem400Response", 2738 } 2739 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2740 response_data.read() 2741 return self.api_client.response_deserialize( 2742 response_data=response_data, 2743 response_types_map=_response_types_map, 2744 ).data 2745 2746 def _get_shape_item_flowchart_serialize( 2747 self, 2748 board_id, 2749 item_id, 2750 _request_auth, 2751 _content_type, 2752 _headers, 2753 _host_index, 2754 ) -> RequestSerialized: 2755 2756 _host = None 2757 2758 _collection_formats: Dict[str, str] = {} 2759 2760 _path_params: Dict[str, str] = {} 2761 _query_params: List[Tuple[str, str]] = [] 2762 _header_params: Dict[str, Optional[str]] = _headers or {} 2763 _form_params: List[Tuple[str, str]] = [] 2764 _files: Dict[str, str] = {} 2765 _body_params: Optional[bytes] = None 2766 2767 # process the path parameters 2768 if board_id is not None: 2769 _path_params["board_id"] = board_id 2770 if item_id is not None: 2771 _path_params["item_id"] = item_id 2772 # process the query parameters 2773 # process the header parameters 2774 # process the form parameters 2775 # process the body parameter 2776 2777 # set the HTTP header `Accept` 2778 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2779 2780 # authentication setting 2781 _auth_settings: List[str] = [] 2782 2783 return self.api_client.param_serialize( 2784 method="GET", 2785 resource_path="/v2-experimental/boards/{board_id}/shapes/{item_id}", 2786 path_params=_path_params, 2787 query_params=_query_params, 2788 header_params=_header_params, 2789 body=_body_params, 2790 post_params=_form_params, 2791 files=_files, 2792 auth_settings=_auth_settings, 2793 collection_formats=_collection_formats, 2794 _host=_host, 2795 _request_auth=_request_auth, 2796 ) 2797 2798 @validate_call 2799 def get_specific_item_experimental( 2800 self, 2801 board_id: Annotated[ 2802 StrictStr, 2803 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 2804 ], 2805 item_id: Annotated[ 2806 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 2807 ], 2808 _request_timeout: Union[ 2809 None, 2810 Annotated[StrictFloat, Field(gt=0)], 2811 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2812 ] = None, 2813 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2814 _content_type: Optional[StrictStr] = None, 2815 _headers: Optional[Dict[StrictStr, Any]] = None, 2816 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2817 ) -> GenericItem: 2818 """Get specific item on board 2819 2820 Retrieves information for a specific item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 2821 2822 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 2823 :type board_id: str 2824 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 2825 :type item_id: str 2826 :param _request_timeout: timeout setting for this request. If one 2827 number provided, it will be total request 2828 timeout. It can also be a pair (tuple) of 2829 (connection, read) timeouts. 2830 :type _request_timeout: int, tuple(int, int), optional 2831 :param _request_auth: set to override the auth_settings for an a single 2832 request; this effectively ignores the 2833 authentication in the spec for a single request. 2834 :type _request_auth: dict, optional 2835 :param _content_type: force content-type for the request. 2836 :type _content_type: str, Optional 2837 :param _headers: set to override the headers for a single 2838 request; this effectively ignores the headers 2839 in the spec for a single request. 2840 :type _headers: dict, optional 2841 :param _host_index: set to override the host_index for a single 2842 request; this effectively ignores the host_index 2843 in the spec for a single request. 2844 :type _host_index: int, optional 2845 :return: Returns the result object. 2846 """ # noqa: E501 2847 2848 _param = self._get_specific_item_experimental_serialize( 2849 board_id=board_id, 2850 item_id=item_id, 2851 _request_auth=_request_auth, 2852 _content_type=_content_type, 2853 _headers=_headers, 2854 _host_index=_host_index, 2855 ) 2856 2857 _response_types_map: Dict[str, Optional[str]] = { 2858 "200": "GenericItem", 2859 "400": "CreateFrameItem400Response", 2860 "404": "CreateFrameItem400Response", 2861 "429": "CreateFrameItem400Response", 2862 } 2863 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2864 response_data.read() 2865 return self.api_client.response_deserialize( 2866 response_data=response_data, 2867 response_types_map=_response_types_map, 2868 ).data 2869 2870 def _get_specific_item_experimental_serialize( 2871 self, 2872 board_id, 2873 item_id, 2874 _request_auth, 2875 _content_type, 2876 _headers, 2877 _host_index, 2878 ) -> RequestSerialized: 2879 2880 _host = None 2881 2882 _collection_formats: Dict[str, str] = {} 2883 2884 _path_params: Dict[str, str] = {} 2885 _query_params: List[Tuple[str, str]] = [] 2886 _header_params: Dict[str, Optional[str]] = _headers or {} 2887 _form_params: List[Tuple[str, str]] = [] 2888 _files: Dict[str, str] = {} 2889 _body_params: Optional[bytes] = None 2890 2891 # process the path parameters 2892 if board_id is not None: 2893 _path_params["board_id"] = board_id 2894 if item_id is not None: 2895 _path_params["item_id"] = item_id 2896 # process the query parameters 2897 # process the header parameters 2898 # process the form parameters 2899 # process the body parameter 2900 2901 # set the HTTP header `Accept` 2902 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 2903 2904 # authentication setting 2905 _auth_settings: List[str] = [] 2906 2907 return self.api_client.param_serialize( 2908 method="GET", 2909 resource_path="/v2-experimental/boards/{board_id}/items/{item_id}", 2910 path_params=_path_params, 2911 query_params=_query_params, 2912 header_params=_header_params, 2913 body=_body_params, 2914 post_params=_form_params, 2915 files=_files, 2916 auth_settings=_auth_settings, 2917 collection_formats=_collection_formats, 2918 _host=_host, 2919 _request_auth=_request_auth, 2920 ) 2921 2922 @validate_call 2923 def update_shape_item_flowchart( 2924 self, 2925 board_id: Annotated[ 2926 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 2927 ], 2928 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 2929 shape_update_request: ShapeUpdateRequest, 2930 _request_timeout: Union[ 2931 None, 2932 Annotated[StrictFloat, Field(gt=0)], 2933 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2934 ] = None, 2935 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2936 _content_type: Optional[StrictStr] = None, 2937 _headers: Optional[Dict[StrictStr, Any]] = None, 2938 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2939 ) -> ShapeItem: 2940 """Update shape item 2941 2942 Updates a flowchart shape item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2943 2944 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 2945 :type board_id: str 2946 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 2947 :type item_id: str 2948 :param shape_update_request: (required) 2949 :type shape_update_request: ShapeUpdateRequest 2950 :param _request_timeout: timeout setting for this request. If one 2951 number provided, it will be total request 2952 timeout. It can also be a pair (tuple) of 2953 (connection, read) timeouts. 2954 :type _request_timeout: int, tuple(int, int), optional 2955 :param _request_auth: set to override the auth_settings for an a single 2956 request; this effectively ignores the 2957 authentication in the spec for a single request. 2958 :type _request_auth: dict, optional 2959 :param _content_type: force content-type for the request. 2960 :type _content_type: str, Optional 2961 :param _headers: set to override the headers for a single 2962 request; this effectively ignores the headers 2963 in the spec for a single request. 2964 :type _headers: dict, optional 2965 :param _host_index: set to override the host_index for a single 2966 request; this effectively ignores the host_index 2967 in the spec for a single request. 2968 :type _host_index: int, optional 2969 :return: Returns the result object. 2970 """ # noqa: E501 2971 2972 _param = self._update_shape_item_flowchart_serialize( 2973 board_id=board_id, 2974 item_id=item_id, 2975 shape_update_request=shape_update_request, 2976 _request_auth=_request_auth, 2977 _content_type=_content_type, 2978 _headers=_headers, 2979 _host_index=_host_index, 2980 ) 2981 2982 _response_types_map: Dict[str, Optional[str]] = { 2983 "200": "ShapeItem", 2984 "400": "CreateFrameItem400Response", 2985 "404": "CreateFrameItem400Response", 2986 "429": "CreateFrameItem400Response", 2987 } 2988 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2989 response_data.read() 2990 return self.api_client.response_deserialize( 2991 response_data=response_data, 2992 response_types_map=_response_types_map, 2993 ).data 2994 2995 def _update_shape_item_flowchart_serialize( 2996 self, 2997 board_id, 2998 item_id, 2999 shape_update_request, 3000 _request_auth, 3001 _content_type, 3002 _headers, 3003 _host_index, 3004 ) -> RequestSerialized: 3005 3006 _host = None 3007 3008 _collection_formats: Dict[str, str] = {} 3009 3010 _path_params: Dict[str, str] = {} 3011 _query_params: List[Tuple[str, str]] = [] 3012 _header_params: Dict[str, Optional[str]] = _headers or {} 3013 _form_params: List[Tuple[str, str]] = [] 3014 _files: Dict[str, str] = {} 3015 _body_params: Optional[bytes] = None 3016 3017 # process the path parameters 3018 if board_id is not None: 3019 _path_params["board_id"] = board_id 3020 if item_id is not None: 3021 _path_params["item_id"] = item_id 3022 # process the query parameters 3023 # process the header parameters 3024 # process the form parameters 3025 # process the body parameter 3026 if shape_update_request is not None: 3027 _body_params = shape_update_request 3028 3029 # set the HTTP header `Accept` 3030 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3031 3032 # set the HTTP header `Content-Type` 3033 if _content_type: 3034 _header_params["Content-Type"] = _content_type 3035 else: 3036 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 3037 if _default_content_type is not None: 3038 _header_params["Content-Type"] = _default_content_type 3039 3040 # authentication setting 3041 _auth_settings: List[str] = [] 3042 3043 return self.api_client.param_serialize( 3044 method="PATCH", 3045 resource_path="/v2-experimental/boards/{board_id}/shapes/{item_id}", 3046 path_params=_path_params, 3047 query_params=_query_params, 3048 header_params=_header_params, 3049 body=_body_params, 3050 post_params=_form_params, 3051 files=_files, 3052 auth_settings=_auth_settings, 3053 collection_formats=_collection_formats, 3054 _host=_host, 3055 _request_auth=_request_auth, 3056 ) 3057 3058 @validate_call 3059 def get_all_cases( 3060 self, 3061 limit: Annotated[ 3062 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3063 ], 3064 org_id: Annotated[ 3065 str, 3066 Field( 3067 strict=True, description="The ID of the organization for which you want to retrieve the list of cases." 3068 ), 3069 ], 3070 cursor: Annotated[ 3071 Optional[StrictStr], 3072 Field( 3073 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3074 ), 3075 ] = None, 3076 _request_timeout: Union[ 3077 None, 3078 Annotated[StrictFloat, Field(gt=0)], 3079 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3080 ] = None, 3081 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3082 _content_type: Optional[StrictStr] = None, 3083 _headers: Optional[Dict[StrictStr, Any]] = None, 3084 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3085 ) -> PaginatedCaseResponse: 3086 """Get all cases 3087 3088 Retrieves the list of eDiscovery cases in an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3089 3090 :param limit: The maximum number of items in the result list. (required) 3091 :type limit: int 3092 :param org_id: The ID of the organization for which you want to retrieve the list of cases. (required) 3093 :type org_id: str 3094 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3095 :type cursor: str 3096 :param _request_timeout: timeout setting for this request. If one 3097 number provided, it will be total request 3098 timeout. It can also be a pair (tuple) of 3099 (connection, read) timeouts. 3100 :type _request_timeout: int, tuple(int, int), optional 3101 :param _request_auth: set to override the auth_settings for an a single 3102 request; this effectively ignores the 3103 authentication in the spec for a single request. 3104 :type _request_auth: dict, optional 3105 :param _content_type: force content-type for the request. 3106 :type _content_type: str, Optional 3107 :param _headers: set to override the headers for a single 3108 request; this effectively ignores the headers 3109 in the spec for a single request. 3110 :type _headers: dict, optional 3111 :param _host_index: set to override the host_index for a single 3112 request; this effectively ignores the host_index 3113 in the spec for a single request. 3114 :type _host_index: int, optional 3115 :return: Returns the result object. 3116 """ # noqa: E501 3117 3118 _param = self._get_all_cases_serialize( 3119 limit=limit, 3120 org_id=org_id, 3121 cursor=cursor, 3122 _request_auth=_request_auth, 3123 _content_type=_content_type, 3124 _headers=_headers, 3125 _host_index=_host_index, 3126 ) 3127 3128 _response_types_map: Dict[str, Optional[str]] = { 3129 "200": "PaginatedCaseResponse", 3130 "400": None, 3131 "401": None, 3132 "403": None, 3133 "404": None, 3134 "429": None, 3135 } 3136 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3137 response_data.read() 3138 return self.api_client.response_deserialize( 3139 response_data=response_data, 3140 response_types_map=_response_types_map, 3141 ).data 3142 3143 def _get_all_cases_serialize( 3144 self, 3145 limit, 3146 org_id, 3147 cursor, 3148 _request_auth, 3149 _content_type, 3150 _headers, 3151 _host_index, 3152 ) -> RequestSerialized: 3153 3154 _host = None 3155 3156 _collection_formats: Dict[str, str] = {} 3157 3158 _path_params: Dict[str, str] = {} 3159 _query_params: List[Tuple[str, str]] = [] 3160 _header_params: Dict[str, Optional[str]] = _headers or {} 3161 _form_params: List[Tuple[str, str]] = [] 3162 _files: Dict[str, str] = {} 3163 _body_params: Optional[bytes] = None 3164 3165 # process the path parameters 3166 if org_id is not None: 3167 _path_params["org_id"] = org_id 3168 # process the query parameters 3169 if limit is not None: 3170 3171 _query_params.append(("limit", limit)) 3172 3173 if cursor is not None: 3174 3175 _query_params.append(("cursor", cursor)) 3176 3177 # process the header parameters 3178 # process the form parameters 3179 # process the body parameter 3180 3181 # set the HTTP header `Accept` 3182 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3183 3184 # authentication setting 3185 _auth_settings: List[str] = [] 3186 3187 return self.api_client.param_serialize( 3188 method="GET", 3189 resource_path="/v2/orgs/{org_id}/cases", 3190 path_params=_path_params, 3191 query_params=_query_params, 3192 header_params=_header_params, 3193 body=_body_params, 3194 post_params=_form_params, 3195 files=_files, 3196 auth_settings=_auth_settings, 3197 collection_formats=_collection_formats, 3198 _host=_host, 3199 _request_auth=_request_auth, 3200 ) 3201 3202 @validate_call 3203 def get_all_legal_holds( 3204 self, 3205 limit: Annotated[ 3206 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3207 ], 3208 org_id: Annotated[ 3209 str, 3210 Field( 3211 strict=True, 3212 description="The ID of the organization for which you want to retrieve the list of legal holds within a case.", 3213 ), 3214 ], 3215 case_id: Annotated[ 3216 str, 3217 Field( 3218 strict=True, description="The ID of the case for which you want to retrieve the list of legal holds." 3219 ), 3220 ], 3221 cursor: Annotated[ 3222 Optional[StrictStr], 3223 Field( 3224 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3225 ), 3226 ] = None, 3227 _request_timeout: Union[ 3228 None, 3229 Annotated[StrictFloat, Field(gt=0)], 3230 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3231 ] = None, 3232 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3233 _content_type: Optional[StrictStr] = None, 3234 _headers: Optional[Dict[StrictStr, Any]] = None, 3235 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3236 ) -> PaginatedLegalHoldResponse: 3237 """Get all legal holds within a case 3238 3239 Retrieves the list of all legal holds within a case for an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3240 3241 :param limit: The maximum number of items in the result list. (required) 3242 :type limit: int 3243 :param org_id: The ID of the organization for which you want to retrieve the list of legal holds within a case. (required) 3244 :type org_id: str 3245 :param case_id: The ID of the case for which you want to retrieve the list of legal holds. (required) 3246 :type case_id: str 3247 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3248 :type cursor: str 3249 :param _request_timeout: timeout setting for this request. If one 3250 number provided, it will be total request 3251 timeout. It can also be a pair (tuple) of 3252 (connection, read) timeouts. 3253 :type _request_timeout: int, tuple(int, int), optional 3254 :param _request_auth: set to override the auth_settings for an a single 3255 request; this effectively ignores the 3256 authentication in the spec for a single request. 3257 :type _request_auth: dict, optional 3258 :param _content_type: force content-type for the request. 3259 :type _content_type: str, Optional 3260 :param _headers: set to override the headers for a single 3261 request; this effectively ignores the headers 3262 in the spec for a single request. 3263 :type _headers: dict, optional 3264 :param _host_index: set to override the host_index for a single 3265 request; this effectively ignores the host_index 3266 in the spec for a single request. 3267 :type _host_index: int, optional 3268 :return: Returns the result object. 3269 """ # noqa: E501 3270 3271 _param = self._get_all_legal_holds_serialize( 3272 limit=limit, 3273 org_id=org_id, 3274 case_id=case_id, 3275 cursor=cursor, 3276 _request_auth=_request_auth, 3277 _content_type=_content_type, 3278 _headers=_headers, 3279 _host_index=_host_index, 3280 ) 3281 3282 _response_types_map: Dict[str, Optional[str]] = { 3283 "200": "PaginatedLegalHoldResponse", 3284 "400": None, 3285 "401": None, 3286 "403": None, 3287 "404": None, 3288 "429": None, 3289 } 3290 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3291 response_data.read() 3292 return self.api_client.response_deserialize( 3293 response_data=response_data, 3294 response_types_map=_response_types_map, 3295 ).data 3296 3297 def _get_all_legal_holds_serialize( 3298 self, 3299 limit, 3300 org_id, 3301 case_id, 3302 cursor, 3303 _request_auth, 3304 _content_type, 3305 _headers, 3306 _host_index, 3307 ) -> RequestSerialized: 3308 3309 _host = None 3310 3311 _collection_formats: Dict[str, str] = {} 3312 3313 _path_params: Dict[str, str] = {} 3314 _query_params: List[Tuple[str, str]] = [] 3315 _header_params: Dict[str, Optional[str]] = _headers or {} 3316 _form_params: List[Tuple[str, str]] = [] 3317 _files: Dict[str, str] = {} 3318 _body_params: Optional[bytes] = None 3319 3320 # process the path parameters 3321 if org_id is not None: 3322 _path_params["org_id"] = org_id 3323 if case_id is not None: 3324 _path_params["case_id"] = case_id 3325 # process the query parameters 3326 if limit is not None: 3327 3328 _query_params.append(("limit", limit)) 3329 3330 if cursor is not None: 3331 3332 _query_params.append(("cursor", cursor)) 3333 3334 # process the header parameters 3335 # process the form parameters 3336 # process the body parameter 3337 3338 # set the HTTP header `Accept` 3339 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3340 3341 # authentication setting 3342 _auth_settings: List[str] = [] 3343 3344 return self.api_client.param_serialize( 3345 method="GET", 3346 resource_path="/v2/orgs/{org_id}/cases/{case_id}/legal-holds", 3347 path_params=_path_params, 3348 query_params=_query_params, 3349 header_params=_header_params, 3350 body=_body_params, 3351 post_params=_form_params, 3352 files=_files, 3353 auth_settings=_auth_settings, 3354 collection_formats=_collection_formats, 3355 _host=_host, 3356 _request_auth=_request_auth, 3357 ) 3358 3359 @validate_call 3360 def get_case( 3361 self, 3362 org_id: Annotated[ 3363 str, 3364 Field( 3365 strict=True, 3366 description="The ID of the organization for which you want to retrieve the case information.", 3367 ), 3368 ], 3369 case_id: Annotated[str, Field(strict=True, description="The ID of the case you want to retrieve.")], 3370 _request_timeout: Union[ 3371 None, 3372 Annotated[StrictFloat, Field(gt=0)], 3373 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3374 ] = None, 3375 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3376 _content_type: Optional[StrictStr] = None, 3377 _headers: Optional[Dict[StrictStr, Any]] = None, 3378 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3379 ) -> CaseResponse: 3380 """Get case 3381 3382 Retrieves information about a case in an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3383 3384 :param org_id: The ID of the organization for which you want to retrieve the case information. (required) 3385 :type org_id: str 3386 :param case_id: The ID of the case you want to retrieve. (required) 3387 :type case_id: str 3388 :param _request_timeout: timeout setting for this request. If one 3389 number provided, it will be total request 3390 timeout. It can also be a pair (tuple) of 3391 (connection, read) timeouts. 3392 :type _request_timeout: int, tuple(int, int), optional 3393 :param _request_auth: set to override the auth_settings for an a single 3394 request; this effectively ignores the 3395 authentication in the spec for a single request. 3396 :type _request_auth: dict, optional 3397 :param _content_type: force content-type for the request. 3398 :type _content_type: str, Optional 3399 :param _headers: set to override the headers for a single 3400 request; this effectively ignores the headers 3401 in the spec for a single request. 3402 :type _headers: dict, optional 3403 :param _host_index: set to override the host_index for a single 3404 request; this effectively ignores the host_index 3405 in the spec for a single request. 3406 :type _host_index: int, optional 3407 :return: Returns the result object. 3408 """ # noqa: E501 3409 3410 _param = self._get_case_serialize( 3411 org_id=org_id, 3412 case_id=case_id, 3413 _request_auth=_request_auth, 3414 _content_type=_content_type, 3415 _headers=_headers, 3416 _host_index=_host_index, 3417 ) 3418 3419 _response_types_map: Dict[str, Optional[str]] = { 3420 "200": "CaseResponse", 3421 "400": None, 3422 "401": None, 3423 "403": None, 3424 "404": None, 3425 "429": None, 3426 } 3427 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3428 response_data.read() 3429 return self.api_client.response_deserialize( 3430 response_data=response_data, 3431 response_types_map=_response_types_map, 3432 ).data 3433 3434 def _get_case_serialize( 3435 self, 3436 org_id, 3437 case_id, 3438 _request_auth, 3439 _content_type, 3440 _headers, 3441 _host_index, 3442 ) -> RequestSerialized: 3443 3444 _host = None 3445 3446 _collection_formats: Dict[str, str] = {} 3447 3448 _path_params: Dict[str, str] = {} 3449 _query_params: List[Tuple[str, str]] = [] 3450 _header_params: Dict[str, Optional[str]] = _headers or {} 3451 _form_params: List[Tuple[str, str]] = [] 3452 _files: Dict[str, str] = {} 3453 _body_params: Optional[bytes] = None 3454 3455 # process the path parameters 3456 if org_id is not None: 3457 _path_params["org_id"] = org_id 3458 if case_id is not None: 3459 _path_params["case_id"] = case_id 3460 # process the query parameters 3461 # process the header parameters 3462 # process the form parameters 3463 # process the body parameter 3464 3465 # set the HTTP header `Accept` 3466 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3467 3468 # authentication setting 3469 _auth_settings: List[str] = [] 3470 3471 return self.api_client.param_serialize( 3472 method="GET", 3473 resource_path="/v2/orgs/{org_id}/cases/{case_id}", 3474 path_params=_path_params, 3475 query_params=_query_params, 3476 header_params=_header_params, 3477 body=_body_params, 3478 post_params=_form_params, 3479 files=_files, 3480 auth_settings=_auth_settings, 3481 collection_formats=_collection_formats, 3482 _host=_host, 3483 _request_auth=_request_auth, 3484 ) 3485 3486 @validate_call 3487 def get_legal_hold( 3488 self, 3489 org_id: Annotated[ 3490 str, 3491 Field( 3492 strict=True, 3493 description="The ID of the organization for which you want to retrieve the legal hold information.", 3494 ), 3495 ], 3496 case_id: Annotated[ 3497 str, 3498 Field( 3499 strict=True, description="The ID of the case for which you want to retrieve the legal hold information." 3500 ), 3501 ], 3502 legal_hold_id: Annotated[str, Field(strict=True, description="The ID of the legal hold you want to retrieve.")], 3503 _request_timeout: Union[ 3504 None, 3505 Annotated[StrictFloat, Field(gt=0)], 3506 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3507 ] = None, 3508 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3509 _content_type: Optional[StrictStr] = None, 3510 _headers: Optional[Dict[StrictStr, Any]] = None, 3511 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3512 ) -> LegalHoldResponse: 3513 """Get legal hold information 3514 3515 Retrieves information about a legal hold within a case for an organization. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3516 3517 :param org_id: The ID of the organization for which you want to retrieve the legal hold information. (required) 3518 :type org_id: str 3519 :param case_id: The ID of the case for which you want to retrieve the legal hold information. (required) 3520 :type case_id: str 3521 :param legal_hold_id: The ID of the legal hold you want to retrieve. (required) 3522 :type legal_hold_id: str 3523 :param _request_timeout: timeout setting for this request. If one 3524 number provided, it will be total request 3525 timeout. It can also be a pair (tuple) of 3526 (connection, read) timeouts. 3527 :type _request_timeout: int, tuple(int, int), optional 3528 :param _request_auth: set to override the auth_settings for an a single 3529 request; this effectively ignores the 3530 authentication in the spec for a single request. 3531 :type _request_auth: dict, optional 3532 :param _content_type: force content-type for the request. 3533 :type _content_type: str, Optional 3534 :param _headers: set to override the headers for a single 3535 request; this effectively ignores the headers 3536 in the spec for a single request. 3537 :type _headers: dict, optional 3538 :param _host_index: set to override the host_index for a single 3539 request; this effectively ignores the host_index 3540 in the spec for a single request. 3541 :type _host_index: int, optional 3542 :return: Returns the result object. 3543 """ # noqa: E501 3544 3545 _param = self._get_legal_hold_serialize( 3546 org_id=org_id, 3547 case_id=case_id, 3548 legal_hold_id=legal_hold_id, 3549 _request_auth=_request_auth, 3550 _content_type=_content_type, 3551 _headers=_headers, 3552 _host_index=_host_index, 3553 ) 3554 3555 _response_types_map: Dict[str, Optional[str]] = { 3556 "200": "LegalHoldResponse", 3557 "400": None, 3558 "401": None, 3559 "403": None, 3560 "404": None, 3561 "429": None, 3562 } 3563 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3564 response_data.read() 3565 return self.api_client.response_deserialize( 3566 response_data=response_data, 3567 response_types_map=_response_types_map, 3568 ).data 3569 3570 def _get_legal_hold_serialize( 3571 self, 3572 org_id, 3573 case_id, 3574 legal_hold_id, 3575 _request_auth, 3576 _content_type, 3577 _headers, 3578 _host_index, 3579 ) -> RequestSerialized: 3580 3581 _host = None 3582 3583 _collection_formats: Dict[str, str] = {} 3584 3585 _path_params: Dict[str, str] = {} 3586 _query_params: List[Tuple[str, str]] = [] 3587 _header_params: Dict[str, Optional[str]] = _headers or {} 3588 _form_params: List[Tuple[str, str]] = [] 3589 _files: Dict[str, str] = {} 3590 _body_params: Optional[bytes] = None 3591 3592 # process the path parameters 3593 if org_id is not None: 3594 _path_params["org_id"] = org_id 3595 if case_id is not None: 3596 _path_params["case_id"] = case_id 3597 if legal_hold_id is not None: 3598 _path_params["legal_hold_id"] = legal_hold_id 3599 # process the query parameters 3600 # process the header parameters 3601 # process the form parameters 3602 # process the body parameter 3603 3604 # set the HTTP header `Accept` 3605 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3606 3607 # authentication setting 3608 _auth_settings: List[str] = [] 3609 3610 return self.api_client.param_serialize( 3611 method="GET", 3612 resource_path="/v2/orgs/{org_id}/cases/{case_id}/legal-holds/{legal_hold_id}", 3613 path_params=_path_params, 3614 query_params=_query_params, 3615 header_params=_header_params, 3616 body=_body_params, 3617 post_params=_form_params, 3618 files=_files, 3619 auth_settings=_auth_settings, 3620 collection_formats=_collection_formats, 3621 _host=_host, 3622 _request_auth=_request_auth, 3623 ) 3624 3625 @validate_call 3626 def get_legal_hold_content_items( 3627 self, 3628 org_id: Annotated[ 3629 str, 3630 Field( 3631 strict=True, 3632 description="The ID of the organization for which you want to retrieve the list of content items under hold.", 3633 ), 3634 ], 3635 case_id: Annotated[ 3636 str, 3637 Field( 3638 strict=True, 3639 description="The ID of the case for which you want to retrieve the list of content items under hold.", 3640 ), 3641 ], 3642 legal_hold_id: Annotated[ 3643 str, 3644 Field( 3645 strict=True, 3646 description="The ID of the legal hold for which you want to retrieve the list of content items under hold.", 3647 ), 3648 ], 3649 limit: Annotated[ 3650 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3651 ], 3652 cursor: Annotated[ 3653 Optional[StrictStr], 3654 Field( 3655 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3656 ), 3657 ] = None, 3658 _request_timeout: Union[ 3659 None, 3660 Annotated[StrictFloat, Field(gt=0)], 3661 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3662 ] = None, 3663 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3664 _content_type: Optional[StrictStr] = None, 3665 _headers: Optional[Dict[StrictStr, Any]] = None, 3666 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3667 ) -> PaginatedLegalHoldContentItemsResponse: 3668 """Get content items under legal hold 3669 3670 Once a legal hold is in place you can review or explore the preserved Miro boards to ensure that all relevant data is intact and ready for legal proceedings or investigations. For more information, see our <a href=\"https://help.miro.com/hc/en-us/articles/22120628583570-Review-boards-under-legal-hold\" target=_blank>Help Center page on reviewing boards under legal hold</a>. <br><br>This API lists all content items under a specific legal hold in a case for an organization. Please verify that the legal hold is in 'ACTIVE' state to guarantee that the legal hold has finished processing the full list of content items under hold. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3671 3672 :param org_id: The ID of the organization for which you want to retrieve the list of content items under hold. (required) 3673 :type org_id: str 3674 :param case_id: The ID of the case for which you want to retrieve the list of content items under hold. (required) 3675 :type case_id: str 3676 :param legal_hold_id: The ID of the legal hold for which you want to retrieve the list of content items under hold. (required) 3677 :type legal_hold_id: str 3678 :param limit: The maximum number of items in the result list. (required) 3679 :type limit: int 3680 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3681 :type cursor: str 3682 :param _request_timeout: timeout setting for this request. If one 3683 number provided, it will be total request 3684 timeout. It can also be a pair (tuple) of 3685 (connection, read) timeouts. 3686 :type _request_timeout: int, tuple(int, int), optional 3687 :param _request_auth: set to override the auth_settings for an a single 3688 request; this effectively ignores the 3689 authentication in the spec for a single request. 3690 :type _request_auth: dict, optional 3691 :param _content_type: force content-type for the request. 3692 :type _content_type: str, Optional 3693 :param _headers: set to override the headers for a single 3694 request; this effectively ignores the headers 3695 in the spec for a single request. 3696 :type _headers: dict, optional 3697 :param _host_index: set to override the host_index for a single 3698 request; this effectively ignores the host_index 3699 in the spec for a single request. 3700 :type _host_index: int, optional 3701 :return: Returns the result object. 3702 """ # noqa: E501 3703 3704 _param = self._get_legal_hold_content_items_serialize( 3705 org_id=org_id, 3706 case_id=case_id, 3707 legal_hold_id=legal_hold_id, 3708 limit=limit, 3709 cursor=cursor, 3710 _request_auth=_request_auth, 3711 _content_type=_content_type, 3712 _headers=_headers, 3713 _host_index=_host_index, 3714 ) 3715 3716 _response_types_map: Dict[str, Optional[str]] = { 3717 "200": "PaginatedLegalHoldContentItemsResponse", 3718 "400": None, 3719 "401": None, 3720 "403": None, 3721 "404": None, 3722 "429": None, 3723 } 3724 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3725 response_data.read() 3726 return self.api_client.response_deserialize( 3727 response_data=response_data, 3728 response_types_map=_response_types_map, 3729 ).data 3730 3731 def _get_legal_hold_content_items_serialize( 3732 self, 3733 org_id, 3734 case_id, 3735 legal_hold_id, 3736 limit, 3737 cursor, 3738 _request_auth, 3739 _content_type, 3740 _headers, 3741 _host_index, 3742 ) -> RequestSerialized: 3743 3744 _host = None 3745 3746 _collection_formats: Dict[str, str] = {} 3747 3748 _path_params: Dict[str, str] = {} 3749 _query_params: List[Tuple[str, str]] = [] 3750 _header_params: Dict[str, Optional[str]] = _headers or {} 3751 _form_params: List[Tuple[str, str]] = [] 3752 _files: Dict[str, str] = {} 3753 _body_params: Optional[bytes] = None 3754 3755 # process the path parameters 3756 if org_id is not None: 3757 _path_params["org_id"] = org_id 3758 if case_id is not None: 3759 _path_params["case_id"] = case_id 3760 if legal_hold_id is not None: 3761 _path_params["legal_hold_id"] = legal_hold_id 3762 # process the query parameters 3763 if limit is not None: 3764 3765 _query_params.append(("limit", limit)) 3766 3767 if cursor is not None: 3768 3769 _query_params.append(("cursor", cursor)) 3770 3771 # process the header parameters 3772 # process the form parameters 3773 # process the body parameter 3774 3775 # set the HTTP header `Accept` 3776 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3777 3778 # authentication setting 3779 _auth_settings: List[str] = [] 3780 3781 return self.api_client.param_serialize( 3782 method="GET", 3783 resource_path="/v2/orgs/{org_id}/cases/{case_id}/legal-holds/{legal_hold_id}/content-items", 3784 path_params=_path_params, 3785 query_params=_query_params, 3786 header_params=_header_params, 3787 body=_body_params, 3788 post_params=_form_params, 3789 files=_files, 3790 auth_settings=_auth_settings, 3791 collection_formats=_collection_formats, 3792 _host=_host, 3793 _request_auth=_request_auth, 3794 ) 3795 3796 @validate_call 3797 def create_mindmap_nodes_experimental( 3798 self, 3799 board_id: Annotated[ 3800 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 3801 ], 3802 mindmap_create_request: MindmapCreateRequest, 3803 _request_timeout: Union[ 3804 None, 3805 Annotated[StrictFloat, Field(gt=0)], 3806 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3807 ] = None, 3808 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3809 _content_type: Optional[StrictStr] = None, 3810 _headers: Optional[Dict[StrictStr, Any]] = None, 3811 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3812 ) -> MindmapItem: 3813 """Create mind map node 3814 3815 Adds a mind map node to a board. A root node is the starting point of a mind map. A node that is created under a root node is a child node. For information on mind maps, use cases, mind map structure, and more, see the <a href=\"https://developers.miro.com/docs/mind-maps\" target=_blank>Mind Map Overview</a> page. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/><br/> <b>Known limitations on node placement: </b> Currently, the create API supports explicit positions for nodes. This means that users can only place nodes based on the x, y coordinates provided in the position parameters. If the position is not provided in the request, nodes default to coordinates x=0, y=0, effectively placing them at the center of the board. <br /><br /><b>Upcoming changes:</b> We understand the importance of flexibility in node placement. We are actively working on implementing changes to support positioning nodes relative to their parent node as well. This enhancement offers a more dynamic and intuitive mind mapping experience. <br /><br />Additionally, we are actively working on providing the update API, further enhancing the functionality of mind map APIs. 3816 3817 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 3818 :type board_id: str 3819 :param mindmap_create_request: (required) 3820 :type mindmap_create_request: MindmapCreateRequest 3821 :param _request_timeout: timeout setting for this request. If one 3822 number provided, it will be total request 3823 timeout. It can also be a pair (tuple) of 3824 (connection, read) timeouts. 3825 :type _request_timeout: int, tuple(int, int), optional 3826 :param _request_auth: set to override the auth_settings for an a single 3827 request; this effectively ignores the 3828 authentication in the spec for a single request. 3829 :type _request_auth: dict, optional 3830 :param _content_type: force content-type for the request. 3831 :type _content_type: str, Optional 3832 :param _headers: set to override the headers for a single 3833 request; this effectively ignores the headers 3834 in the spec for a single request. 3835 :type _headers: dict, optional 3836 :param _host_index: set to override the host_index for a single 3837 request; this effectively ignores the host_index 3838 in the spec for a single request. 3839 :type _host_index: int, optional 3840 :return: Returns the result object. 3841 """ # noqa: E501 3842 3843 _param = self._create_mindmap_nodes_experimental_serialize( 3844 board_id=board_id, 3845 mindmap_create_request=mindmap_create_request, 3846 _request_auth=_request_auth, 3847 _content_type=_content_type, 3848 _headers=_headers, 3849 _host_index=_host_index, 3850 ) 3851 3852 _response_types_map: Dict[str, Optional[str]] = { 3853 "201": "MindmapItem", 3854 "400": "CreateFrameItem400Response", 3855 "404": "CreateFrameItem400Response", 3856 "429": "CreateFrameItem400Response", 3857 } 3858 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3859 response_data.read() 3860 return self.api_client.response_deserialize( 3861 response_data=response_data, 3862 response_types_map=_response_types_map, 3863 ).data 3864 3865 def _create_mindmap_nodes_experimental_serialize( 3866 self, 3867 board_id, 3868 mindmap_create_request, 3869 _request_auth, 3870 _content_type, 3871 _headers, 3872 _host_index, 3873 ) -> RequestSerialized: 3874 3875 _host = None 3876 3877 _collection_formats: Dict[str, str] = {} 3878 3879 _path_params: Dict[str, str] = {} 3880 _query_params: List[Tuple[str, str]] = [] 3881 _header_params: Dict[str, Optional[str]] = _headers or {} 3882 _form_params: List[Tuple[str, str]] = [] 3883 _files: Dict[str, str] = {} 3884 _body_params: Optional[bytes] = None 3885 3886 # process the path parameters 3887 if board_id is not None: 3888 _path_params["board_id"] = board_id 3889 # process the query parameters 3890 # process the header parameters 3891 # process the form parameters 3892 # process the body parameter 3893 if mindmap_create_request is not None: 3894 _body_params = mindmap_create_request 3895 3896 # set the HTTP header `Accept` 3897 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 3898 3899 # set the HTTP header `Content-Type` 3900 if _content_type: 3901 _header_params["Content-Type"] = _content_type 3902 else: 3903 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 3904 if _default_content_type is not None: 3905 _header_params["Content-Type"] = _default_content_type 3906 3907 # authentication setting 3908 _auth_settings: List[str] = [] 3909 3910 return self.api_client.param_serialize( 3911 method="POST", 3912 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes", 3913 path_params=_path_params, 3914 query_params=_query_params, 3915 header_params=_header_params, 3916 body=_body_params, 3917 post_params=_form_params, 3918 files=_files, 3919 auth_settings=_auth_settings, 3920 collection_formats=_collection_formats, 3921 _host=_host, 3922 _request_auth=_request_auth, 3923 ) 3924 3925 @validate_call 3926 def delete_mindmap_node_experimental( 3927 self, 3928 board_id: Annotated[ 3929 StrictStr, 3930 Field(description="Unique identifier (ID) of the board from which you want to delete the mind map node."), 3931 ], 3932 item_id: Annotated[ 3933 StrictStr, Field(description="Unique identifier (ID) of the mind map node that you want to delete.") 3934 ], 3935 _request_timeout: Union[ 3936 None, 3937 Annotated[StrictFloat, Field(gt=0)], 3938 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3939 ] = None, 3940 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3941 _content_type: Optional[StrictStr] = None, 3942 _headers: Optional[Dict[StrictStr, Any]] = None, 3943 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3944 ) -> object: 3945 """Delete mind map node 3946 3947 Deletes a mind map node item and its child nodes from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 3948 3949 :param board_id: Unique identifier (ID) of the board from which you want to delete the mind map node. (required) 3950 :type board_id: str 3951 :param item_id: Unique identifier (ID) of the mind map node that you want to delete. (required) 3952 :type item_id: str 3953 :param _request_timeout: timeout setting for this request. If one 3954 number provided, it will be total request 3955 timeout. It can also be a pair (tuple) of 3956 (connection, read) timeouts. 3957 :type _request_timeout: int, tuple(int, int), optional 3958 :param _request_auth: set to override the auth_settings for an a single 3959 request; this effectively ignores the 3960 authentication in the spec for a single request. 3961 :type _request_auth: dict, optional 3962 :param _content_type: force content-type for the request. 3963 :type _content_type: str, Optional 3964 :param _headers: set to override the headers for a single 3965 request; this effectively ignores the headers 3966 in the spec for a single request. 3967 :type _headers: dict, optional 3968 :param _host_index: set to override the host_index for a single 3969 request; this effectively ignores the host_index 3970 in the spec for a single request. 3971 :type _host_index: int, optional 3972 :return: Returns the result object. 3973 """ # noqa: E501 3974 3975 _param = self._delete_mindmap_node_experimental_serialize( 3976 board_id=board_id, 3977 item_id=item_id, 3978 _request_auth=_request_auth, 3979 _content_type=_content_type, 3980 _headers=_headers, 3981 _host_index=_host_index, 3982 ) 3983 3984 _response_types_map: Dict[str, Optional[str]] = { 3985 "204": "object", 3986 "400": "CreateFrameItem400Response", 3987 "404": "CreateFrameItem400Response", 3988 "429": "CreateFrameItem400Response", 3989 } 3990 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3991 response_data.read() 3992 return self.api_client.response_deserialize( 3993 response_data=response_data, 3994 response_types_map=_response_types_map, 3995 ).data 3996 3997 def _delete_mindmap_node_experimental_serialize( 3998 self, 3999 board_id, 4000 item_id, 4001 _request_auth, 4002 _content_type, 4003 _headers, 4004 _host_index, 4005 ) -> RequestSerialized: 4006 4007 _host = None 4008 4009 _collection_formats: Dict[str, str] = {} 4010 4011 _path_params: Dict[str, str] = {} 4012 _query_params: List[Tuple[str, str]] = [] 4013 _header_params: Dict[str, Optional[str]] = _headers or {} 4014 _form_params: List[Tuple[str, str]] = [] 4015 _files: Dict[str, str] = {} 4016 _body_params: Optional[bytes] = None 4017 4018 # process the path parameters 4019 if board_id is not None: 4020 _path_params["board_id"] = board_id 4021 if item_id is not None: 4022 _path_params["item_id"] = item_id 4023 # process the query parameters 4024 # process the header parameters 4025 # process the form parameters 4026 # process the body parameter 4027 4028 # set the HTTP header `Accept` 4029 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4030 4031 # authentication setting 4032 _auth_settings: List[str] = [] 4033 4034 return self.api_client.param_serialize( 4035 method="DELETE", 4036 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes/{item_id}", 4037 path_params=_path_params, 4038 query_params=_query_params, 4039 header_params=_header_params, 4040 body=_body_params, 4041 post_params=_form_params, 4042 files=_files, 4043 auth_settings=_auth_settings, 4044 collection_formats=_collection_formats, 4045 _host=_host, 4046 _request_auth=_request_auth, 4047 ) 4048 4049 @validate_call 4050 def get_mindmap_node_experimental( 4051 self, 4052 board_id: Annotated[ 4053 StrictStr, 4054 Field(description="Unique identifier (ID) of the board from which you want to retrieve a mind map node."), 4055 ], 4056 item_id: Annotated[ 4057 StrictStr, Field(description="Unique identifier (ID) of the mind map node that you want to retrieve.") 4058 ], 4059 _request_timeout: Union[ 4060 None, 4061 Annotated[StrictFloat, Field(gt=0)], 4062 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4063 ] = None, 4064 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4065 _content_type: Optional[StrictStr] = None, 4066 _headers: Optional[Dict[StrictStr, Any]] = None, 4067 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4068 ) -> MindmapItem: 4069 """Get specific mind map node 4070 4071 Retrieves information for a specific mind map node on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 4072 4073 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a mind map node. (required) 4074 :type board_id: str 4075 :param item_id: Unique identifier (ID) of the mind map node that you want to retrieve. (required) 4076 :type item_id: str 4077 :param _request_timeout: timeout setting for this request. If one 4078 number provided, it will be total request 4079 timeout. It can also be a pair (tuple) of 4080 (connection, read) timeouts. 4081 :type _request_timeout: int, tuple(int, int), optional 4082 :param _request_auth: set to override the auth_settings for an a single 4083 request; this effectively ignores the 4084 authentication in the spec for a single request. 4085 :type _request_auth: dict, optional 4086 :param _content_type: force content-type for the request. 4087 :type _content_type: str, Optional 4088 :param _headers: set to override the headers for a single 4089 request; this effectively ignores the headers 4090 in the spec for a single request. 4091 :type _headers: dict, optional 4092 :param _host_index: set to override the host_index for a single 4093 request; this effectively ignores the host_index 4094 in the spec for a single request. 4095 :type _host_index: int, optional 4096 :return: Returns the result object. 4097 """ # noqa: E501 4098 4099 _param = self._get_mindmap_node_experimental_serialize( 4100 board_id=board_id, 4101 item_id=item_id, 4102 _request_auth=_request_auth, 4103 _content_type=_content_type, 4104 _headers=_headers, 4105 _host_index=_host_index, 4106 ) 4107 4108 _response_types_map: Dict[str, Optional[str]] = { 4109 "200": "MindmapItem", 4110 } 4111 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4112 response_data.read() 4113 return self.api_client.response_deserialize( 4114 response_data=response_data, 4115 response_types_map=_response_types_map, 4116 ).data 4117 4118 def _get_mindmap_node_experimental_serialize( 4119 self, 4120 board_id, 4121 item_id, 4122 _request_auth, 4123 _content_type, 4124 _headers, 4125 _host_index, 4126 ) -> RequestSerialized: 4127 4128 _host = None 4129 4130 _collection_formats: Dict[str, str] = {} 4131 4132 _path_params: Dict[str, str] = {} 4133 _query_params: List[Tuple[str, str]] = [] 4134 _header_params: Dict[str, Optional[str]] = _headers or {} 4135 _form_params: List[Tuple[str, str]] = [] 4136 _files: Dict[str, str] = {} 4137 _body_params: Optional[bytes] = None 4138 4139 # process the path parameters 4140 if board_id is not None: 4141 _path_params["board_id"] = board_id 4142 if item_id is not None: 4143 _path_params["item_id"] = item_id 4144 # process the query parameters 4145 # process the header parameters 4146 # process the form parameters 4147 # process the body parameter 4148 4149 # set the HTTP header `Accept` 4150 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4151 4152 # authentication setting 4153 _auth_settings: List[str] = [] 4154 4155 return self.api_client.param_serialize( 4156 method="GET", 4157 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes/{item_id}", 4158 path_params=_path_params, 4159 query_params=_query_params, 4160 header_params=_header_params, 4161 body=_body_params, 4162 post_params=_form_params, 4163 files=_files, 4164 auth_settings=_auth_settings, 4165 collection_formats=_collection_formats, 4166 _host=_host, 4167 _request_auth=_request_auth, 4168 ) 4169 4170 @validate_call 4171 def get_mindmap_nodes_experimental( 4172 self, 4173 board_id: Annotated[ 4174 StrictStr, 4175 Field(description="Unique identifier (ID) of the board from which you want to retrieve mind map nodes."), 4176 ], 4177 limit: Annotated[Optional[StrictStr], Field(description="Maximum number of results returned")] = None, 4178 cursor: Annotated[ 4179 Optional[StrictStr], Field(description="Points to the next portion of the results set") 4180 ] = None, 4181 _request_timeout: Union[ 4182 None, 4183 Annotated[StrictFloat, Field(gt=0)], 4184 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4185 ] = None, 4186 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4187 _content_type: Optional[StrictStr] = None, 4188 _headers: Optional[Dict[StrictStr, Any]] = None, 4189 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4190 ) -> MindmapCursorPaged: 4191 """Get mind map nodes 4192 4193 Retrieves a list of mind map nodes for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 4194 4195 :param board_id: Unique identifier (ID) of the board from which you want to retrieve mind map nodes. (required) 4196 :type board_id: str 4197 :param limit: Maximum number of results returned 4198 :type limit: str 4199 :param cursor: Points to the next portion of the results set 4200 :type cursor: str 4201 :param _request_timeout: timeout setting for this request. If one 4202 number provided, it will be total request 4203 timeout. It can also be a pair (tuple) of 4204 (connection, read) timeouts. 4205 :type _request_timeout: int, tuple(int, int), optional 4206 :param _request_auth: set to override the auth_settings for an a single 4207 request; this effectively ignores the 4208 authentication in the spec for a single request. 4209 :type _request_auth: dict, optional 4210 :param _content_type: force content-type for the request. 4211 :type _content_type: str, Optional 4212 :param _headers: set to override the headers for a single 4213 request; this effectively ignores the headers 4214 in the spec for a single request. 4215 :type _headers: dict, optional 4216 :param _host_index: set to override the host_index for a single 4217 request; this effectively ignores the host_index 4218 in the spec for a single request. 4219 :type _host_index: int, optional 4220 :return: Returns the result object. 4221 """ # noqa: E501 4222 4223 _param = self._get_mindmap_nodes_experimental_serialize( 4224 board_id=board_id, 4225 limit=limit, 4226 cursor=cursor, 4227 _request_auth=_request_auth, 4228 _content_type=_content_type, 4229 _headers=_headers, 4230 _host_index=_host_index, 4231 ) 4232 4233 _response_types_map: Dict[str, Optional[str]] = { 4234 "200": "MindmapCursorPaged", 4235 } 4236 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4237 response_data.read() 4238 return self.api_client.response_deserialize( 4239 response_data=response_data, 4240 response_types_map=_response_types_map, 4241 ).data 4242 4243 def _get_mindmap_nodes_experimental_serialize( 4244 self, 4245 board_id, 4246 limit, 4247 cursor, 4248 _request_auth, 4249 _content_type, 4250 _headers, 4251 _host_index, 4252 ) -> RequestSerialized: 4253 4254 _host = None 4255 4256 _collection_formats: Dict[str, str] = {} 4257 4258 _path_params: Dict[str, str] = {} 4259 _query_params: List[Tuple[str, str]] = [] 4260 _header_params: Dict[str, Optional[str]] = _headers or {} 4261 _form_params: List[Tuple[str, str]] = [] 4262 _files: Dict[str, str] = {} 4263 _body_params: Optional[bytes] = None 4264 4265 # process the path parameters 4266 if board_id is not None: 4267 _path_params["board_id"] = board_id 4268 # process the query parameters 4269 if limit is not None: 4270 4271 _query_params.append(("limit", limit)) 4272 4273 if cursor is not None: 4274 4275 _query_params.append(("cursor", cursor)) 4276 4277 # process the header parameters 4278 # process the form parameters 4279 # process the body parameter 4280 4281 # set the HTTP header `Accept` 4282 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4283 4284 # authentication setting 4285 _auth_settings: List[str] = [] 4286 4287 return self.api_client.param_serialize( 4288 method="GET", 4289 resource_path="/v2-experimental/boards/{board_id}/mindmap_nodes", 4290 path_params=_path_params, 4291 query_params=_query_params, 4292 header_params=_header_params, 4293 body=_body_params, 4294 post_params=_form_params, 4295 files=_files, 4296 auth_settings=_auth_settings, 4297 collection_formats=_collection_formats, 4298 _host=_host, 4299 _request_auth=_request_auth, 4300 ) 4301 4302 @validate_call 4303 def revoke_token_v2( 4304 self, 4305 revoke_token_request: RevokeTokenRequest, 4306 _request_timeout: Union[ 4307 None, 4308 Annotated[StrictFloat, Field(gt=0)], 4309 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4310 ] = None, 4311 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4312 _content_type: Optional[StrictStr] = None, 4313 _headers: Optional[Dict[StrictStr, Any]] = None, 4314 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4315 ) -> None: 4316 """Revoke token (v2) 4317 4318 Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user. 4319 4320 :param revoke_token_request: (required) 4321 :type revoke_token_request: RevokeTokenRequest 4322 :param _request_timeout: timeout setting for this request. If one 4323 number provided, it will be total request 4324 timeout. It can also be a pair (tuple) of 4325 (connection, read) timeouts. 4326 :type _request_timeout: int, tuple(int, int), optional 4327 :param _request_auth: set to override the auth_settings for an a single 4328 request; this effectively ignores the 4329 authentication in the spec for a single request. 4330 :type _request_auth: dict, optional 4331 :param _content_type: force content-type for the request. 4332 :type _content_type: str, Optional 4333 :param _headers: set to override the headers for a single 4334 request; this effectively ignores the headers 4335 in the spec for a single request. 4336 :type _headers: dict, optional 4337 :param _host_index: set to override the host_index for a single 4338 request; this effectively ignores the host_index 4339 in the spec for a single request. 4340 :type _host_index: int, optional 4341 :return: Returns the result object. 4342 """ # noqa: E501 4343 4344 _param = self._revoke_token_v2_serialize( 4345 revoke_token_request=revoke_token_request, 4346 _request_auth=_request_auth, 4347 _content_type=_content_type, 4348 _headers=_headers, 4349 _host_index=_host_index, 4350 ) 4351 4352 _response_types_map: Dict[str, Optional[str]] = { 4353 "204": None, 4354 "404": "ErrorResponse", 4355 } 4356 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4357 response_data.read() 4358 return self.api_client.response_deserialize( 4359 response_data=response_data, 4360 response_types_map=_response_types_map, 4361 ).data 4362 4363 def _revoke_token_v2_serialize( 4364 self, 4365 revoke_token_request, 4366 _request_auth, 4367 _content_type, 4368 _headers, 4369 _host_index, 4370 ) -> RequestSerialized: 4371 4372 _host = None 4373 4374 _collection_formats: Dict[str, str] = {} 4375 4376 _path_params: Dict[str, str] = {} 4377 _query_params: List[Tuple[str, str]] = [] 4378 _header_params: Dict[str, Optional[str]] = _headers or {} 4379 _form_params: List[Tuple[str, str]] = [] 4380 _files: Dict[str, str] = {} 4381 _body_params: Optional[bytes] = None 4382 4383 # process the path parameters 4384 # process the query parameters 4385 # process the header parameters 4386 # process the form parameters 4387 # process the body parameter 4388 if revoke_token_request is not None: 4389 _body_params = revoke_token_request 4390 4391 # set the HTTP header `Accept` 4392 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4393 4394 # set the HTTP header `Content-Type` 4395 if _content_type: 4396 _header_params["Content-Type"] = _content_type 4397 else: 4398 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 4399 if _default_content_type is not None: 4400 _header_params["Content-Type"] = _default_content_type 4401 4402 # authentication setting 4403 _auth_settings: List[str] = [] 4404 4405 return self.api_client.param_serialize( 4406 method="POST", 4407 resource_path="/v2/oauth/revoke", 4408 path_params=_path_params, 4409 query_params=_query_params, 4410 header_params=_header_params, 4411 body=_body_params, 4412 post_params=_form_params, 4413 files=_files, 4414 auth_settings=_auth_settings, 4415 collection_formats=_collection_formats, 4416 _host=_host, 4417 _request_auth=_request_auth, 4418 ) 4419 4420 @validate_call 4421 def enterprise_get_organization_member( 4422 self, 4423 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4424 member_id: Annotated[StrictStr, Field(description="id of the organization member")], 4425 _request_timeout: Union[ 4426 None, 4427 Annotated[StrictFloat, Field(gt=0)], 4428 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4429 ] = None, 4430 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4431 _content_type: Optional[StrictStr] = None, 4432 _headers: Optional[Dict[StrictStr, Any]] = None, 4433 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4434 ) -> OrganizationMember: 4435 """Get organization member 4436 4437 Retrieves organization member information for an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4438 4439 :param org_id: id of the organization (required) 4440 :type org_id: str 4441 :param member_id: id of the organization member (required) 4442 :type member_id: str 4443 :param _request_timeout: timeout setting for this request. If one 4444 number provided, it will be total request 4445 timeout. It can also be a pair (tuple) of 4446 (connection, read) timeouts. 4447 :type _request_timeout: int, tuple(int, int), optional 4448 :param _request_auth: set to override the auth_settings for an a single 4449 request; this effectively ignores the 4450 authentication in the spec for a single request. 4451 :type _request_auth: dict, optional 4452 :param _content_type: force content-type for the request. 4453 :type _content_type: str, Optional 4454 :param _headers: set to override the headers for a single 4455 request; this effectively ignores the headers 4456 in the spec for a single request. 4457 :type _headers: dict, optional 4458 :param _host_index: set to override the host_index for a single 4459 request; this effectively ignores the host_index 4460 in the spec for a single request. 4461 :type _host_index: int, optional 4462 :return: Returns the result object. 4463 """ # noqa: E501 4464 4465 _param = self._enterprise_get_organization_member_serialize( 4466 org_id=org_id, 4467 member_id=member_id, 4468 _request_auth=_request_auth, 4469 _content_type=_content_type, 4470 _headers=_headers, 4471 _host_index=_host_index, 4472 ) 4473 4474 _response_types_map: Dict[str, Optional[str]] = { 4475 "200": "OrganizationMember", 4476 "400": None, 4477 "401": None, 4478 "403": None, 4479 "404": None, 4480 "409": None, 4481 "429": None, 4482 } 4483 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4484 response_data.read() 4485 return self.api_client.response_deserialize( 4486 response_data=response_data, 4487 response_types_map=_response_types_map, 4488 ).data 4489 4490 def _enterprise_get_organization_member_serialize( 4491 self, 4492 org_id, 4493 member_id, 4494 _request_auth, 4495 _content_type, 4496 _headers, 4497 _host_index, 4498 ) -> RequestSerialized: 4499 4500 _host = None 4501 4502 _collection_formats: Dict[str, str] = {} 4503 4504 _path_params: Dict[str, str] = {} 4505 _query_params: List[Tuple[str, str]] = [] 4506 _header_params: Dict[str, Optional[str]] = _headers or {} 4507 _form_params: List[Tuple[str, str]] = [] 4508 _files: Dict[str, str] = {} 4509 _body_params: Optional[bytes] = None 4510 4511 # process the path parameters 4512 if org_id is not None: 4513 _path_params["org_id"] = org_id 4514 if member_id is not None: 4515 _path_params["member_id"] = member_id 4516 # process the query parameters 4517 # process the header parameters 4518 # process the form parameters 4519 # process the body parameter 4520 4521 # set the HTTP header `Accept` 4522 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4523 4524 # authentication setting 4525 _auth_settings: List[str] = [] 4526 4527 return self.api_client.param_serialize( 4528 method="GET", 4529 resource_path="/v2/orgs/{org_id}/members/{member_id}", 4530 path_params=_path_params, 4531 query_params=_query_params, 4532 header_params=_header_params, 4533 body=_body_params, 4534 post_params=_form_params, 4535 files=_files, 4536 auth_settings=_auth_settings, 4537 collection_formats=_collection_formats, 4538 _host=_host, 4539 _request_auth=_request_auth, 4540 ) 4541 4542 @validate_call 4543 def enterprise_get_organization_members( 4544 self, 4545 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4546 emails: Optional[StrictStr] = None, 4547 role: Optional[StrictStr] = None, 4548 license: Optional[StrictStr] = None, 4549 active: Optional[StrictBool] = None, 4550 cursor: Optional[StrictStr] = None, 4551 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 4552 _request_timeout: Union[ 4553 None, 4554 Annotated[StrictFloat, Field(gt=0)], 4555 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4556 ] = None, 4557 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4558 _content_type: Optional[StrictStr] = None, 4559 _headers: Optional[Dict[StrictStr, Any]] = None, 4560 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4561 ) -> EnterpriseGetOrganizationMembers200Response: 4562 """Get organization members 4563 4564 Retrieves organization members based on the organization ID and the cursor, or based on the user emails provided in the request.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4565 4566 :param org_id: id of the organization (required) 4567 :type org_id: str 4568 :param emails: 4569 :type emails: str 4570 :param role: 4571 :type role: str 4572 :param license: 4573 :type license: str 4574 :param active: 4575 :type active: bool 4576 :param cursor: 4577 :type cursor: str 4578 :param limit: 4579 :type limit: int 4580 :param _request_timeout: timeout setting for this request. If one 4581 number provided, it will be total request 4582 timeout. It can also be a pair (tuple) of 4583 (connection, read) timeouts. 4584 :type _request_timeout: int, tuple(int, int), optional 4585 :param _request_auth: set to override the auth_settings for an a single 4586 request; this effectively ignores the 4587 authentication in the spec for a single request. 4588 :type _request_auth: dict, optional 4589 :param _content_type: force content-type for the request. 4590 :type _content_type: str, Optional 4591 :param _headers: set to override the headers for a single 4592 request; this effectively ignores the headers 4593 in the spec for a single request. 4594 :type _headers: dict, optional 4595 :param _host_index: set to override the host_index for a single 4596 request; this effectively ignores the host_index 4597 in the spec for a single request. 4598 :type _host_index: int, optional 4599 :return: Returns the result object. 4600 """ # noqa: E501 4601 4602 _param = self._enterprise_get_organization_members_serialize( 4603 org_id=org_id, 4604 emails=emails, 4605 role=role, 4606 license=license, 4607 active=active, 4608 cursor=cursor, 4609 limit=limit, 4610 _request_auth=_request_auth, 4611 _content_type=_content_type, 4612 _headers=_headers, 4613 _host_index=_host_index, 4614 ) 4615 4616 _response_types_map: Dict[str, Optional[str]] = { 4617 "200": "EnterpriseGetOrganizationMembers200Response", 4618 "400": None, 4619 "401": None, 4620 "403": None, 4621 "404": None, 4622 "409": None, 4623 "429": None, 4624 } 4625 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4626 response_data.read() 4627 return self.api_client.response_deserialize( 4628 response_data=response_data, 4629 response_types_map=_response_types_map, 4630 ).data 4631 4632 def _enterprise_get_organization_members_serialize( 4633 self, 4634 org_id, 4635 emails, 4636 role, 4637 license, 4638 active, 4639 cursor, 4640 limit, 4641 _request_auth, 4642 _content_type, 4643 _headers, 4644 _host_index, 4645 ) -> RequestSerialized: 4646 4647 _host = None 4648 4649 _collection_formats: Dict[str, str] = {} 4650 4651 _path_params: Dict[str, str] = {} 4652 _query_params: List[Tuple[str, str]] = [] 4653 _header_params: Dict[str, Optional[str]] = _headers or {} 4654 _form_params: List[Tuple[str, str]] = [] 4655 _files: Dict[str, str] = {} 4656 _body_params: Optional[bytes] = None 4657 4658 # process the path parameters 4659 if org_id is not None: 4660 _path_params["org_id"] = org_id 4661 # process the query parameters 4662 if emails is not None: 4663 4664 _query_params.append(("emails", emails)) 4665 4666 if role is not None: 4667 4668 _query_params.append(("role", role)) 4669 4670 if license is not None: 4671 4672 _query_params.append(("license", license)) 4673 4674 if active is not None: 4675 4676 _query_params.append(("active", active)) 4677 4678 if cursor is not None: 4679 4680 _query_params.append(("cursor", cursor)) 4681 4682 if limit is not None: 4683 4684 _query_params.append(("limit", limit)) 4685 4686 # process the header parameters 4687 # process the form parameters 4688 # process the body parameter 4689 4690 # set the HTTP header `Accept` 4691 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4692 4693 # authentication setting 4694 _auth_settings: List[str] = [] 4695 4696 return self.api_client.param_serialize( 4697 method="GET", 4698 resource_path="/v2/orgs/{org_id}/members", 4699 path_params=_path_params, 4700 query_params=_query_params, 4701 header_params=_header_params, 4702 body=_body_params, 4703 post_params=_form_params, 4704 files=_files, 4705 auth_settings=_auth_settings, 4706 collection_formats=_collection_formats, 4707 _host=_host, 4708 _request_auth=_request_auth, 4709 ) 4710 4711 @validate_call 4712 def enterprise_get_organization( 4713 self, 4714 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4715 _request_timeout: Union[ 4716 None, 4717 Annotated[StrictFloat, Field(gt=0)], 4718 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4719 ] = None, 4720 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4721 _content_type: Optional[StrictStr] = None, 4722 _headers: Optional[Dict[StrictStr, Any]] = None, 4723 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4724 ) -> Organization: 4725 """Get organization info 4726 4727 Retrieves organization information.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4728 4729 :param org_id: id of the organization (required) 4730 :type org_id: str 4731 :param _request_timeout: timeout setting for this request. If one 4732 number provided, it will be total request 4733 timeout. It can also be a pair (tuple) of 4734 (connection, read) timeouts. 4735 :type _request_timeout: int, tuple(int, int), optional 4736 :param _request_auth: set to override the auth_settings for an a single 4737 request; this effectively ignores the 4738 authentication in the spec for a single request. 4739 :type _request_auth: dict, optional 4740 :param _content_type: force content-type for the request. 4741 :type _content_type: str, Optional 4742 :param _headers: set to override the headers for a single 4743 request; this effectively ignores the headers 4744 in the spec for a single request. 4745 :type _headers: dict, optional 4746 :param _host_index: set to override the host_index for a single 4747 request; this effectively ignores the host_index 4748 in the spec for a single request. 4749 :type _host_index: int, optional 4750 :return: Returns the result object. 4751 """ # noqa: E501 4752 4753 _param = self._enterprise_get_organization_serialize( 4754 org_id=org_id, 4755 _request_auth=_request_auth, 4756 _content_type=_content_type, 4757 _headers=_headers, 4758 _host_index=_host_index, 4759 ) 4760 4761 _response_types_map: Dict[str, Optional[str]] = { 4762 "200": "Organization", 4763 "400": None, 4764 "401": None, 4765 "403": None, 4766 "404": None, 4767 "409": None, 4768 "429": None, 4769 } 4770 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4771 response_data.read() 4772 return self.api_client.response_deserialize( 4773 response_data=response_data, 4774 response_types_map=_response_types_map, 4775 ).data 4776 4777 def _enterprise_get_organization_serialize( 4778 self, 4779 org_id, 4780 _request_auth, 4781 _content_type, 4782 _headers, 4783 _host_index, 4784 ) -> RequestSerialized: 4785 4786 _host = None 4787 4788 _collection_formats: Dict[str, str] = {} 4789 4790 _path_params: Dict[str, str] = {} 4791 _query_params: List[Tuple[str, str]] = [] 4792 _header_params: Dict[str, Optional[str]] = _headers or {} 4793 _form_params: List[Tuple[str, str]] = [] 4794 _files: Dict[str, str] = {} 4795 _body_params: Optional[bytes] = None 4796 4797 # process the path parameters 4798 if org_id is not None: 4799 _path_params["org_id"] = org_id 4800 # process the query parameters 4801 # process the header parameters 4802 # process the form parameters 4803 # process the body parameter 4804 4805 # set the HTTP header `Accept` 4806 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4807 4808 # authentication setting 4809 _auth_settings: List[str] = [] 4810 4811 return self.api_client.param_serialize( 4812 method="GET", 4813 resource_path="/v2/orgs/{org_id}", 4814 path_params=_path_params, 4815 query_params=_query_params, 4816 header_params=_header_params, 4817 body=_body_params, 4818 post_params=_form_params, 4819 files=_files, 4820 auth_settings=_auth_settings, 4821 collection_formats=_collection_formats, 4822 _host=_host, 4823 _request_auth=_request_auth, 4824 ) 4825 4826 @validate_call 4827 def enterprise_add_project_member( 4828 self, 4829 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 4830 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 4831 project_id: Annotated[StrictStr, Field(description="The ID of the project to which you want to add a user.")], 4832 add_project_member_request: AddProjectMemberRequest, 4833 _request_timeout: Union[ 4834 None, 4835 Annotated[StrictFloat, Field(gt=0)], 4836 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4837 ] = None, 4838 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4839 _content_type: Optional[StrictStr] = None, 4840 _headers: Optional[Dict[StrictStr, Any]] = None, 4841 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4842 ) -> ProjectMember: 4843 """Add member in a project 4844 4845 Add a Miro user to a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4846 4847 :param org_id: The ID of the organization to which the project belongs. (required) 4848 :type org_id: str 4849 :param team_id: The ID of the team to which the project belongs. (required) 4850 :type team_id: str 4851 :param project_id: The ID of the project to which you want to add a user. (required) 4852 :type project_id: str 4853 :param add_project_member_request: (required) 4854 :type add_project_member_request: AddProjectMemberRequest 4855 :param _request_timeout: timeout setting for this request. If one 4856 number provided, it will be total request 4857 timeout. It can also be a pair (tuple) of 4858 (connection, read) timeouts. 4859 :type _request_timeout: int, tuple(int, int), optional 4860 :param _request_auth: set to override the auth_settings for an a single 4861 request; this effectively ignores the 4862 authentication in the spec for a single request. 4863 :type _request_auth: dict, optional 4864 :param _content_type: force content-type for the request. 4865 :type _content_type: str, Optional 4866 :param _headers: set to override the headers for a single 4867 request; this effectively ignores the headers 4868 in the spec for a single request. 4869 :type _headers: dict, optional 4870 :param _host_index: set to override the host_index for a single 4871 request; this effectively ignores the host_index 4872 in the spec for a single request. 4873 :type _host_index: int, optional 4874 :return: Returns the result object. 4875 """ # noqa: E501 4876 4877 _param = self._enterprise_add_project_member_serialize( 4878 org_id=org_id, 4879 team_id=team_id, 4880 project_id=project_id, 4881 add_project_member_request=add_project_member_request, 4882 _request_auth=_request_auth, 4883 _content_type=_content_type, 4884 _headers=_headers, 4885 _host_index=_host_index, 4886 ) 4887 4888 _response_types_map: Dict[str, Optional[str]] = { 4889 "201": "ProjectMember", 4890 "400": "Error400", 4891 "401": "Error401", 4892 "403": "Error403", 4893 "404": "Error404", 4894 "409": "Error409", 4895 "429": "Error429", 4896 } 4897 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4898 response_data.read() 4899 return self.api_client.response_deserialize( 4900 response_data=response_data, 4901 response_types_map=_response_types_map, 4902 ).data 4903 4904 def _enterprise_add_project_member_serialize( 4905 self, 4906 org_id, 4907 team_id, 4908 project_id, 4909 add_project_member_request, 4910 _request_auth, 4911 _content_type, 4912 _headers, 4913 _host_index, 4914 ) -> RequestSerialized: 4915 4916 _host = None 4917 4918 _collection_formats: Dict[str, str] = {} 4919 4920 _path_params: Dict[str, str] = {} 4921 _query_params: List[Tuple[str, str]] = [] 4922 _header_params: Dict[str, Optional[str]] = _headers or {} 4923 _form_params: List[Tuple[str, str]] = [] 4924 _files: Dict[str, str] = {} 4925 _body_params: Optional[bytes] = None 4926 4927 # process the path parameters 4928 if org_id is not None: 4929 _path_params["org_id"] = org_id 4930 if team_id is not None: 4931 _path_params["team_id"] = team_id 4932 if project_id is not None: 4933 _path_params["project_id"] = project_id 4934 # process the query parameters 4935 # process the header parameters 4936 # process the form parameters 4937 # process the body parameter 4938 if add_project_member_request is not None: 4939 _body_params = add_project_member_request 4940 4941 # set the HTTP header `Accept` 4942 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 4943 4944 # set the HTTP header `Content-Type` 4945 if _content_type: 4946 _header_params["Content-Type"] = _content_type 4947 else: 4948 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 4949 if _default_content_type is not None: 4950 _header_params["Content-Type"] = _default_content_type 4951 4952 # authentication setting 4953 _auth_settings: List[str] = [] 4954 4955 return self.api_client.param_serialize( 4956 method="POST", 4957 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members", 4958 path_params=_path_params, 4959 query_params=_query_params, 4960 header_params=_header_params, 4961 body=_body_params, 4962 post_params=_form_params, 4963 files=_files, 4964 auth_settings=_auth_settings, 4965 collection_formats=_collection_formats, 4966 _host=_host, 4967 _request_auth=_request_auth, 4968 ) 4969 4970 @validate_call 4971 def enterprise_delete_project_member( 4972 self, 4973 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 4974 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 4975 project_id: Annotated[ 4976 StrictStr, Field(description="The ID of the project from which you want to remove a member.") 4977 ], 4978 member_id: Annotated[ 4979 StrictStr, Field(description="The ID of the member that you want to remove from a project.") 4980 ], 4981 _request_timeout: Union[ 4982 None, 4983 Annotated[StrictFloat, Field(gt=0)], 4984 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4985 ] = None, 4986 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4987 _content_type: Optional[StrictStr] = None, 4988 _headers: Optional[Dict[StrictStr, Any]] = None, 4989 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4990 ) -> None: 4991 """Remove project member 4992 4993 Remove a member from a project. The user remains in the team even after the member is removed from a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4994 4995 :param org_id: The ID of the organization to which the project belongs. (required) 4996 :type org_id: str 4997 :param team_id: The ID of the team to which the project belongs. (required) 4998 :type team_id: str 4999 :param project_id: The ID of the project from which you want to remove a member. (required) 5000 :type project_id: str 5001 :param member_id: The ID of the member that you want to remove from a project. (required) 5002 :type member_id: str 5003 :param _request_timeout: timeout setting for this request. If one 5004 number provided, it will be total request 5005 timeout. It can also be a pair (tuple) of 5006 (connection, read) timeouts. 5007 :type _request_timeout: int, tuple(int, int), optional 5008 :param _request_auth: set to override the auth_settings for an a single 5009 request; this effectively ignores the 5010 authentication in the spec for a single request. 5011 :type _request_auth: dict, optional 5012 :param _content_type: force content-type for the request. 5013 :type _content_type: str, Optional 5014 :param _headers: set to override the headers for a single 5015 request; this effectively ignores the headers 5016 in the spec for a single request. 5017 :type _headers: dict, optional 5018 :param _host_index: set to override the host_index for a single 5019 request; this effectively ignores the host_index 5020 in the spec for a single request. 5021 :type _host_index: int, optional 5022 :return: Returns the result object. 5023 """ # noqa: E501 5024 5025 _param = self._enterprise_delete_project_member_serialize( 5026 org_id=org_id, 5027 team_id=team_id, 5028 project_id=project_id, 5029 member_id=member_id, 5030 _request_auth=_request_auth, 5031 _content_type=_content_type, 5032 _headers=_headers, 5033 _host_index=_host_index, 5034 ) 5035 5036 _response_types_map: Dict[str, Optional[str]] = { 5037 "204": None, 5038 "400": "Error400", 5039 "401": "Error401", 5040 "403": "Error403", 5041 "404": "Error404", 5042 "409": "Error409", 5043 "429": "Error429", 5044 } 5045 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5046 response_data.read() 5047 return self.api_client.response_deserialize( 5048 response_data=response_data, 5049 response_types_map=_response_types_map, 5050 ).data 5051 5052 def _enterprise_delete_project_member_serialize( 5053 self, 5054 org_id, 5055 team_id, 5056 project_id, 5057 member_id, 5058 _request_auth, 5059 _content_type, 5060 _headers, 5061 _host_index, 5062 ) -> RequestSerialized: 5063 5064 _host = None 5065 5066 _collection_formats: Dict[str, str] = {} 5067 5068 _path_params: Dict[str, str] = {} 5069 _query_params: List[Tuple[str, str]] = [] 5070 _header_params: Dict[str, Optional[str]] = _headers or {} 5071 _form_params: List[Tuple[str, str]] = [] 5072 _files: Dict[str, str] = {} 5073 _body_params: Optional[bytes] = None 5074 5075 # process the path parameters 5076 if org_id is not None: 5077 _path_params["org_id"] = org_id 5078 if team_id is not None: 5079 _path_params["team_id"] = team_id 5080 if project_id is not None: 5081 _path_params["project_id"] = project_id 5082 if member_id is not None: 5083 _path_params["member_id"] = member_id 5084 # process the query parameters 5085 # process the header parameters 5086 # process the form parameters 5087 # process the body parameter 5088 5089 # set the HTTP header `Accept` 5090 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5091 5092 # authentication setting 5093 _auth_settings: List[str] = [] 5094 5095 return self.api_client.param_serialize( 5096 method="DELETE", 5097 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members/{member_id}", 5098 path_params=_path_params, 5099 query_params=_query_params, 5100 header_params=_header_params, 5101 body=_body_params, 5102 post_params=_form_params, 5103 files=_files, 5104 auth_settings=_auth_settings, 5105 collection_formats=_collection_formats, 5106 _host=_host, 5107 _request_auth=_request_auth, 5108 ) 5109 5110 @validate_call 5111 def enterprise_get_project_member( 5112 self, 5113 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5114 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5115 project_id: Annotated[ 5116 StrictStr, 5117 Field(description="The ID of the project from which you want to retrieve specific member information."), 5118 ], 5119 member_id: Annotated[ 5120 StrictStr, Field(description="The ID of the member for which you want to retrieve information.") 5121 ], 5122 _request_timeout: Union[ 5123 None, 5124 Annotated[StrictFloat, Field(gt=0)], 5125 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5126 ] = None, 5127 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5128 _content_type: Optional[StrictStr] = None, 5129 _headers: Optional[Dict[StrictStr, Any]] = None, 5130 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5131 ) -> ProjectMember: 5132 """Get project member 5133 5134 Retrieves information for a specific project member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5135 5136 :param org_id: The ID of the organization to which the project belongs. (required) 5137 :type org_id: str 5138 :param team_id: The ID of the team to which the project belongs. (required) 5139 :type team_id: str 5140 :param project_id: The ID of the project from which you want to retrieve specific member information. (required) 5141 :type project_id: str 5142 :param member_id: The ID of the member for which you want to retrieve information. (required) 5143 :type member_id: str 5144 :param _request_timeout: timeout setting for this request. If one 5145 number provided, it will be total request 5146 timeout. It can also be a pair (tuple) of 5147 (connection, read) timeouts. 5148 :type _request_timeout: int, tuple(int, int), optional 5149 :param _request_auth: set to override the auth_settings for an a single 5150 request; this effectively ignores the 5151 authentication in the spec for a single request. 5152 :type _request_auth: dict, optional 5153 :param _content_type: force content-type for the request. 5154 :type _content_type: str, Optional 5155 :param _headers: set to override the headers for a single 5156 request; this effectively ignores the headers 5157 in the spec for a single request. 5158 :type _headers: dict, optional 5159 :param _host_index: set to override the host_index for a single 5160 request; this effectively ignores the host_index 5161 in the spec for a single request. 5162 :type _host_index: int, optional 5163 :return: Returns the result object. 5164 """ # noqa: E501 5165 5166 _param = self._enterprise_get_project_member_serialize( 5167 org_id=org_id, 5168 team_id=team_id, 5169 project_id=project_id, 5170 member_id=member_id, 5171 _request_auth=_request_auth, 5172 _content_type=_content_type, 5173 _headers=_headers, 5174 _host_index=_host_index, 5175 ) 5176 5177 _response_types_map: Dict[str, Optional[str]] = { 5178 "200": "ProjectMember", 5179 "400": "Error400", 5180 "401": "Error401", 5181 "403": "Error403", 5182 "404": "Error404", 5183 "409": "Error409", 5184 "429": "Error429", 5185 } 5186 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5187 response_data.read() 5188 return self.api_client.response_deserialize( 5189 response_data=response_data, 5190 response_types_map=_response_types_map, 5191 ).data 5192 5193 def _enterprise_get_project_member_serialize( 5194 self, 5195 org_id, 5196 team_id, 5197 project_id, 5198 member_id, 5199 _request_auth, 5200 _content_type, 5201 _headers, 5202 _host_index, 5203 ) -> RequestSerialized: 5204 5205 _host = None 5206 5207 _collection_formats: Dict[str, str] = {} 5208 5209 _path_params: Dict[str, str] = {} 5210 _query_params: List[Tuple[str, str]] = [] 5211 _header_params: Dict[str, Optional[str]] = _headers or {} 5212 _form_params: List[Tuple[str, str]] = [] 5213 _files: Dict[str, str] = {} 5214 _body_params: Optional[bytes] = None 5215 5216 # process the path parameters 5217 if org_id is not None: 5218 _path_params["org_id"] = org_id 5219 if team_id is not None: 5220 _path_params["team_id"] = team_id 5221 if project_id is not None: 5222 _path_params["project_id"] = project_id 5223 if member_id is not None: 5224 _path_params["member_id"] = member_id 5225 # process the query parameters 5226 # process the header parameters 5227 # process the form parameters 5228 # process the body parameter 5229 5230 # set the HTTP header `Accept` 5231 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5232 5233 # authentication setting 5234 _auth_settings: List[str] = [] 5235 5236 return self.api_client.param_serialize( 5237 method="GET", 5238 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members/{member_id}", 5239 path_params=_path_params, 5240 query_params=_query_params, 5241 header_params=_header_params, 5242 body=_body_params, 5243 post_params=_form_params, 5244 files=_files, 5245 auth_settings=_auth_settings, 5246 collection_formats=_collection_formats, 5247 _host=_host, 5248 _request_auth=_request_auth, 5249 ) 5250 5251 @validate_call 5252 def enterprise_get_project_members( 5253 self, 5254 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5255 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5256 project_id: Annotated[ 5257 StrictStr, Field(description="The ID of the project for which you want to retrieve the list of members.") 5258 ], 5259 limit: Annotated[ 5260 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 5261 Field( 5262 description="The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value." 5263 ), 5264 ] = None, 5265 cursor: Annotated[ 5266 Optional[StrictStr], 5267 Field( 5268 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 5269 ), 5270 ] = None, 5271 _request_timeout: Union[ 5272 None, 5273 Annotated[StrictFloat, Field(gt=0)], 5274 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5275 ] = None, 5276 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5277 _content_type: Optional[StrictStr] = None, 5278 _headers: Optional[Dict[StrictStr, Any]] = None, 5279 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5280 ) -> ProjectMemberPage: 5281 """List of project members 5282 5283 Retrieves the list of members for a specific project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5284 5285 :param org_id: The ID of the organization to which the project belongs. (required) 5286 :type org_id: str 5287 :param team_id: The ID of the team to which the project belongs. (required) 5288 :type team_id: str 5289 :param project_id: The ID of the project for which you want to retrieve the list of members. (required) 5290 :type project_id: str 5291 :param limit: The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value. 5292 :type limit: int 5293 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 5294 :type cursor: str 5295 :param _request_timeout: timeout setting for this request. If one 5296 number provided, it will be total request 5297 timeout. It can also be a pair (tuple) of 5298 (connection, read) timeouts. 5299 :type _request_timeout: int, tuple(int, int), optional 5300 :param _request_auth: set to override the auth_settings for an a single 5301 request; this effectively ignores the 5302 authentication in the spec for a single request. 5303 :type _request_auth: dict, optional 5304 :param _content_type: force content-type for the request. 5305 :type _content_type: str, Optional 5306 :param _headers: set to override the headers for a single 5307 request; this effectively ignores the headers 5308 in the spec for a single request. 5309 :type _headers: dict, optional 5310 :param _host_index: set to override the host_index for a single 5311 request; this effectively ignores the host_index 5312 in the spec for a single request. 5313 :type _host_index: int, optional 5314 :return: Returns the result object. 5315 """ # noqa: E501 5316 5317 _param = self._enterprise_get_project_members_serialize( 5318 org_id=org_id, 5319 team_id=team_id, 5320 project_id=project_id, 5321 limit=limit, 5322 cursor=cursor, 5323 _request_auth=_request_auth, 5324 _content_type=_content_type, 5325 _headers=_headers, 5326 _host_index=_host_index, 5327 ) 5328 5329 _response_types_map: Dict[str, Optional[str]] = { 5330 "200": "ProjectMemberPage", 5331 "400": "Error400", 5332 "401": "Error401", 5333 "403": "Error403", 5334 "404": "Error404", 5335 "409": "Error409", 5336 "429": "Error429", 5337 } 5338 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5339 response_data.read() 5340 return self.api_client.response_deserialize( 5341 response_data=response_data, 5342 response_types_map=_response_types_map, 5343 ).data 5344 5345 def _enterprise_get_project_members_serialize( 5346 self, 5347 org_id, 5348 team_id, 5349 project_id, 5350 limit, 5351 cursor, 5352 _request_auth, 5353 _content_type, 5354 _headers, 5355 _host_index, 5356 ) -> RequestSerialized: 5357 5358 _host = None 5359 5360 _collection_formats: Dict[str, str] = {} 5361 5362 _path_params: Dict[str, str] = {} 5363 _query_params: List[Tuple[str, str]] = [] 5364 _header_params: Dict[str, Optional[str]] = _headers or {} 5365 _form_params: List[Tuple[str, str]] = [] 5366 _files: Dict[str, str] = {} 5367 _body_params: Optional[bytes] = None 5368 5369 # process the path parameters 5370 if org_id is not None: 5371 _path_params["org_id"] = org_id 5372 if team_id is not None: 5373 _path_params["team_id"] = team_id 5374 if project_id is not None: 5375 _path_params["project_id"] = project_id 5376 # process the query parameters 5377 if limit is not None: 5378 5379 _query_params.append(("limit", limit)) 5380 5381 if cursor is not None: 5382 5383 _query_params.append(("cursor", cursor)) 5384 5385 # process the header parameters 5386 # process the form parameters 5387 # process the body parameter 5388 5389 # set the HTTP header `Accept` 5390 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5391 5392 # authentication setting 5393 _auth_settings: List[str] = [] 5394 5395 return self.api_client.param_serialize( 5396 method="GET", 5397 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members", 5398 path_params=_path_params, 5399 query_params=_query_params, 5400 header_params=_header_params, 5401 body=_body_params, 5402 post_params=_form_params, 5403 files=_files, 5404 auth_settings=_auth_settings, 5405 collection_formats=_collection_formats, 5406 _host=_host, 5407 _request_auth=_request_auth, 5408 ) 5409 5410 @validate_call 5411 def enterprise_update_project_member( 5412 self, 5413 org_id: Annotated[ 5414 StrictStr, Field(description="The ID of the organization to which the project member belongs.") 5415 ], 5416 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project member belongs.")], 5417 project_id: Annotated[StrictStr, Field(description="The ID of a Project.")], 5418 member_id: Annotated[StrictStr, Field(description="The ID of the member whose details you want to update.")], 5419 update_project_member_request: UpdateProjectMemberRequest, 5420 _request_timeout: Union[ 5421 None, 5422 Annotated[StrictFloat, Field(gt=0)], 5423 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5424 ] = None, 5425 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5426 _content_type: Optional[StrictStr] = None, 5427 _headers: Optional[Dict[StrictStr, Any]] = None, 5428 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5429 ) -> ProjectMember: 5430 """Update project member 5431 5432 Updates details of a project member, such as the member's role.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5433 5434 :param org_id: The ID of the organization to which the project member belongs. (required) 5435 :type org_id: str 5436 :param team_id: The ID of the team to which the project member belongs. (required) 5437 :type team_id: str 5438 :param project_id: The ID of a Project. (required) 5439 :type project_id: str 5440 :param member_id: The ID of the member whose details you want to update. (required) 5441 :type member_id: str 5442 :param update_project_member_request: (required) 5443 :type update_project_member_request: UpdateProjectMemberRequest 5444 :param _request_timeout: timeout setting for this request. If one 5445 number provided, it will be total request 5446 timeout. It can also be a pair (tuple) of 5447 (connection, read) timeouts. 5448 :type _request_timeout: int, tuple(int, int), optional 5449 :param _request_auth: set to override the auth_settings for an a single 5450 request; this effectively ignores the 5451 authentication in the spec for a single request. 5452 :type _request_auth: dict, optional 5453 :param _content_type: force content-type for the request. 5454 :type _content_type: str, Optional 5455 :param _headers: set to override the headers for a single 5456 request; this effectively ignores the headers 5457 in the spec for a single request. 5458 :type _headers: dict, optional 5459 :param _host_index: set to override the host_index for a single 5460 request; this effectively ignores the host_index 5461 in the spec for a single request. 5462 :type _host_index: int, optional 5463 :return: Returns the result object. 5464 """ # noqa: E501 5465 5466 _param = self._enterprise_update_project_member_serialize( 5467 org_id=org_id, 5468 team_id=team_id, 5469 project_id=project_id, 5470 member_id=member_id, 5471 update_project_member_request=update_project_member_request, 5472 _request_auth=_request_auth, 5473 _content_type=_content_type, 5474 _headers=_headers, 5475 _host_index=_host_index, 5476 ) 5477 5478 _response_types_map: Dict[str, Optional[str]] = { 5479 "200": "ProjectMember", 5480 "400": "Error400", 5481 "401": "Error401", 5482 "403": "Error403", 5483 "404": "Error404", 5484 "409": "Error409", 5485 "429": "Error429", 5486 } 5487 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5488 response_data.read() 5489 return self.api_client.response_deserialize( 5490 response_data=response_data, 5491 response_types_map=_response_types_map, 5492 ).data 5493 5494 def _enterprise_update_project_member_serialize( 5495 self, 5496 org_id, 5497 team_id, 5498 project_id, 5499 member_id, 5500 update_project_member_request, 5501 _request_auth, 5502 _content_type, 5503 _headers, 5504 _host_index, 5505 ) -> RequestSerialized: 5506 5507 _host = None 5508 5509 _collection_formats: Dict[str, str] = {} 5510 5511 _path_params: Dict[str, str] = {} 5512 _query_params: List[Tuple[str, str]] = [] 5513 _header_params: Dict[str, Optional[str]] = _headers or {} 5514 _form_params: List[Tuple[str, str]] = [] 5515 _files: Dict[str, str] = {} 5516 _body_params: Optional[bytes] = None 5517 5518 # process the path parameters 5519 if org_id is not None: 5520 _path_params["org_id"] = org_id 5521 if team_id is not None: 5522 _path_params["team_id"] = team_id 5523 if project_id is not None: 5524 _path_params["project_id"] = project_id 5525 if member_id is not None: 5526 _path_params["member_id"] = member_id 5527 # process the query parameters 5528 # process the header parameters 5529 # process the form parameters 5530 # process the body parameter 5531 if update_project_member_request is not None: 5532 _body_params = update_project_member_request 5533 5534 # set the HTTP header `Accept` 5535 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5536 5537 # set the HTTP header `Content-Type` 5538 if _content_type: 5539 _header_params["Content-Type"] = _content_type 5540 else: 5541 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 5542 if _default_content_type is not None: 5543 _header_params["Content-Type"] = _default_content_type 5544 5545 # authentication setting 5546 _auth_settings: List[str] = [] 5547 5548 return self.api_client.param_serialize( 5549 method="PATCH", 5550 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/members/{member_id}", 5551 path_params=_path_params, 5552 query_params=_query_params, 5553 header_params=_header_params, 5554 body=_body_params, 5555 post_params=_form_params, 5556 files=_files, 5557 auth_settings=_auth_settings, 5558 collection_formats=_collection_formats, 5559 _host=_host, 5560 _request_auth=_request_auth, 5561 ) 5562 5563 @validate_call 5564 def enterprise_get_project_settings( 5565 self, 5566 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5567 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5568 project_id: Annotated[ 5569 StrictStr, Field(description="The ID of the project for which you want to retrieve the project settings.") 5570 ], 5571 _request_timeout: Union[ 5572 None, 5573 Annotated[StrictFloat, Field(gt=0)], 5574 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5575 ] = None, 5576 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5577 _content_type: Optional[StrictStr] = None, 5578 _headers: Optional[Dict[StrictStr, Any]] = None, 5579 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5580 ) -> ProjectSettings: 5581 """Get project settings 5582 5583 Retrieves the project settings.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5584 5585 :param org_id: The ID of the organization to which the project belongs. (required) 5586 :type org_id: str 5587 :param team_id: The ID of the team to which the project belongs. (required) 5588 :type team_id: str 5589 :param project_id: The ID of the project for which you want to retrieve the project settings. (required) 5590 :type project_id: str 5591 :param _request_timeout: timeout setting for this request. If one 5592 number provided, it will be total request 5593 timeout. It can also be a pair (tuple) of 5594 (connection, read) timeouts. 5595 :type _request_timeout: int, tuple(int, int), optional 5596 :param _request_auth: set to override the auth_settings for an a single 5597 request; this effectively ignores the 5598 authentication in the spec for a single request. 5599 :type _request_auth: dict, optional 5600 :param _content_type: force content-type for the request. 5601 :type _content_type: str, Optional 5602 :param _headers: set to override the headers for a single 5603 request; this effectively ignores the headers 5604 in the spec for a single request. 5605 :type _headers: dict, optional 5606 :param _host_index: set to override the host_index for a single 5607 request; this effectively ignores the host_index 5608 in the spec for a single request. 5609 :type _host_index: int, optional 5610 :return: Returns the result object. 5611 """ # noqa: E501 5612 5613 _param = self._enterprise_get_project_settings_serialize( 5614 org_id=org_id, 5615 team_id=team_id, 5616 project_id=project_id, 5617 _request_auth=_request_auth, 5618 _content_type=_content_type, 5619 _headers=_headers, 5620 _host_index=_host_index, 5621 ) 5622 5623 _response_types_map: Dict[str, Optional[str]] = { 5624 "200": "ProjectSettings", 5625 "400": "Error400", 5626 "401": "Error401", 5627 "403": "Error403", 5628 "404": "Error404", 5629 "429": "Error429", 5630 } 5631 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5632 response_data.read() 5633 return self.api_client.response_deserialize( 5634 response_data=response_data, 5635 response_types_map=_response_types_map, 5636 ).data 5637 5638 def _enterprise_get_project_settings_serialize( 5639 self, 5640 org_id, 5641 team_id, 5642 project_id, 5643 _request_auth, 5644 _content_type, 5645 _headers, 5646 _host_index, 5647 ) -> RequestSerialized: 5648 5649 _host = None 5650 5651 _collection_formats: Dict[str, str] = {} 5652 5653 _path_params: Dict[str, str] = {} 5654 _query_params: List[Tuple[str, str]] = [] 5655 _header_params: Dict[str, Optional[str]] = _headers or {} 5656 _form_params: List[Tuple[str, str]] = [] 5657 _files: Dict[str, str] = {} 5658 _body_params: Optional[bytes] = None 5659 5660 # process the path parameters 5661 if org_id is not None: 5662 _path_params["org_id"] = org_id 5663 if team_id is not None: 5664 _path_params["team_id"] = team_id 5665 if project_id is not None: 5666 _path_params["project_id"] = project_id 5667 # process the query parameters 5668 # process the header parameters 5669 # process the form parameters 5670 # process the body parameter 5671 5672 # set the HTTP header `Accept` 5673 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5674 5675 # authentication setting 5676 _auth_settings: List[str] = [] 5677 5678 return self.api_client.param_serialize( 5679 method="GET", 5680 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/settings", 5681 path_params=_path_params, 5682 query_params=_query_params, 5683 header_params=_header_params, 5684 body=_body_params, 5685 post_params=_form_params, 5686 files=_files, 5687 auth_settings=_auth_settings, 5688 collection_formats=_collection_formats, 5689 _host=_host, 5690 _request_auth=_request_auth, 5691 ) 5692 5693 @validate_call 5694 def enterprise_update_project_settings( 5695 self, 5696 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5697 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5698 project_id: Annotated[StrictStr, Field(description="The ID of the project whose settings you want to update.")], 5699 update_project_settings_request: UpdateProjectSettingsRequest, 5700 _request_timeout: Union[ 5701 None, 5702 Annotated[StrictFloat, Field(gt=0)], 5703 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5704 ] = None, 5705 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5706 _content_type: Optional[StrictStr] = None, 5707 _headers: Optional[Dict[StrictStr, Any]] = None, 5708 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5709 ) -> ProjectSettings: 5710 """Update project settings 5711 5712 Updates the settings of a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5713 5714 :param org_id: The ID of the organization to which the project belongs. (required) 5715 :type org_id: str 5716 :param team_id: The ID of the team to which the project belongs. (required) 5717 :type team_id: str 5718 :param project_id: The ID of the project whose settings you want to update. (required) 5719 :type project_id: str 5720 :param update_project_settings_request: (required) 5721 :type update_project_settings_request: UpdateProjectSettingsRequest 5722 :param _request_timeout: timeout setting for this request. If one 5723 number provided, it will be total request 5724 timeout. It can also be a pair (tuple) of 5725 (connection, read) timeouts. 5726 :type _request_timeout: int, tuple(int, int), optional 5727 :param _request_auth: set to override the auth_settings for an a single 5728 request; this effectively ignores the 5729 authentication in the spec for a single request. 5730 :type _request_auth: dict, optional 5731 :param _content_type: force content-type for the request. 5732 :type _content_type: str, Optional 5733 :param _headers: set to override the headers for a single 5734 request; this effectively ignores the headers 5735 in the spec for a single request. 5736 :type _headers: dict, optional 5737 :param _host_index: set to override the host_index for a single 5738 request; this effectively ignores the host_index 5739 in the spec for a single request. 5740 :type _host_index: int, optional 5741 :return: Returns the result object. 5742 """ # noqa: E501 5743 5744 _param = self._enterprise_update_project_settings_serialize( 5745 org_id=org_id, 5746 team_id=team_id, 5747 project_id=project_id, 5748 update_project_settings_request=update_project_settings_request, 5749 _request_auth=_request_auth, 5750 _content_type=_content_type, 5751 _headers=_headers, 5752 _host_index=_host_index, 5753 ) 5754 5755 _response_types_map: Dict[str, Optional[str]] = { 5756 "200": "ProjectSettings", 5757 "400": "Error400", 5758 "401": "Error401", 5759 "403": "Error403", 5760 "404": "Error404", 5761 "409": "Error409", 5762 "429": "Error429", 5763 } 5764 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5765 response_data.read() 5766 return self.api_client.response_deserialize( 5767 response_data=response_data, 5768 response_types_map=_response_types_map, 5769 ).data 5770 5771 def _enterprise_update_project_settings_serialize( 5772 self, 5773 org_id, 5774 team_id, 5775 project_id, 5776 update_project_settings_request, 5777 _request_auth, 5778 _content_type, 5779 _headers, 5780 _host_index, 5781 ) -> RequestSerialized: 5782 5783 _host = None 5784 5785 _collection_formats: Dict[str, str] = {} 5786 5787 _path_params: Dict[str, str] = {} 5788 _query_params: List[Tuple[str, str]] = [] 5789 _header_params: Dict[str, Optional[str]] = _headers or {} 5790 _form_params: List[Tuple[str, str]] = [] 5791 _files: Dict[str, str] = {} 5792 _body_params: Optional[bytes] = None 5793 5794 # process the path parameters 5795 if org_id is not None: 5796 _path_params["org_id"] = org_id 5797 if team_id is not None: 5798 _path_params["team_id"] = team_id 5799 if project_id is not None: 5800 _path_params["project_id"] = project_id 5801 # process the query parameters 5802 # process the header parameters 5803 # process the form parameters 5804 # process the body parameter 5805 if update_project_settings_request is not None: 5806 _body_params = update_project_settings_request 5807 5808 # set the HTTP header `Accept` 5809 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5810 5811 # set the HTTP header `Content-Type` 5812 if _content_type: 5813 _header_params["Content-Type"] = _content_type 5814 else: 5815 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 5816 if _default_content_type is not None: 5817 _header_params["Content-Type"] = _default_content_type 5818 5819 # authentication setting 5820 _auth_settings: List[str] = [] 5821 5822 return self.api_client.param_serialize( 5823 method="PATCH", 5824 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}/settings", 5825 path_params=_path_params, 5826 query_params=_query_params, 5827 header_params=_header_params, 5828 body=_body_params, 5829 post_params=_form_params, 5830 files=_files, 5831 auth_settings=_auth_settings, 5832 collection_formats=_collection_formats, 5833 _host=_host, 5834 _request_auth=_request_auth, 5835 ) 5836 5837 @validate_call 5838 def enterprise_create_project( 5839 self, 5840 org_id: Annotated[ 5841 StrictStr, Field(description="The ID of the organization within which you you want to create a project.") 5842 ], 5843 team_id: Annotated[ 5844 StrictStr, Field(description="The ID of the team within which you you want to create a project.") 5845 ], 5846 create_project_request: CreateProjectRequest, 5847 _request_timeout: Union[ 5848 None, 5849 Annotated[StrictFloat, Field(gt=0)], 5850 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5851 ] = None, 5852 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5853 _content_type: Optional[StrictStr] = None, 5854 _headers: Optional[Dict[StrictStr, Any]] = None, 5855 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5856 ) -> Project: 5857 """Create project 5858 5859 Projects are essentially folders of boards with the option to manage user access for a smaller group of people within a team. Projects are here to help you organize your boards and make them easier to find and share. In other words, a project is a group of boards that you can share with your teammates all at once. For more information, see our <a href=\"https://help.miro.com/hc/en-us/articles/360018262033-Projects\" target=_blank>Help Center page on Projects</a>. <br><br>This API creates a new project in an existing team of an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5860 5861 :param org_id: The ID of the organization within which you you want to create a project. (required) 5862 :type org_id: str 5863 :param team_id: The ID of the team within which you you want to create a project. (required) 5864 :type team_id: str 5865 :param create_project_request: (required) 5866 :type create_project_request: CreateProjectRequest 5867 :param _request_timeout: timeout setting for this request. If one 5868 number provided, it will be total request 5869 timeout. It can also be a pair (tuple) of 5870 (connection, read) timeouts. 5871 :type _request_timeout: int, tuple(int, int), optional 5872 :param _request_auth: set to override the auth_settings for an a single 5873 request; this effectively ignores the 5874 authentication in the spec for a single request. 5875 :type _request_auth: dict, optional 5876 :param _content_type: force content-type for the request. 5877 :type _content_type: str, Optional 5878 :param _headers: set to override the headers for a single 5879 request; this effectively ignores the headers 5880 in the spec for a single request. 5881 :type _headers: dict, optional 5882 :param _host_index: set to override the host_index for a single 5883 request; this effectively ignores the host_index 5884 in the spec for a single request. 5885 :type _host_index: int, optional 5886 :return: Returns the result object. 5887 """ # noqa: E501 5888 5889 _param = self._enterprise_create_project_serialize( 5890 org_id=org_id, 5891 team_id=team_id, 5892 create_project_request=create_project_request, 5893 _request_auth=_request_auth, 5894 _content_type=_content_type, 5895 _headers=_headers, 5896 _host_index=_host_index, 5897 ) 5898 5899 _response_types_map: Dict[str, Optional[str]] = { 5900 "201": "Project", 5901 "400": "Error400", 5902 "401": "Error401", 5903 "403": "Error403", 5904 "404": "Error404", 5905 "409": "Error409", 5906 "429": "Error429", 5907 } 5908 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5909 response_data.read() 5910 return self.api_client.response_deserialize( 5911 response_data=response_data, 5912 response_types_map=_response_types_map, 5913 ).data 5914 5915 def _enterprise_create_project_serialize( 5916 self, 5917 org_id, 5918 team_id, 5919 create_project_request, 5920 _request_auth, 5921 _content_type, 5922 _headers, 5923 _host_index, 5924 ) -> RequestSerialized: 5925 5926 _host = None 5927 5928 _collection_formats: Dict[str, str] = {} 5929 5930 _path_params: Dict[str, str] = {} 5931 _query_params: List[Tuple[str, str]] = [] 5932 _header_params: Dict[str, Optional[str]] = _headers or {} 5933 _form_params: List[Tuple[str, str]] = [] 5934 _files: Dict[str, str] = {} 5935 _body_params: Optional[bytes] = None 5936 5937 # process the path parameters 5938 if org_id is not None: 5939 _path_params["org_id"] = org_id 5940 if team_id is not None: 5941 _path_params["team_id"] = team_id 5942 # process the query parameters 5943 # process the header parameters 5944 # process the form parameters 5945 # process the body parameter 5946 if create_project_request is not None: 5947 _body_params = create_project_request 5948 5949 # set the HTTP header `Accept` 5950 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 5951 5952 # set the HTTP header `Content-Type` 5953 if _content_type: 5954 _header_params["Content-Type"] = _content_type 5955 else: 5956 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 5957 if _default_content_type is not None: 5958 _header_params["Content-Type"] = _default_content_type 5959 5960 # authentication setting 5961 _auth_settings: List[str] = [] 5962 5963 return self.api_client.param_serialize( 5964 method="POST", 5965 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects", 5966 path_params=_path_params, 5967 query_params=_query_params, 5968 header_params=_header_params, 5969 body=_body_params, 5970 post_params=_form_params, 5971 files=_files, 5972 auth_settings=_auth_settings, 5973 collection_formats=_collection_formats, 5974 _host=_host, 5975 _request_auth=_request_auth, 5976 ) 5977 5978 @validate_call 5979 def enterprise_delete_project( 5980 self, 5981 org_id: Annotated[ 5982 StrictStr, Field(description="The ID of the organization from which you want to delete a project.") 5983 ], 5984 team_id: Annotated[StrictStr, Field(description="The ID of the team from which you want to delete a project.")], 5985 project_id: Annotated[StrictStr, Field(description="The ID of the project that you want to delete.")], 5986 _request_timeout: Union[ 5987 None, 5988 Annotated[StrictFloat, Field(gt=0)], 5989 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5990 ] = None, 5991 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5992 _content_type: Optional[StrictStr] = None, 5993 _headers: Optional[Dict[StrictStr, Any]] = None, 5994 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5995 ) -> None: 5996 """Delete project 5997 5998 Deletes a project. After a project is deleted, all boards and users that belong to the project remain in the team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5999 6000 :param org_id: The ID of the organization from which you want to delete a project. (required) 6001 :type org_id: str 6002 :param team_id: The ID of the team from which you want to delete a project. (required) 6003 :type team_id: str 6004 :param project_id: The ID of the project that you want to delete. (required) 6005 :type project_id: str 6006 :param _request_timeout: timeout setting for this request. If one 6007 number provided, it will be total request 6008 timeout. It can also be a pair (tuple) of 6009 (connection, read) timeouts. 6010 :type _request_timeout: int, tuple(int, int), optional 6011 :param _request_auth: set to override the auth_settings for an a single 6012 request; this effectively ignores the 6013 authentication in the spec for a single request. 6014 :type _request_auth: dict, optional 6015 :param _content_type: force content-type for the request. 6016 :type _content_type: str, Optional 6017 :param _headers: set to override the headers for a single 6018 request; this effectively ignores the headers 6019 in the spec for a single request. 6020 :type _headers: dict, optional 6021 :param _host_index: set to override the host_index for a single 6022 request; this effectively ignores the host_index 6023 in the spec for a single request. 6024 :type _host_index: int, optional 6025 :return: Returns the result object. 6026 """ # noqa: E501 6027 6028 _param = self._enterprise_delete_project_serialize( 6029 org_id=org_id, 6030 team_id=team_id, 6031 project_id=project_id, 6032 _request_auth=_request_auth, 6033 _content_type=_content_type, 6034 _headers=_headers, 6035 _host_index=_host_index, 6036 ) 6037 6038 _response_types_map: Dict[str, Optional[str]] = { 6039 "204": None, 6040 "400": "Error400", 6041 "401": "Error401", 6042 "403": "Error403", 6043 "404": "Error404", 6044 "409": "Error409", 6045 "429": "Error429", 6046 } 6047 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6048 response_data.read() 6049 return self.api_client.response_deserialize( 6050 response_data=response_data, 6051 response_types_map=_response_types_map, 6052 ).data 6053 6054 def _enterprise_delete_project_serialize( 6055 self, 6056 org_id, 6057 team_id, 6058 project_id, 6059 _request_auth, 6060 _content_type, 6061 _headers, 6062 _host_index, 6063 ) -> RequestSerialized: 6064 6065 _host = None 6066 6067 _collection_formats: Dict[str, str] = {} 6068 6069 _path_params: Dict[str, str] = {} 6070 _query_params: List[Tuple[str, str]] = [] 6071 _header_params: Dict[str, Optional[str]] = _headers or {} 6072 _form_params: List[Tuple[str, str]] = [] 6073 _files: Dict[str, str] = {} 6074 _body_params: Optional[bytes] = None 6075 6076 # process the path parameters 6077 if org_id is not None: 6078 _path_params["org_id"] = org_id 6079 if team_id is not None: 6080 _path_params["team_id"] = team_id 6081 if project_id is not None: 6082 _path_params["project_id"] = project_id 6083 # process the query parameters 6084 # process the header parameters 6085 # process the form parameters 6086 # process the body parameter 6087 6088 # set the HTTP header `Accept` 6089 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6090 6091 # authentication setting 6092 _auth_settings: List[str] = [] 6093 6094 return self.api_client.param_serialize( 6095 method="DELETE", 6096 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}", 6097 path_params=_path_params, 6098 query_params=_query_params, 6099 header_params=_header_params, 6100 body=_body_params, 6101 post_params=_form_params, 6102 files=_files, 6103 auth_settings=_auth_settings, 6104 collection_formats=_collection_formats, 6105 _host=_host, 6106 _request_auth=_request_auth, 6107 ) 6108 6109 @validate_call 6110 def enterprise_get_project( 6111 self, 6112 org_id: Annotated[ 6113 StrictStr, 6114 Field(description="The ID of the organization from which you want to retrieve the project information."), 6115 ], 6116 team_id: Annotated[ 6117 StrictStr, Field(description="The ID of the team from which you want to retrieve the project information.") 6118 ], 6119 project_id: Annotated[ 6120 StrictStr, Field(description="The ID of the project for which you want to retrieve the information.") 6121 ], 6122 _request_timeout: Union[ 6123 None, 6124 Annotated[StrictFloat, Field(gt=0)], 6125 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6126 ] = None, 6127 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6128 _content_type: Optional[StrictStr] = None, 6129 _headers: Optional[Dict[StrictStr, Any]] = None, 6130 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6131 ) -> Project: 6132 """Get project 6133 6134 Retrieves project information, such as a name for an existing project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6135 6136 :param org_id: The ID of the organization from which you want to retrieve the project information. (required) 6137 :type org_id: str 6138 :param team_id: The ID of the team from which you want to retrieve the project information. (required) 6139 :type team_id: str 6140 :param project_id: The ID of the project for which you want to retrieve the information. (required) 6141 :type project_id: str 6142 :param _request_timeout: timeout setting for this request. If one 6143 number provided, it will be total request 6144 timeout. It can also be a pair (tuple) of 6145 (connection, read) timeouts. 6146 :type _request_timeout: int, tuple(int, int), optional 6147 :param _request_auth: set to override the auth_settings for an a single 6148 request; this effectively ignores the 6149 authentication in the spec for a single request. 6150 :type _request_auth: dict, optional 6151 :param _content_type: force content-type for the request. 6152 :type _content_type: str, Optional 6153 :param _headers: set to override the headers for a single 6154 request; this effectively ignores the headers 6155 in the spec for a single request. 6156 :type _headers: dict, optional 6157 :param _host_index: set to override the host_index for a single 6158 request; this effectively ignores the host_index 6159 in the spec for a single request. 6160 :type _host_index: int, optional 6161 :return: Returns the result object. 6162 """ # noqa: E501 6163 6164 _param = self._enterprise_get_project_serialize( 6165 org_id=org_id, 6166 team_id=team_id, 6167 project_id=project_id, 6168 _request_auth=_request_auth, 6169 _content_type=_content_type, 6170 _headers=_headers, 6171 _host_index=_host_index, 6172 ) 6173 6174 _response_types_map: Dict[str, Optional[str]] = { 6175 "200": "Project", 6176 "400": "Error400", 6177 "401": "Error401", 6178 "403": "Error403", 6179 "404": "Error404", 6180 "429": "Error429", 6181 } 6182 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6183 response_data.read() 6184 return self.api_client.response_deserialize( 6185 response_data=response_data, 6186 response_types_map=_response_types_map, 6187 ).data 6188 6189 def _enterprise_get_project_serialize( 6190 self, 6191 org_id, 6192 team_id, 6193 project_id, 6194 _request_auth, 6195 _content_type, 6196 _headers, 6197 _host_index, 6198 ) -> RequestSerialized: 6199 6200 _host = None 6201 6202 _collection_formats: Dict[str, str] = {} 6203 6204 _path_params: Dict[str, str] = {} 6205 _query_params: List[Tuple[str, str]] = [] 6206 _header_params: Dict[str, Optional[str]] = _headers or {} 6207 _form_params: List[Tuple[str, str]] = [] 6208 _files: Dict[str, str] = {} 6209 _body_params: Optional[bytes] = None 6210 6211 # process the path parameters 6212 if org_id is not None: 6213 _path_params["org_id"] = org_id 6214 if team_id is not None: 6215 _path_params["team_id"] = team_id 6216 if project_id is not None: 6217 _path_params["project_id"] = project_id 6218 # process the query parameters 6219 # process the header parameters 6220 # process the form parameters 6221 # process the body parameter 6222 6223 # set the HTTP header `Accept` 6224 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6225 6226 # authentication setting 6227 _auth_settings: List[str] = [] 6228 6229 return self.api_client.param_serialize( 6230 method="GET", 6231 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}", 6232 path_params=_path_params, 6233 query_params=_query_params, 6234 header_params=_header_params, 6235 body=_body_params, 6236 post_params=_form_params, 6237 files=_files, 6238 auth_settings=_auth_settings, 6239 collection_formats=_collection_formats, 6240 _host=_host, 6241 _request_auth=_request_auth, 6242 ) 6243 6244 @validate_call 6245 def enterprise_get_projects( 6246 self, 6247 org_id: Annotated[ 6248 StrictStr, 6249 Field( 6250 description="The ID of the organization from which you want to retrieve the list of available projects." 6251 ), 6252 ], 6253 team_id: Annotated[ 6254 StrictStr, 6255 Field(description="The ID of the team from which you want to retrieve the list of available projects."), 6256 ], 6257 limit: Annotated[ 6258 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 6259 Field( 6260 description="The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value." 6261 ), 6262 ] = None, 6263 cursor: Annotated[ 6264 Optional[StrictStr], 6265 Field( 6266 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 6267 ), 6268 ] = None, 6269 _request_timeout: Union[ 6270 None, 6271 Annotated[StrictFloat, Field(gt=0)], 6272 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6273 ] = None, 6274 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6275 _content_type: Optional[StrictStr] = None, 6276 _headers: Optional[Dict[StrictStr, Any]] = None, 6277 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6278 ) -> ProjectPage: 6279 """List of projects 6280 6281 Retrieves the list of projects in an existing team of an organization. You can retrieve all projects, including all private projects (projects that haven't been specifically shared with you) by enabling Content Admin permissions. To enable Content Admin permissions, see [Content Admin permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins).<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6282 6283 :param org_id: The ID of the organization from which you want to retrieve the list of available projects. (required) 6284 :type org_id: str 6285 :param team_id: The ID of the team from which you want to retrieve the list of available projects. (required) 6286 :type team_id: str 6287 :param limit: The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value. 6288 :type limit: int 6289 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 6290 :type cursor: str 6291 :param _request_timeout: timeout setting for this request. If one 6292 number provided, it will be total request 6293 timeout. It can also be a pair (tuple) of 6294 (connection, read) timeouts. 6295 :type _request_timeout: int, tuple(int, int), optional 6296 :param _request_auth: set to override the auth_settings for an a single 6297 request; this effectively ignores the 6298 authentication in the spec for a single request. 6299 :type _request_auth: dict, optional 6300 :param _content_type: force content-type for the request. 6301 :type _content_type: str, Optional 6302 :param _headers: set to override the headers for a single 6303 request; this effectively ignores the headers 6304 in the spec for a single request. 6305 :type _headers: dict, optional 6306 :param _host_index: set to override the host_index for a single 6307 request; this effectively ignores the host_index 6308 in the spec for a single request. 6309 :type _host_index: int, optional 6310 :return: Returns the result object. 6311 """ # noqa: E501 6312 6313 _param = self._enterprise_get_projects_serialize( 6314 org_id=org_id, 6315 team_id=team_id, 6316 limit=limit, 6317 cursor=cursor, 6318 _request_auth=_request_auth, 6319 _content_type=_content_type, 6320 _headers=_headers, 6321 _host_index=_host_index, 6322 ) 6323 6324 _response_types_map: Dict[str, Optional[str]] = { 6325 "200": "ProjectPage", 6326 "400": "Error400", 6327 "401": "Error401", 6328 "403": "Error403", 6329 "404": "Error404", 6330 "429": "Error429", 6331 } 6332 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6333 response_data.read() 6334 return self.api_client.response_deserialize( 6335 response_data=response_data, 6336 response_types_map=_response_types_map, 6337 ).data 6338 6339 def _enterprise_get_projects_serialize( 6340 self, 6341 org_id, 6342 team_id, 6343 limit, 6344 cursor, 6345 _request_auth, 6346 _content_type, 6347 _headers, 6348 _host_index, 6349 ) -> RequestSerialized: 6350 6351 _host = None 6352 6353 _collection_formats: Dict[str, str] = {} 6354 6355 _path_params: Dict[str, str] = {} 6356 _query_params: List[Tuple[str, str]] = [] 6357 _header_params: Dict[str, Optional[str]] = _headers or {} 6358 _form_params: List[Tuple[str, str]] = [] 6359 _files: Dict[str, str] = {} 6360 _body_params: Optional[bytes] = None 6361 6362 # process the path parameters 6363 if org_id is not None: 6364 _path_params["org_id"] = org_id 6365 if team_id is not None: 6366 _path_params["team_id"] = team_id 6367 # process the query parameters 6368 if limit is not None: 6369 6370 _query_params.append(("limit", limit)) 6371 6372 if cursor is not None: 6373 6374 _query_params.append(("cursor", cursor)) 6375 6376 # process the header parameters 6377 # process the form parameters 6378 # process the body parameter 6379 6380 # set the HTTP header `Accept` 6381 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6382 6383 # authentication setting 6384 _auth_settings: List[str] = [] 6385 6386 return self.api_client.param_serialize( 6387 method="GET", 6388 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects", 6389 path_params=_path_params, 6390 query_params=_query_params, 6391 header_params=_header_params, 6392 body=_body_params, 6393 post_params=_form_params, 6394 files=_files, 6395 auth_settings=_auth_settings, 6396 collection_formats=_collection_formats, 6397 _host=_host, 6398 _request_auth=_request_auth, 6399 ) 6400 6401 @validate_call 6402 def enterprise_update_project( 6403 self, 6404 org_id: Annotated[StrictStr, Field(description="The ID of an Organization.")], 6405 team_id: Annotated[StrictStr, Field(description="The ID of a Team.")], 6406 project_id: Annotated[StrictStr, Field(description="The ID of a Project.")], 6407 update_project_request: UpdateProjectRequest, 6408 _request_timeout: Union[ 6409 None, 6410 Annotated[StrictFloat, Field(gt=0)], 6411 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6412 ] = None, 6413 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6414 _content_type: Optional[StrictStr] = None, 6415 _headers: Optional[Dict[StrictStr, Any]] = None, 6416 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6417 ) -> Project: 6418 """Update project 6419 6420 Update information about a project, such as the project name.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6421 6422 :param org_id: The ID of an Organization. (required) 6423 :type org_id: str 6424 :param team_id: The ID of a Team. (required) 6425 :type team_id: str 6426 :param project_id: The ID of a Project. (required) 6427 :type project_id: str 6428 :param update_project_request: (required) 6429 :type update_project_request: UpdateProjectRequest 6430 :param _request_timeout: timeout setting for this request. If one 6431 number provided, it will be total request 6432 timeout. It can also be a pair (tuple) of 6433 (connection, read) timeouts. 6434 :type _request_timeout: int, tuple(int, int), optional 6435 :param _request_auth: set to override the auth_settings for an a single 6436 request; this effectively ignores the 6437 authentication in the spec for a single request. 6438 :type _request_auth: dict, optional 6439 :param _content_type: force content-type for the request. 6440 :type _content_type: str, Optional 6441 :param _headers: set to override the headers for a single 6442 request; this effectively ignores the headers 6443 in the spec for a single request. 6444 :type _headers: dict, optional 6445 :param _host_index: set to override the host_index for a single 6446 request; this effectively ignores the host_index 6447 in the spec for a single request. 6448 :type _host_index: int, optional 6449 :return: Returns the result object. 6450 """ # noqa: E501 6451 6452 _param = self._enterprise_update_project_serialize( 6453 org_id=org_id, 6454 team_id=team_id, 6455 project_id=project_id, 6456 update_project_request=update_project_request, 6457 _request_auth=_request_auth, 6458 _content_type=_content_type, 6459 _headers=_headers, 6460 _host_index=_host_index, 6461 ) 6462 6463 _response_types_map: Dict[str, Optional[str]] = { 6464 "200": "Project", 6465 "400": "Error400", 6466 "401": "Error401", 6467 "403": "Error403", 6468 "404": "Error404", 6469 "409": "Error409", 6470 "429": "Error429", 6471 } 6472 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6473 response_data.read() 6474 return self.api_client.response_deserialize( 6475 response_data=response_data, 6476 response_types_map=_response_types_map, 6477 ).data 6478 6479 def _enterprise_update_project_serialize( 6480 self, 6481 org_id, 6482 team_id, 6483 project_id, 6484 update_project_request, 6485 _request_auth, 6486 _content_type, 6487 _headers, 6488 _host_index, 6489 ) -> RequestSerialized: 6490 6491 _host = None 6492 6493 _collection_formats: Dict[str, str] = {} 6494 6495 _path_params: Dict[str, str] = {} 6496 _query_params: List[Tuple[str, str]] = [] 6497 _header_params: Dict[str, Optional[str]] = _headers or {} 6498 _form_params: List[Tuple[str, str]] = [] 6499 _files: Dict[str, str] = {} 6500 _body_params: Optional[bytes] = None 6501 6502 # process the path parameters 6503 if org_id is not None: 6504 _path_params["org_id"] = org_id 6505 if team_id is not None: 6506 _path_params["team_id"] = team_id 6507 if project_id is not None: 6508 _path_params["project_id"] = project_id 6509 # process the query parameters 6510 # process the header parameters 6511 # process the form parameters 6512 # process the body parameter 6513 if update_project_request is not None: 6514 _body_params = update_project_request 6515 6516 # set the HTTP header `Accept` 6517 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6518 6519 # set the HTTP header `Content-Type` 6520 if _content_type: 6521 _header_params["Content-Type"] = _content_type 6522 else: 6523 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 6524 if _default_content_type is not None: 6525 _header_params["Content-Type"] = _default_content_type 6526 6527 # authentication setting 6528 _auth_settings: List[str] = [] 6529 6530 return self.api_client.param_serialize( 6531 method="PATCH", 6532 resource_path="/v2/orgs/{org_id}/teams/{team_id}/projects/{project_id}", 6533 path_params=_path_params, 6534 query_params=_query_params, 6535 header_params=_header_params, 6536 body=_body_params, 6537 post_params=_form_params, 6538 files=_files, 6539 auth_settings=_auth_settings, 6540 collection_formats=_collection_formats, 6541 _host=_host, 6542 _request_auth=_request_auth, 6543 ) 6544 6545 @validate_call 6546 def enterprise_post_user_sessions_reset( 6547 self, 6548 email: Annotated[ 6549 StrictStr, 6550 Field( 6551 description="Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices." 6552 ), 6553 ], 6554 _request_timeout: Union[ 6555 None, 6556 Annotated[StrictFloat, Field(gt=0)], 6557 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6558 ] = None, 6559 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6560 _content_type: Optional[StrictStr] = None, 6561 _headers: Optional[Dict[StrictStr, Any]] = None, 6562 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6563 ) -> None: 6564 """Reset all sessions of a user 6565 6566 Reset all sessions of a user. Admins can now take immediate action to restrict user access to company data in case of security concerns. Calling this API ends all active Miro sessions across devices for a particular user, requiring the user to sign in again. This is useful in situations where a user leaves the company, their credentials are compromised, or there's suspicious activity on their account.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>sessions:delete</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6567 6568 :param email: Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices. (required) 6569 :type email: str 6570 :param _request_timeout: timeout setting for this request. If one 6571 number provided, it will be total request 6572 timeout. It can also be a pair (tuple) of 6573 (connection, read) timeouts. 6574 :type _request_timeout: int, tuple(int, int), optional 6575 :param _request_auth: set to override the auth_settings for an a single 6576 request; this effectively ignores the 6577 authentication in the spec for a single request. 6578 :type _request_auth: dict, optional 6579 :param _content_type: force content-type for the request. 6580 :type _content_type: str, Optional 6581 :param _headers: set to override the headers for a single 6582 request; this effectively ignores the headers 6583 in the spec for a single request. 6584 :type _headers: dict, optional 6585 :param _host_index: set to override the host_index for a single 6586 request; this effectively ignores the host_index 6587 in the spec for a single request. 6588 :type _host_index: int, optional 6589 :return: Returns the result object. 6590 """ # noqa: E501 6591 6592 _param = self._enterprise_post_user_sessions_reset_serialize( 6593 email=email, 6594 _request_auth=_request_auth, 6595 _content_type=_content_type, 6596 _headers=_headers, 6597 _host_index=_host_index, 6598 ) 6599 6600 _response_types_map: Dict[str, Optional[str]] = { 6601 "200": None, 6602 "400": None, 6603 "401": None, 6604 "403": None, 6605 "404": None, 6606 "429": None, 6607 } 6608 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6609 response_data.read() 6610 return self.api_client.response_deserialize( 6611 response_data=response_data, 6612 response_types_map=_response_types_map, 6613 ).data 6614 6615 def _enterprise_post_user_sessions_reset_serialize( 6616 self, 6617 email, 6618 _request_auth, 6619 _content_type, 6620 _headers, 6621 _host_index, 6622 ) -> RequestSerialized: 6623 6624 _host = None 6625 6626 _collection_formats: Dict[str, str] = {} 6627 6628 _path_params: Dict[str, str] = {} 6629 _query_params: List[Tuple[str, str]] = [] 6630 _header_params: Dict[str, Optional[str]] = _headers or {} 6631 _form_params: List[Tuple[str, str]] = [] 6632 _files: Dict[str, str] = {} 6633 _body_params: Optional[bytes] = None 6634 6635 # process the path parameters 6636 # process the query parameters 6637 if email is not None: 6638 6639 _query_params.append(("email", email)) 6640 6641 # process the header parameters 6642 # process the form parameters 6643 # process the body parameter 6644 6645 # authentication setting 6646 _auth_settings: List[str] = [] 6647 6648 return self.api_client.param_serialize( 6649 method="POST", 6650 resource_path="/v2/sessions/reset_all", 6651 path_params=_path_params, 6652 query_params=_query_params, 6653 header_params=_header_params, 6654 body=_body_params, 6655 post_params=_form_params, 6656 files=_files, 6657 auth_settings=_auth_settings, 6658 collection_formats=_collection_formats, 6659 _host=_host, 6660 _request_auth=_request_auth, 6661 ) 6662 6663 @validate_call 6664 def enterprise_delete_team_member( 6665 self, 6666 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6667 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6668 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 6669 _request_timeout: Union[ 6670 None, 6671 Annotated[StrictFloat, Field(gt=0)], 6672 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6673 ] = None, 6674 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6675 _content_type: Optional[StrictStr] = None, 6676 _headers: Optional[Dict[StrictStr, Any]] = None, 6677 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6678 ) -> None: 6679 """Delete team member from team 6680 6681 Deletes team member from team by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6682 6683 :param org_id: The id of the Organization. (required) 6684 :type org_id: str 6685 :param team_id: The id of the Team. (required) 6686 :type team_id: str 6687 :param member_id: The id of the Team Member (required) 6688 :type member_id: str 6689 :param _request_timeout: timeout setting for this request. If one 6690 number provided, it will be total request 6691 timeout. It can also be a pair (tuple) of 6692 (connection, read) timeouts. 6693 :type _request_timeout: int, tuple(int, int), optional 6694 :param _request_auth: set to override the auth_settings for an a single 6695 request; this effectively ignores the 6696 authentication in the spec for a single request. 6697 :type _request_auth: dict, optional 6698 :param _content_type: force content-type for the request. 6699 :type _content_type: str, Optional 6700 :param _headers: set to override the headers for a single 6701 request; this effectively ignores the headers 6702 in the spec for a single request. 6703 :type _headers: dict, optional 6704 :param _host_index: set to override the host_index for a single 6705 request; this effectively ignores the host_index 6706 in the spec for a single request. 6707 :type _host_index: int, optional 6708 :return: Returns the result object. 6709 """ # noqa: E501 6710 6711 _param = self._enterprise_delete_team_member_serialize( 6712 org_id=org_id, 6713 team_id=team_id, 6714 member_id=member_id, 6715 _request_auth=_request_auth, 6716 _content_type=_content_type, 6717 _headers=_headers, 6718 _host_index=_host_index, 6719 ) 6720 6721 _response_types_map: Dict[str, Optional[str]] = { 6722 "204": None, 6723 "400": None, 6724 "401": None, 6725 "403": None, 6726 "404": None, 6727 "409": None, 6728 "429": None, 6729 } 6730 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6731 response_data.read() 6732 return self.api_client.response_deserialize( 6733 response_data=response_data, 6734 response_types_map=_response_types_map, 6735 ).data 6736 6737 def _enterprise_delete_team_member_serialize( 6738 self, 6739 org_id, 6740 team_id, 6741 member_id, 6742 _request_auth, 6743 _content_type, 6744 _headers, 6745 _host_index, 6746 ) -> RequestSerialized: 6747 6748 _host = None 6749 6750 _collection_formats: Dict[str, str] = {} 6751 6752 _path_params: Dict[str, str] = {} 6753 _query_params: List[Tuple[str, str]] = [] 6754 _header_params: Dict[str, Optional[str]] = _headers or {} 6755 _form_params: List[Tuple[str, str]] = [] 6756 _files: Dict[str, str] = {} 6757 _body_params: Optional[bytes] = None 6758 6759 # process the path parameters 6760 if org_id is not None: 6761 _path_params["org_id"] = org_id 6762 if team_id is not None: 6763 _path_params["team_id"] = team_id 6764 if member_id is not None: 6765 _path_params["member_id"] = member_id 6766 # process the query parameters 6767 # process the header parameters 6768 # process the form parameters 6769 # process the body parameter 6770 6771 # authentication setting 6772 _auth_settings: List[str] = [] 6773 6774 return self.api_client.param_serialize( 6775 method="DELETE", 6776 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members/{member_id}", 6777 path_params=_path_params, 6778 query_params=_query_params, 6779 header_params=_header_params, 6780 body=_body_params, 6781 post_params=_form_params, 6782 files=_files, 6783 auth_settings=_auth_settings, 6784 collection_formats=_collection_formats, 6785 _host=_host, 6786 _request_auth=_request_auth, 6787 ) 6788 6789 @validate_call 6790 def enterprise_get_team_member( 6791 self, 6792 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6793 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6794 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 6795 _request_timeout: Union[ 6796 None, 6797 Annotated[StrictFloat, Field(gt=0)], 6798 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6799 ] = None, 6800 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6801 _content_type: Optional[StrictStr] = None, 6802 _headers: Optional[Dict[StrictStr, Any]] = None, 6803 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6804 ) -> TeamMember: 6805 """Get team member 6806 6807 Retrieves team member by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6808 6809 :param org_id: The id of the Organization. (required) 6810 :type org_id: str 6811 :param team_id: The id of the Team. (required) 6812 :type team_id: str 6813 :param member_id: The id of the Team Member (required) 6814 :type member_id: str 6815 :param _request_timeout: timeout setting for this request. If one 6816 number provided, it will be total request 6817 timeout. It can also be a pair (tuple) of 6818 (connection, read) timeouts. 6819 :type _request_timeout: int, tuple(int, int), optional 6820 :param _request_auth: set to override the auth_settings for an a single 6821 request; this effectively ignores the 6822 authentication in the spec for a single request. 6823 :type _request_auth: dict, optional 6824 :param _content_type: force content-type for the request. 6825 :type _content_type: str, Optional 6826 :param _headers: set to override the headers for a single 6827 request; this effectively ignores the headers 6828 in the spec for a single request. 6829 :type _headers: dict, optional 6830 :param _host_index: set to override the host_index for a single 6831 request; this effectively ignores the host_index 6832 in the spec for a single request. 6833 :type _host_index: int, optional 6834 :return: Returns the result object. 6835 """ # noqa: E501 6836 6837 _param = self._enterprise_get_team_member_serialize( 6838 org_id=org_id, 6839 team_id=team_id, 6840 member_id=member_id, 6841 _request_auth=_request_auth, 6842 _content_type=_content_type, 6843 _headers=_headers, 6844 _host_index=_host_index, 6845 ) 6846 6847 _response_types_map: Dict[str, Optional[str]] = { 6848 "200": "TeamMember", 6849 "400": None, 6850 "401": None, 6851 "403": None, 6852 "404": None, 6853 "429": None, 6854 } 6855 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6856 response_data.read() 6857 return self.api_client.response_deserialize( 6858 response_data=response_data, 6859 response_types_map=_response_types_map, 6860 ).data 6861 6862 def _enterprise_get_team_member_serialize( 6863 self, 6864 org_id, 6865 team_id, 6866 member_id, 6867 _request_auth, 6868 _content_type, 6869 _headers, 6870 _host_index, 6871 ) -> RequestSerialized: 6872 6873 _host = None 6874 6875 _collection_formats: Dict[str, str] = {} 6876 6877 _path_params: Dict[str, str] = {} 6878 _query_params: List[Tuple[str, str]] = [] 6879 _header_params: Dict[str, Optional[str]] = _headers or {} 6880 _form_params: List[Tuple[str, str]] = [] 6881 _files: Dict[str, str] = {} 6882 _body_params: Optional[bytes] = None 6883 6884 # process the path parameters 6885 if org_id is not None: 6886 _path_params["org_id"] = org_id 6887 if team_id is not None: 6888 _path_params["team_id"] = team_id 6889 if member_id is not None: 6890 _path_params["member_id"] = member_id 6891 # process the query parameters 6892 # process the header parameters 6893 # process the form parameters 6894 # process the body parameter 6895 6896 # set the HTTP header `Accept` 6897 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 6898 6899 # authentication setting 6900 _auth_settings: List[str] = [] 6901 6902 return self.api_client.param_serialize( 6903 method="GET", 6904 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members/{member_id}", 6905 path_params=_path_params, 6906 query_params=_query_params, 6907 header_params=_header_params, 6908 body=_body_params, 6909 post_params=_form_params, 6910 files=_files, 6911 auth_settings=_auth_settings, 6912 collection_formats=_collection_formats, 6913 _host=_host, 6914 _request_auth=_request_auth, 6915 ) 6916 6917 @validate_call 6918 def enterprise_get_team_members( 6919 self, 6920 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6921 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6922 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 6923 cursor: Annotated[ 6924 Optional[StrictStr], 6925 Field( 6926 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 6927 ), 6928 ] = None, 6929 role: Annotated[ 6930 Optional[StrictStr], 6931 Field( 6932 description=' Role query. Filters members by role using full word match. Accepted values are: * "member": Team member with full member permissions. * "admin": Admin of a team. Team member with permission to manage team. * "non_team": External user, non-team user. * "team_guest": Team-guest user, user with access only to a team without access to organization. ' 6933 ), 6934 ] = None, 6935 _request_timeout: Union[ 6936 None, 6937 Annotated[StrictFloat, Field(gt=0)], 6938 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6939 ] = None, 6940 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6941 _content_type: Optional[StrictStr] = None, 6942 _headers: Optional[Dict[StrictStr, Any]] = None, 6943 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6944 ) -> TeamMembersPage: 6945 """List team members 6946 6947 Retrieves team members by cursor.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6948 6949 :param org_id: The id of the Organization. (required) 6950 :type org_id: str 6951 :param team_id: The id of the Team. (required) 6952 :type team_id: str 6953 :param limit: 6954 :type limit: int 6955 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 6956 :type cursor: str 6957 :param role: Role query. Filters members by role using full word match. Accepted values are: * \"member\": Team member with full member permissions. * \"admin\": Admin of a team. Team member with permission to manage team. * \"non_team\": External user, non-team user. * \"team_guest\": Team-guest user, user with access only to a team without access to organization. 6958 :type role: str 6959 :param _request_timeout: timeout setting for this request. If one 6960 number provided, it will be total request 6961 timeout. It can also be a pair (tuple) of 6962 (connection, read) timeouts. 6963 :type _request_timeout: int, tuple(int, int), optional 6964 :param _request_auth: set to override the auth_settings for an a single 6965 request; this effectively ignores the 6966 authentication in the spec for a single request. 6967 :type _request_auth: dict, optional 6968 :param _content_type: force content-type for the request. 6969 :type _content_type: str, Optional 6970 :param _headers: set to override the headers for a single 6971 request; this effectively ignores the headers 6972 in the spec for a single request. 6973 :type _headers: dict, optional 6974 :param _host_index: set to override the host_index for a single 6975 request; this effectively ignores the host_index 6976 in the spec for a single request. 6977 :type _host_index: int, optional 6978 :return: Returns the result object. 6979 """ # noqa: E501 6980 6981 _param = self._enterprise_get_team_members_serialize( 6982 org_id=org_id, 6983 team_id=team_id, 6984 limit=limit, 6985 cursor=cursor, 6986 role=role, 6987 _request_auth=_request_auth, 6988 _content_type=_content_type, 6989 _headers=_headers, 6990 _host_index=_host_index, 6991 ) 6992 6993 _response_types_map: Dict[str, Optional[str]] = { 6994 "200": "TeamMembersPage", 6995 "400": None, 6996 "401": None, 6997 "403": None, 6998 "404": None, 6999 "429": None, 7000 } 7001 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7002 response_data.read() 7003 return self.api_client.response_deserialize( 7004 response_data=response_data, 7005 response_types_map=_response_types_map, 7006 ).data 7007 7008 def _enterprise_get_team_members_serialize( 7009 self, 7010 org_id, 7011 team_id, 7012 limit, 7013 cursor, 7014 role, 7015 _request_auth, 7016 _content_type, 7017 _headers, 7018 _host_index, 7019 ) -> RequestSerialized: 7020 7021 _host = None 7022 7023 _collection_formats: Dict[str, str] = {} 7024 7025 _path_params: Dict[str, str] = {} 7026 _query_params: List[Tuple[str, str]] = [] 7027 _header_params: Dict[str, Optional[str]] = _headers or {} 7028 _form_params: List[Tuple[str, str]] = [] 7029 _files: Dict[str, str] = {} 7030 _body_params: Optional[bytes] = None 7031 7032 # process the path parameters 7033 if org_id is not None: 7034 _path_params["org_id"] = org_id 7035 if team_id is not None: 7036 _path_params["team_id"] = team_id 7037 # process the query parameters 7038 if limit is not None: 7039 7040 _query_params.append(("limit", limit)) 7041 7042 if cursor is not None: 7043 7044 _query_params.append(("cursor", cursor)) 7045 7046 if role is not None: 7047 7048 _query_params.append(("role", role)) 7049 7050 # process the header parameters 7051 # process the form parameters 7052 # process the body parameter 7053 7054 # set the HTTP header `Accept` 7055 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7056 7057 # authentication setting 7058 _auth_settings: List[str] = [] 7059 7060 return self.api_client.param_serialize( 7061 method="GET", 7062 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members", 7063 path_params=_path_params, 7064 query_params=_query_params, 7065 header_params=_header_params, 7066 body=_body_params, 7067 post_params=_form_params, 7068 files=_files, 7069 auth_settings=_auth_settings, 7070 collection_formats=_collection_formats, 7071 _host=_host, 7072 _request_auth=_request_auth, 7073 ) 7074 7075 @validate_call 7076 def enterprise_invite_team_member( 7077 self, 7078 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7079 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7080 team_member_invite: TeamMemberInvite, 7081 _request_timeout: Union[ 7082 None, 7083 Annotated[StrictFloat, Field(gt=0)], 7084 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7085 ] = None, 7086 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7087 _content_type: Optional[StrictStr] = None, 7088 _headers: Optional[Dict[StrictStr, Any]] = None, 7089 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7090 ) -> TeamMember: 7091 """Invite team members 7092 7093 Invites a new Miro user to an existing team. The user must exist in your Miro organization. Users who do not exist in your Miro organization can be invited to the team via [SCIM](https://developers.miro.com/docs/scim) and an external identity provider, such as Okta or Azure Active Directory.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7094 7095 :param org_id: The id of the Organization. (required) 7096 :type org_id: str 7097 :param team_id: The id of the Team. (required) 7098 :type team_id: str 7099 :param team_member_invite: (required) 7100 :type team_member_invite: TeamMemberInvite 7101 :param _request_timeout: timeout setting for this request. If one 7102 number provided, it will be total request 7103 timeout. It can also be a pair (tuple) of 7104 (connection, read) timeouts. 7105 :type _request_timeout: int, tuple(int, int), optional 7106 :param _request_auth: set to override the auth_settings for an a single 7107 request; this effectively ignores the 7108 authentication in the spec for a single request. 7109 :type _request_auth: dict, optional 7110 :param _content_type: force content-type for the request. 7111 :type _content_type: str, Optional 7112 :param _headers: set to override the headers for a single 7113 request; this effectively ignores the headers 7114 in the spec for a single request. 7115 :type _headers: dict, optional 7116 :param _host_index: set to override the host_index for a single 7117 request; this effectively ignores the host_index 7118 in the spec for a single request. 7119 :type _host_index: int, optional 7120 :return: Returns the result object. 7121 """ # noqa: E501 7122 7123 _param = self._enterprise_invite_team_member_serialize( 7124 org_id=org_id, 7125 team_id=team_id, 7126 team_member_invite=team_member_invite, 7127 _request_auth=_request_auth, 7128 _content_type=_content_type, 7129 _headers=_headers, 7130 _host_index=_host_index, 7131 ) 7132 7133 _response_types_map: Dict[str, Optional[str]] = { 7134 "201": "TeamMember", 7135 "400": None, 7136 "401": None, 7137 "403": None, 7138 "404": None, 7139 "409": None, 7140 "429": None, 7141 } 7142 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7143 response_data.read() 7144 return self.api_client.response_deserialize( 7145 response_data=response_data, 7146 response_types_map=_response_types_map, 7147 ).data 7148 7149 def _enterprise_invite_team_member_serialize( 7150 self, 7151 org_id, 7152 team_id, 7153 team_member_invite, 7154 _request_auth, 7155 _content_type, 7156 _headers, 7157 _host_index, 7158 ) -> RequestSerialized: 7159 7160 _host = None 7161 7162 _collection_formats: Dict[str, str] = {} 7163 7164 _path_params: Dict[str, str] = {} 7165 _query_params: List[Tuple[str, str]] = [] 7166 _header_params: Dict[str, Optional[str]] = _headers or {} 7167 _form_params: List[Tuple[str, str]] = [] 7168 _files: Dict[str, str] = {} 7169 _body_params: Optional[bytes] = None 7170 7171 # process the path parameters 7172 if org_id is not None: 7173 _path_params["org_id"] = org_id 7174 if team_id is not None: 7175 _path_params["team_id"] = team_id 7176 # process the query parameters 7177 # process the header parameters 7178 # process the form parameters 7179 # process the body parameter 7180 if team_member_invite is not None: 7181 _body_params = team_member_invite 7182 7183 # set the HTTP header `Accept` 7184 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7185 7186 # set the HTTP header `Content-Type` 7187 if _content_type: 7188 _header_params["Content-Type"] = _content_type 7189 else: 7190 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7191 if _default_content_type is not None: 7192 _header_params["Content-Type"] = _default_content_type 7193 7194 # authentication setting 7195 _auth_settings: List[str] = [] 7196 7197 return self.api_client.param_serialize( 7198 method="POST", 7199 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members", 7200 path_params=_path_params, 7201 query_params=_query_params, 7202 header_params=_header_params, 7203 body=_body_params, 7204 post_params=_form_params, 7205 files=_files, 7206 auth_settings=_auth_settings, 7207 collection_formats=_collection_formats, 7208 _host=_host, 7209 _request_auth=_request_auth, 7210 ) 7211 7212 @validate_call 7213 def enterprise_update_team_member( 7214 self, 7215 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7216 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7217 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 7218 team_member_changes: TeamMemberChanges, 7219 _request_timeout: Union[ 7220 None, 7221 Annotated[StrictFloat, Field(gt=0)], 7222 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7223 ] = None, 7224 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7225 _content_type: Optional[StrictStr] = None, 7226 _headers: Optional[Dict[StrictStr, Any]] = None, 7227 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7228 ) -> TeamMember: 7229 """Update team member 7230 7231 Updates team member role in team by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7232 7233 :param org_id: The id of the Organization. (required) 7234 :type org_id: str 7235 :param team_id: The id of the Team. (required) 7236 :type team_id: str 7237 :param member_id: The id of the Team Member (required) 7238 :type member_id: str 7239 :param team_member_changes: (required) 7240 :type team_member_changes: TeamMemberChanges 7241 :param _request_timeout: timeout setting for this request. If one 7242 number provided, it will be total request 7243 timeout. It can also be a pair (tuple) of 7244 (connection, read) timeouts. 7245 :type _request_timeout: int, tuple(int, int), optional 7246 :param _request_auth: set to override the auth_settings for an a single 7247 request; this effectively ignores the 7248 authentication in the spec for a single request. 7249 :type _request_auth: dict, optional 7250 :param _content_type: force content-type for the request. 7251 :type _content_type: str, Optional 7252 :param _headers: set to override the headers for a single 7253 request; this effectively ignores the headers 7254 in the spec for a single request. 7255 :type _headers: dict, optional 7256 :param _host_index: set to override the host_index for a single 7257 request; this effectively ignores the host_index 7258 in the spec for a single request. 7259 :type _host_index: int, optional 7260 :return: Returns the result object. 7261 """ # noqa: E501 7262 7263 _param = self._enterprise_update_team_member_serialize( 7264 org_id=org_id, 7265 team_id=team_id, 7266 member_id=member_id, 7267 team_member_changes=team_member_changes, 7268 _request_auth=_request_auth, 7269 _content_type=_content_type, 7270 _headers=_headers, 7271 _host_index=_host_index, 7272 ) 7273 7274 _response_types_map: Dict[str, Optional[str]] = { 7275 "200": "TeamMember", 7276 "400": None, 7277 "401": None, 7278 "403": None, 7279 "404": None, 7280 "409": None, 7281 "429": None, 7282 } 7283 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7284 response_data.read() 7285 return self.api_client.response_deserialize( 7286 response_data=response_data, 7287 response_types_map=_response_types_map, 7288 ).data 7289 7290 def _enterprise_update_team_member_serialize( 7291 self, 7292 org_id, 7293 team_id, 7294 member_id, 7295 team_member_changes, 7296 _request_auth, 7297 _content_type, 7298 _headers, 7299 _host_index, 7300 ) -> RequestSerialized: 7301 7302 _host = None 7303 7304 _collection_formats: Dict[str, str] = {} 7305 7306 _path_params: Dict[str, str] = {} 7307 _query_params: List[Tuple[str, str]] = [] 7308 _header_params: Dict[str, Optional[str]] = _headers or {} 7309 _form_params: List[Tuple[str, str]] = [] 7310 _files: Dict[str, str] = {} 7311 _body_params: Optional[bytes] = None 7312 7313 # process the path parameters 7314 if org_id is not None: 7315 _path_params["org_id"] = org_id 7316 if team_id is not None: 7317 _path_params["team_id"] = team_id 7318 if member_id is not None: 7319 _path_params["member_id"] = member_id 7320 # process the query parameters 7321 # process the header parameters 7322 # process the form parameters 7323 # process the body parameter 7324 if team_member_changes is not None: 7325 _body_params = team_member_changes 7326 7327 # set the HTTP header `Accept` 7328 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7329 7330 # set the HTTP header `Content-Type` 7331 if _content_type: 7332 _header_params["Content-Type"] = _content_type 7333 else: 7334 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7335 if _default_content_type is not None: 7336 _header_params["Content-Type"] = _default_content_type 7337 7338 # authentication setting 7339 _auth_settings: List[str] = [] 7340 7341 return self.api_client.param_serialize( 7342 method="PATCH", 7343 resource_path="/v2/orgs/{org_id}/teams/{team_id}/members/{member_id}", 7344 path_params=_path_params, 7345 query_params=_query_params, 7346 header_params=_header_params, 7347 body=_body_params, 7348 post_params=_form_params, 7349 files=_files, 7350 auth_settings=_auth_settings, 7351 collection_formats=_collection_formats, 7352 _host=_host, 7353 _request_auth=_request_auth, 7354 ) 7355 7356 @validate_call 7357 def enterprise_get_default_team_settings( 7358 self, 7359 org_id: Annotated[StrictStr, Field(description="The id of an Organization.")], 7360 _request_timeout: Union[ 7361 None, 7362 Annotated[StrictFloat, Field(gt=0)], 7363 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7364 ] = None, 7365 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7366 _content_type: Optional[StrictStr] = None, 7367 _headers: Optional[Dict[StrictStr, Any]] = None, 7368 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7369 ) -> TeamSettings: 7370 """Get default team settings 7371 7372 Retrieves default team settings of an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7373 7374 :param org_id: The id of an Organization. (required) 7375 :type org_id: str 7376 :param _request_timeout: timeout setting for this request. If one 7377 number provided, it will be total request 7378 timeout. It can also be a pair (tuple) of 7379 (connection, read) timeouts. 7380 :type _request_timeout: int, tuple(int, int), optional 7381 :param _request_auth: set to override the auth_settings for an a single 7382 request; this effectively ignores the 7383 authentication in the spec for a single request. 7384 :type _request_auth: dict, optional 7385 :param _content_type: force content-type for the request. 7386 :type _content_type: str, Optional 7387 :param _headers: set to override the headers for a single 7388 request; this effectively ignores the headers 7389 in the spec for a single request. 7390 :type _headers: dict, optional 7391 :param _host_index: set to override the host_index for a single 7392 request; this effectively ignores the host_index 7393 in the spec for a single request. 7394 :type _host_index: int, optional 7395 :return: Returns the result object. 7396 """ # noqa: E501 7397 7398 _param = self._enterprise_get_default_team_settings_serialize( 7399 org_id=org_id, 7400 _request_auth=_request_auth, 7401 _content_type=_content_type, 7402 _headers=_headers, 7403 _host_index=_host_index, 7404 ) 7405 7406 _response_types_map: Dict[str, Optional[str]] = { 7407 "200": "TeamSettings", 7408 "400": None, 7409 "401": None, 7410 "403": None, 7411 "404": None, 7412 "429": None, 7413 } 7414 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7415 response_data.read() 7416 return self.api_client.response_deserialize( 7417 response_data=response_data, 7418 response_types_map=_response_types_map, 7419 ).data 7420 7421 def _enterprise_get_default_team_settings_serialize( 7422 self, 7423 org_id, 7424 _request_auth, 7425 _content_type, 7426 _headers, 7427 _host_index, 7428 ) -> RequestSerialized: 7429 7430 _host = None 7431 7432 _collection_formats: Dict[str, str] = {} 7433 7434 _path_params: Dict[str, str] = {} 7435 _query_params: List[Tuple[str, str]] = [] 7436 _header_params: Dict[str, Optional[str]] = _headers or {} 7437 _form_params: List[Tuple[str, str]] = [] 7438 _files: Dict[str, str] = {} 7439 _body_params: Optional[bytes] = None 7440 7441 # process the path parameters 7442 if org_id is not None: 7443 _path_params["org_id"] = org_id 7444 # process the query parameters 7445 # process the header parameters 7446 # process the form parameters 7447 # process the body parameter 7448 7449 # set the HTTP header `Accept` 7450 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7451 7452 # authentication setting 7453 _auth_settings: List[str] = [] 7454 7455 return self.api_client.param_serialize( 7456 method="GET", 7457 resource_path="/v2/orgs/{org_id}/default_teams_settings", 7458 path_params=_path_params, 7459 query_params=_query_params, 7460 header_params=_header_params, 7461 body=_body_params, 7462 post_params=_form_params, 7463 files=_files, 7464 auth_settings=_auth_settings, 7465 collection_formats=_collection_formats, 7466 _host=_host, 7467 _request_auth=_request_auth, 7468 ) 7469 7470 @validate_call 7471 def enterprise_get_team_settings( 7472 self, 7473 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7474 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7475 _request_timeout: Union[ 7476 None, 7477 Annotated[StrictFloat, Field(gt=0)], 7478 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7479 ] = None, 7480 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7481 _content_type: Optional[StrictStr] = None, 7482 _headers: Optional[Dict[StrictStr, Any]] = None, 7483 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7484 ) -> TeamSettings: 7485 """Get team settings 7486 7487 Retrieves team settings of an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7488 7489 :param org_id: The id of the Organization. (required) 7490 :type org_id: str 7491 :param team_id: The id of the Team. (required) 7492 :type team_id: str 7493 :param _request_timeout: timeout setting for this request. If one 7494 number provided, it will be total request 7495 timeout. It can also be a pair (tuple) of 7496 (connection, read) timeouts. 7497 :type _request_timeout: int, tuple(int, int), optional 7498 :param _request_auth: set to override the auth_settings for an a single 7499 request; this effectively ignores the 7500 authentication in the spec for a single request. 7501 :type _request_auth: dict, optional 7502 :param _content_type: force content-type for the request. 7503 :type _content_type: str, Optional 7504 :param _headers: set to override the headers for a single 7505 request; this effectively ignores the headers 7506 in the spec for a single request. 7507 :type _headers: dict, optional 7508 :param _host_index: set to override the host_index for a single 7509 request; this effectively ignores the host_index 7510 in the spec for a single request. 7511 :type _host_index: int, optional 7512 :return: Returns the result object. 7513 """ # noqa: E501 7514 7515 _param = self._enterprise_get_team_settings_serialize( 7516 org_id=org_id, 7517 team_id=team_id, 7518 _request_auth=_request_auth, 7519 _content_type=_content_type, 7520 _headers=_headers, 7521 _host_index=_host_index, 7522 ) 7523 7524 _response_types_map: Dict[str, Optional[str]] = { 7525 "200": "TeamSettings", 7526 "400": None, 7527 "401": None, 7528 "403": None, 7529 "404": None, 7530 "429": None, 7531 } 7532 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7533 response_data.read() 7534 return self.api_client.response_deserialize( 7535 response_data=response_data, 7536 response_types_map=_response_types_map, 7537 ).data 7538 7539 def _enterprise_get_team_settings_serialize( 7540 self, 7541 org_id, 7542 team_id, 7543 _request_auth, 7544 _content_type, 7545 _headers, 7546 _host_index, 7547 ) -> RequestSerialized: 7548 7549 _host = None 7550 7551 _collection_formats: Dict[str, str] = {} 7552 7553 _path_params: Dict[str, str] = {} 7554 _query_params: List[Tuple[str, str]] = [] 7555 _header_params: Dict[str, Optional[str]] = _headers or {} 7556 _form_params: List[Tuple[str, str]] = [] 7557 _files: Dict[str, str] = {} 7558 _body_params: Optional[bytes] = None 7559 7560 # process the path parameters 7561 if org_id is not None: 7562 _path_params["org_id"] = org_id 7563 if team_id is not None: 7564 _path_params["team_id"] = team_id 7565 # process the query parameters 7566 # process the header parameters 7567 # process the form parameters 7568 # process the body parameter 7569 7570 # set the HTTP header `Accept` 7571 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7572 7573 # authentication setting 7574 _auth_settings: List[str] = [] 7575 7576 return self.api_client.param_serialize( 7577 method="GET", 7578 resource_path="/v2/orgs/{org_id}/teams/{team_id}/settings", 7579 path_params=_path_params, 7580 query_params=_query_params, 7581 header_params=_header_params, 7582 body=_body_params, 7583 post_params=_form_params, 7584 files=_files, 7585 auth_settings=_auth_settings, 7586 collection_formats=_collection_formats, 7587 _host=_host, 7588 _request_auth=_request_auth, 7589 ) 7590 7591 @validate_call 7592 def enterprise_update_team_settings( 7593 self, 7594 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7595 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7596 team_settings_changes: TeamSettingsChanges, 7597 _request_timeout: Union[ 7598 None, 7599 Annotated[StrictFloat, Field(gt=0)], 7600 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7601 ] = None, 7602 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7603 _content_type: Optional[StrictStr] = None, 7604 _headers: Optional[Dict[StrictStr, Any]] = None, 7605 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7606 ) -> TeamSettings: 7607 """Update team settings 7608 7609 Updates team settings of an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7610 7611 :param org_id: The id of the Organization. (required) 7612 :type org_id: str 7613 :param team_id: The id of the Team. (required) 7614 :type team_id: str 7615 :param team_settings_changes: (required) 7616 :type team_settings_changes: TeamSettingsChanges 7617 :param _request_timeout: timeout setting for this request. If one 7618 number provided, it will be total request 7619 timeout. It can also be a pair (tuple) of 7620 (connection, read) timeouts. 7621 :type _request_timeout: int, tuple(int, int), optional 7622 :param _request_auth: set to override the auth_settings for an a single 7623 request; this effectively ignores the 7624 authentication in the spec for a single request. 7625 :type _request_auth: dict, optional 7626 :param _content_type: force content-type for the request. 7627 :type _content_type: str, Optional 7628 :param _headers: set to override the headers for a single 7629 request; this effectively ignores the headers 7630 in the spec for a single request. 7631 :type _headers: dict, optional 7632 :param _host_index: set to override the host_index for a single 7633 request; this effectively ignores the host_index 7634 in the spec for a single request. 7635 :type _host_index: int, optional 7636 :return: Returns the result object. 7637 """ # noqa: E501 7638 7639 _param = self._enterprise_update_team_settings_serialize( 7640 org_id=org_id, 7641 team_id=team_id, 7642 team_settings_changes=team_settings_changes, 7643 _request_auth=_request_auth, 7644 _content_type=_content_type, 7645 _headers=_headers, 7646 _host_index=_host_index, 7647 ) 7648 7649 _response_types_map: Dict[str, Optional[str]] = { 7650 "200": "TeamSettings", 7651 "400": None, 7652 "401": None, 7653 "403": None, 7654 "404": None, 7655 "409": None, 7656 "429": None, 7657 } 7658 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7659 response_data.read() 7660 return self.api_client.response_deserialize( 7661 response_data=response_data, 7662 response_types_map=_response_types_map, 7663 ).data 7664 7665 def _enterprise_update_team_settings_serialize( 7666 self, 7667 org_id, 7668 team_id, 7669 team_settings_changes, 7670 _request_auth, 7671 _content_type, 7672 _headers, 7673 _host_index, 7674 ) -> RequestSerialized: 7675 7676 _host = None 7677 7678 _collection_formats: Dict[str, str] = {} 7679 7680 _path_params: Dict[str, str] = {} 7681 _query_params: List[Tuple[str, str]] = [] 7682 _header_params: Dict[str, Optional[str]] = _headers or {} 7683 _form_params: List[Tuple[str, str]] = [] 7684 _files: Dict[str, str] = {} 7685 _body_params: Optional[bytes] = None 7686 7687 # process the path parameters 7688 if org_id is not None: 7689 _path_params["org_id"] = org_id 7690 if team_id is not None: 7691 _path_params["team_id"] = team_id 7692 # process the query parameters 7693 # process the header parameters 7694 # process the form parameters 7695 # process the body parameter 7696 if team_settings_changes is not None: 7697 _body_params = team_settings_changes 7698 7699 # set the HTTP header `Accept` 7700 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7701 7702 # set the HTTP header `Content-Type` 7703 if _content_type: 7704 _header_params["Content-Type"] = _content_type 7705 else: 7706 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7707 if _default_content_type is not None: 7708 _header_params["Content-Type"] = _default_content_type 7709 7710 # authentication setting 7711 _auth_settings: List[str] = [] 7712 7713 return self.api_client.param_serialize( 7714 method="PATCH", 7715 resource_path="/v2/orgs/{org_id}/teams/{team_id}/settings", 7716 path_params=_path_params, 7717 query_params=_query_params, 7718 header_params=_header_params, 7719 body=_body_params, 7720 post_params=_form_params, 7721 files=_files, 7722 auth_settings=_auth_settings, 7723 collection_formats=_collection_formats, 7724 _host=_host, 7725 _request_auth=_request_auth, 7726 ) 7727 7728 @validate_call 7729 def enterprise_create_team( 7730 self, 7731 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7732 create_team_request: CreateTeamRequest, 7733 _request_timeout: Union[ 7734 None, 7735 Annotated[StrictFloat, Field(gt=0)], 7736 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7737 ] = None, 7738 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7739 _content_type: Optional[StrictStr] = None, 7740 _headers: Optional[Dict[StrictStr, Any]] = None, 7741 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7742 ) -> Team: 7743 """Create team 7744 7745 Creates a new team in an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7746 7747 :param org_id: The id of the Organization. (required) 7748 :type org_id: str 7749 :param create_team_request: (required) 7750 :type create_team_request: CreateTeamRequest 7751 :param _request_timeout: timeout setting for this request. If one 7752 number provided, it will be total request 7753 timeout. It can also be a pair (tuple) of 7754 (connection, read) timeouts. 7755 :type _request_timeout: int, tuple(int, int), optional 7756 :param _request_auth: set to override the auth_settings for an a single 7757 request; this effectively ignores the 7758 authentication in the spec for a single request. 7759 :type _request_auth: dict, optional 7760 :param _content_type: force content-type for the request. 7761 :type _content_type: str, Optional 7762 :param _headers: set to override the headers for a single 7763 request; this effectively ignores the headers 7764 in the spec for a single request. 7765 :type _headers: dict, optional 7766 :param _host_index: set to override the host_index for a single 7767 request; this effectively ignores the host_index 7768 in the spec for a single request. 7769 :type _host_index: int, optional 7770 :return: Returns the result object. 7771 """ # noqa: E501 7772 7773 _param = self._enterprise_create_team_serialize( 7774 org_id=org_id, 7775 create_team_request=create_team_request, 7776 _request_auth=_request_auth, 7777 _content_type=_content_type, 7778 _headers=_headers, 7779 _host_index=_host_index, 7780 ) 7781 7782 _response_types_map: Dict[str, Optional[str]] = { 7783 "201": "Team", 7784 "400": None, 7785 "401": None, 7786 "403": None, 7787 "404": None, 7788 "429": None, 7789 } 7790 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7791 response_data.read() 7792 return self.api_client.response_deserialize( 7793 response_data=response_data, 7794 response_types_map=_response_types_map, 7795 ).data 7796 7797 def _enterprise_create_team_serialize( 7798 self, 7799 org_id, 7800 create_team_request, 7801 _request_auth, 7802 _content_type, 7803 _headers, 7804 _host_index, 7805 ) -> RequestSerialized: 7806 7807 _host = None 7808 7809 _collection_formats: Dict[str, str] = {} 7810 7811 _path_params: Dict[str, str] = {} 7812 _query_params: List[Tuple[str, str]] = [] 7813 _header_params: Dict[str, Optional[str]] = _headers or {} 7814 _form_params: List[Tuple[str, str]] = [] 7815 _files: Dict[str, str] = {} 7816 _body_params: Optional[bytes] = None 7817 7818 # process the path parameters 7819 if org_id is not None: 7820 _path_params["org_id"] = org_id 7821 # process the query parameters 7822 # process the header parameters 7823 # process the form parameters 7824 # process the body parameter 7825 if create_team_request is not None: 7826 _body_params = create_team_request 7827 7828 # set the HTTP header `Accept` 7829 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 7830 7831 # set the HTTP header `Content-Type` 7832 if _content_type: 7833 _header_params["Content-Type"] = _content_type 7834 else: 7835 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 7836 if _default_content_type is not None: 7837 _header_params["Content-Type"] = _default_content_type 7838 7839 # authentication setting 7840 _auth_settings: List[str] = [] 7841 7842 return self.api_client.param_serialize( 7843 method="POST", 7844 resource_path="/v2/orgs/{org_id}/teams", 7845 path_params=_path_params, 7846 query_params=_query_params, 7847 header_params=_header_params, 7848 body=_body_params, 7849 post_params=_form_params, 7850 files=_files, 7851 auth_settings=_auth_settings, 7852 collection_formats=_collection_formats, 7853 _host=_host, 7854 _request_auth=_request_auth, 7855 ) 7856 7857 @validate_call 7858 def enterprise_delete_team( 7859 self, 7860 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7861 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7862 _request_timeout: Union[ 7863 None, 7864 Annotated[StrictFloat, Field(gt=0)], 7865 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7866 ] = None, 7867 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7868 _content_type: Optional[StrictStr] = None, 7869 _headers: Optional[Dict[StrictStr, Any]] = None, 7870 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7871 ) -> None: 7872 """Delete team 7873 7874 Deletes an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7875 7876 :param org_id: The id of the Organization. (required) 7877 :type org_id: str 7878 :param team_id: The id of the Team. (required) 7879 :type team_id: str 7880 :param _request_timeout: timeout setting for this request. If one 7881 number provided, it will be total request 7882 timeout. It can also be a pair (tuple) of 7883 (connection, read) timeouts. 7884 :type _request_timeout: int, tuple(int, int), optional 7885 :param _request_auth: set to override the auth_settings for an a single 7886 request; this effectively ignores the 7887 authentication in the spec for a single request. 7888 :type _request_auth: dict, optional 7889 :param _content_type: force content-type for the request. 7890 :type _content_type: str, Optional 7891 :param _headers: set to override the headers for a single 7892 request; this effectively ignores the headers 7893 in the spec for a single request. 7894 :type _headers: dict, optional 7895 :param _host_index: set to override the host_index for a single 7896 request; this effectively ignores the host_index 7897 in the spec for a single request. 7898 :type _host_index: int, optional 7899 :return: Returns the result object. 7900 """ # noqa: E501 7901 7902 _param = self._enterprise_delete_team_serialize( 7903 org_id=org_id, 7904 team_id=team_id, 7905 _request_auth=_request_auth, 7906 _content_type=_content_type, 7907 _headers=_headers, 7908 _host_index=_host_index, 7909 ) 7910 7911 _response_types_map: Dict[str, Optional[str]] = { 7912 "204": None, 7913 "400": None, 7914 "401": None, 7915 "403": None, 7916 "404": None, 7917 "429": None, 7918 } 7919 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7920 response_data.read() 7921 return self.api_client.response_deserialize( 7922 response_data=response_data, 7923 response_types_map=_response_types_map, 7924 ).data 7925 7926 def _enterprise_delete_team_serialize( 7927 self, 7928 org_id, 7929 team_id, 7930 _request_auth, 7931 _content_type, 7932 _headers, 7933 _host_index, 7934 ) -> RequestSerialized: 7935 7936 _host = None 7937 7938 _collection_formats: Dict[str, str] = {} 7939 7940 _path_params: Dict[str, str] = {} 7941 _query_params: List[Tuple[str, str]] = [] 7942 _header_params: Dict[str, Optional[str]] = _headers or {} 7943 _form_params: List[Tuple[str, str]] = [] 7944 _files: Dict[str, str] = {} 7945 _body_params: Optional[bytes] = None 7946 7947 # process the path parameters 7948 if org_id is not None: 7949 _path_params["org_id"] = org_id 7950 if team_id is not None: 7951 _path_params["team_id"] = team_id 7952 # process the query parameters 7953 # process the header parameters 7954 # process the form parameters 7955 # process the body parameter 7956 7957 # authentication setting 7958 _auth_settings: List[str] = [] 7959 7960 return self.api_client.param_serialize( 7961 method="DELETE", 7962 resource_path="/v2/orgs/{org_id}/teams/{team_id}", 7963 path_params=_path_params, 7964 query_params=_query_params, 7965 header_params=_header_params, 7966 body=_body_params, 7967 post_params=_form_params, 7968 files=_files, 7969 auth_settings=_auth_settings, 7970 collection_formats=_collection_formats, 7971 _host=_host, 7972 _request_auth=_request_auth, 7973 ) 7974 7975 @validate_call 7976 def enterprise_get_team( 7977 self, 7978 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7979 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7980 _request_timeout: Union[ 7981 None, 7982 Annotated[StrictFloat, Field(gt=0)], 7983 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7984 ] = None, 7985 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7986 _content_type: Optional[StrictStr] = None, 7987 _headers: Optional[Dict[StrictStr, Any]] = None, 7988 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7989 ) -> Team: 7990 """Get team 7991 7992 Retrieves team information for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7993 7994 :param org_id: The id of the Organization. (required) 7995 :type org_id: str 7996 :param team_id: The id of the Team. (required) 7997 :type team_id: str 7998 :param _request_timeout: timeout setting for this request. If one 7999 number provided, it will be total request 8000 timeout. It can also be a pair (tuple) of 8001 (connection, read) timeouts. 8002 :type _request_timeout: int, tuple(int, int), optional 8003 :param _request_auth: set to override the auth_settings for an a single 8004 request; this effectively ignores the 8005 authentication in the spec for a single request. 8006 :type _request_auth: dict, optional 8007 :param _content_type: force content-type for the request. 8008 :type _content_type: str, Optional 8009 :param _headers: set to override the headers for a single 8010 request; this effectively ignores the headers 8011 in the spec for a single request. 8012 :type _headers: dict, optional 8013 :param _host_index: set to override the host_index for a single 8014 request; this effectively ignores the host_index 8015 in the spec for a single request. 8016 :type _host_index: int, optional 8017 :return: Returns the result object. 8018 """ # noqa: E501 8019 8020 _param = self._enterprise_get_team_serialize( 8021 org_id=org_id, 8022 team_id=team_id, 8023 _request_auth=_request_auth, 8024 _content_type=_content_type, 8025 _headers=_headers, 8026 _host_index=_host_index, 8027 ) 8028 8029 _response_types_map: Dict[str, Optional[str]] = { 8030 "200": "Team", 8031 "400": None, 8032 "401": None, 8033 "403": None, 8034 "404": None, 8035 "429": None, 8036 } 8037 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8038 response_data.read() 8039 return self.api_client.response_deserialize( 8040 response_data=response_data, 8041 response_types_map=_response_types_map, 8042 ).data 8043 8044 def _enterprise_get_team_serialize( 8045 self, 8046 org_id, 8047 team_id, 8048 _request_auth, 8049 _content_type, 8050 _headers, 8051 _host_index, 8052 ) -> RequestSerialized: 8053 8054 _host = None 8055 8056 _collection_formats: Dict[str, str] = {} 8057 8058 _path_params: Dict[str, str] = {} 8059 _query_params: List[Tuple[str, str]] = [] 8060 _header_params: Dict[str, Optional[str]] = _headers or {} 8061 _form_params: List[Tuple[str, str]] = [] 8062 _files: Dict[str, str] = {} 8063 _body_params: Optional[bytes] = None 8064 8065 # process the path parameters 8066 if org_id is not None: 8067 _path_params["org_id"] = org_id 8068 if team_id is not None: 8069 _path_params["team_id"] = team_id 8070 # process the query parameters 8071 # process the header parameters 8072 # process the form parameters 8073 # process the body parameter 8074 8075 # set the HTTP header `Accept` 8076 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8077 8078 # authentication setting 8079 _auth_settings: List[str] = [] 8080 8081 return self.api_client.param_serialize( 8082 method="GET", 8083 resource_path="/v2/orgs/{org_id}/teams/{team_id}", 8084 path_params=_path_params, 8085 query_params=_query_params, 8086 header_params=_header_params, 8087 body=_body_params, 8088 post_params=_form_params, 8089 files=_files, 8090 auth_settings=_auth_settings, 8091 collection_formats=_collection_formats, 8092 _host=_host, 8093 _request_auth=_request_auth, 8094 ) 8095 8096 @validate_call 8097 def enterprise_get_teams( 8098 self, 8099 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 8100 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 8101 cursor: Annotated[ 8102 Optional[StrictStr], 8103 Field( 8104 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 8105 ), 8106 ] = None, 8107 name: Annotated[ 8108 Optional[StrictStr], 8109 Field( 8110 description='Name query. Filters teams by name using case insensitive partial match. A value "dev" will return both "Developer\'s team" and "Team for developers".' 8111 ), 8112 ] = None, 8113 _request_timeout: Union[ 8114 None, 8115 Annotated[StrictFloat, Field(gt=0)], 8116 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8117 ] = None, 8118 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8119 _content_type: Optional[StrictStr] = None, 8120 _headers: Optional[Dict[StrictStr, Any]] = None, 8121 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8122 ) -> TeamsPage: 8123 """List teams 8124 8125 Retrieves list of teams in an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 8126 8127 :param org_id: The id of the Organization. (required) 8128 :type org_id: str 8129 :param limit: 8130 :type limit: int 8131 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 8132 :type cursor: str 8133 :param name: Name query. Filters teams by name using case insensitive partial match. A value \"dev\" will return both \"Developer's team\" and \"Team for developers\". 8134 :type name: str 8135 :param _request_timeout: timeout setting for this request. If one 8136 number provided, it will be total request 8137 timeout. It can also be a pair (tuple) of 8138 (connection, read) timeouts. 8139 :type _request_timeout: int, tuple(int, int), optional 8140 :param _request_auth: set to override the auth_settings for an a single 8141 request; this effectively ignores the 8142 authentication in the spec for a single request. 8143 :type _request_auth: dict, optional 8144 :param _content_type: force content-type for the request. 8145 :type _content_type: str, Optional 8146 :param _headers: set to override the headers for a single 8147 request; this effectively ignores the headers 8148 in the spec for a single request. 8149 :type _headers: dict, optional 8150 :param _host_index: set to override the host_index for a single 8151 request; this effectively ignores the host_index 8152 in the spec for a single request. 8153 :type _host_index: int, optional 8154 :return: Returns the result object. 8155 """ # noqa: E501 8156 8157 _param = self._enterprise_get_teams_serialize( 8158 org_id=org_id, 8159 limit=limit, 8160 cursor=cursor, 8161 name=name, 8162 _request_auth=_request_auth, 8163 _content_type=_content_type, 8164 _headers=_headers, 8165 _host_index=_host_index, 8166 ) 8167 8168 _response_types_map: Dict[str, Optional[str]] = { 8169 "200": "TeamsPage", 8170 "400": None, 8171 "401": None, 8172 "403": None, 8173 "404": None, 8174 "429": None, 8175 } 8176 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8177 response_data.read() 8178 return self.api_client.response_deserialize( 8179 response_data=response_data, 8180 response_types_map=_response_types_map, 8181 ).data 8182 8183 def _enterprise_get_teams_serialize( 8184 self, 8185 org_id, 8186 limit, 8187 cursor, 8188 name, 8189 _request_auth, 8190 _content_type, 8191 _headers, 8192 _host_index, 8193 ) -> RequestSerialized: 8194 8195 _host = None 8196 8197 _collection_formats: Dict[str, str] = {} 8198 8199 _path_params: Dict[str, str] = {} 8200 _query_params: List[Tuple[str, str]] = [] 8201 _header_params: Dict[str, Optional[str]] = _headers or {} 8202 _form_params: List[Tuple[str, str]] = [] 8203 _files: Dict[str, str] = {} 8204 _body_params: Optional[bytes] = None 8205 8206 # process the path parameters 8207 if org_id is not None: 8208 _path_params["org_id"] = org_id 8209 # process the query parameters 8210 if limit is not None: 8211 8212 _query_params.append(("limit", limit)) 8213 8214 if cursor is not None: 8215 8216 _query_params.append(("cursor", cursor)) 8217 8218 if name is not None: 8219 8220 _query_params.append(("name", name)) 8221 8222 # process the header parameters 8223 # process the form parameters 8224 # process the body parameter 8225 8226 # set the HTTP header `Accept` 8227 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8228 8229 # authentication setting 8230 _auth_settings: List[str] = [] 8231 8232 return self.api_client.param_serialize( 8233 method="GET", 8234 resource_path="/v2/orgs/{org_id}/teams", 8235 path_params=_path_params, 8236 query_params=_query_params, 8237 header_params=_header_params, 8238 body=_body_params, 8239 post_params=_form_params, 8240 files=_files, 8241 auth_settings=_auth_settings, 8242 collection_formats=_collection_formats, 8243 _host=_host, 8244 _request_auth=_request_auth, 8245 ) 8246 8247 @validate_call 8248 def enterprise_update_team( 8249 self, 8250 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 8251 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 8252 team_changes: TeamChanges, 8253 _request_timeout: Union[ 8254 None, 8255 Annotated[StrictFloat, Field(gt=0)], 8256 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8257 ] = None, 8258 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8259 _content_type: Optional[StrictStr] = None, 8260 _headers: Optional[Dict[StrictStr, Any]] = None, 8261 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8262 ) -> Team: 8263 """Update team 8264 8265 Updates an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 8266 8267 :param org_id: The id of the Organization. (required) 8268 :type org_id: str 8269 :param team_id: The id of the Team. (required) 8270 :type team_id: str 8271 :param team_changes: (required) 8272 :type team_changes: TeamChanges 8273 :param _request_timeout: timeout setting for this request. If one 8274 number provided, it will be total request 8275 timeout. It can also be a pair (tuple) of 8276 (connection, read) timeouts. 8277 :type _request_timeout: int, tuple(int, int), optional 8278 :param _request_auth: set to override the auth_settings for an a single 8279 request; this effectively ignores the 8280 authentication in the spec for a single request. 8281 :type _request_auth: dict, optional 8282 :param _content_type: force content-type for the request. 8283 :type _content_type: str, Optional 8284 :param _headers: set to override the headers for a single 8285 request; this effectively ignores the headers 8286 in the spec for a single request. 8287 :type _headers: dict, optional 8288 :param _host_index: set to override the host_index for a single 8289 request; this effectively ignores the host_index 8290 in the spec for a single request. 8291 :type _host_index: int, optional 8292 :return: Returns the result object. 8293 """ # noqa: E501 8294 8295 _param = self._enterprise_update_team_serialize( 8296 org_id=org_id, 8297 team_id=team_id, 8298 team_changes=team_changes, 8299 _request_auth=_request_auth, 8300 _content_type=_content_type, 8301 _headers=_headers, 8302 _host_index=_host_index, 8303 ) 8304 8305 _response_types_map: Dict[str, Optional[str]] = { 8306 "200": "Team", 8307 "400": None, 8308 "401": None, 8309 "403": None, 8310 "404": None, 8311 "429": None, 8312 } 8313 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8314 response_data.read() 8315 return self.api_client.response_deserialize( 8316 response_data=response_data, 8317 response_types_map=_response_types_map, 8318 ).data 8319 8320 def _enterprise_update_team_serialize( 8321 self, 8322 org_id, 8323 team_id, 8324 team_changes, 8325 _request_auth, 8326 _content_type, 8327 _headers, 8328 _host_index, 8329 ) -> RequestSerialized: 8330 8331 _host = None 8332 8333 _collection_formats: Dict[str, str] = {} 8334 8335 _path_params: Dict[str, str] = {} 8336 _query_params: List[Tuple[str, str]] = [] 8337 _header_params: Dict[str, Optional[str]] = _headers or {} 8338 _form_params: List[Tuple[str, str]] = [] 8339 _files: Dict[str, str] = {} 8340 _body_params: Optional[bytes] = None 8341 8342 # process the path parameters 8343 if org_id is not None: 8344 _path_params["org_id"] = org_id 8345 if team_id is not None: 8346 _path_params["team_id"] = team_id 8347 # process the query parameters 8348 # process the header parameters 8349 # process the form parameters 8350 # process the body parameter 8351 if team_changes is not None: 8352 _body_params = team_changes 8353 8354 # set the HTTP header `Accept` 8355 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8356 8357 # set the HTTP header `Content-Type` 8358 if _content_type: 8359 _header_params["Content-Type"] = _content_type 8360 else: 8361 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 8362 if _default_content_type is not None: 8363 _header_params["Content-Type"] = _default_content_type 8364 8365 # authentication setting 8366 _auth_settings: List[str] = [] 8367 8368 return self.api_client.param_serialize( 8369 method="PATCH", 8370 resource_path="/v2/orgs/{org_id}/teams/{team_id}", 8371 path_params=_path_params, 8372 query_params=_query_params, 8373 header_params=_header_params, 8374 body=_body_params, 8375 post_params=_form_params, 8376 files=_files, 8377 auth_settings=_auth_settings, 8378 collection_formats=_collection_formats, 8379 _host=_host, 8380 _request_auth=_request_auth, 8381 ) 8382 8383 @validate_call 8384 def create_board_subscription( 8385 self, 8386 create_board_subscription_request: CreateBoardSubscriptionRequest, 8387 _request_timeout: Union[ 8388 None, 8389 Annotated[StrictFloat, Field(gt=0)], 8390 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8391 ] = None, 8392 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8393 _content_type: Optional[StrictStr] = None, 8394 _headers: Optional[Dict[StrictStr, Any]] = None, 8395 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8396 ) -> BoardSubscription: 8397 """Create webhook subscription 8398 8399 Creates a webhook subscription to receive notifications when an item on a board is updated. Subscriptions are created per user, per board. You can create multiple subscriptions. We currently support all board items except tags, connectors, and comments.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8400 8401 :param create_board_subscription_request: (required) 8402 :type create_board_subscription_request: CreateBoardSubscriptionRequest 8403 :param _request_timeout: timeout setting for this request. If one 8404 number provided, it will be total request 8405 timeout. It can also be a pair (tuple) of 8406 (connection, read) timeouts. 8407 :type _request_timeout: int, tuple(int, int), optional 8408 :param _request_auth: set to override the auth_settings for an a single 8409 request; this effectively ignores the 8410 authentication in the spec for a single request. 8411 :type _request_auth: dict, optional 8412 :param _content_type: force content-type for the request. 8413 :type _content_type: str, Optional 8414 :param _headers: set to override the headers for a single 8415 request; this effectively ignores the headers 8416 in the spec for a single request. 8417 :type _headers: dict, optional 8418 :param _host_index: set to override the host_index for a single 8419 request; this effectively ignores the host_index 8420 in the spec for a single request. 8421 :type _host_index: int, optional 8422 :return: Returns the result object. 8423 """ # noqa: E501 8424 8425 _param = self._create_board_subscription_serialize( 8426 create_board_subscription_request=create_board_subscription_request, 8427 _request_auth=_request_auth, 8428 _content_type=_content_type, 8429 _headers=_headers, 8430 _host_index=_host_index, 8431 ) 8432 8433 _response_types_map: Dict[str, Optional[str]] = { 8434 "201": "BoardSubscription", 8435 "400": "CreateFrameItem400Response", 8436 "404": "CreateFrameItem400Response", 8437 "429": "CreateFrameItem400Response", 8438 } 8439 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8440 response_data.read() 8441 return self.api_client.response_deserialize( 8442 response_data=response_data, 8443 response_types_map=_response_types_map, 8444 ).data 8445 8446 def _create_board_subscription_serialize( 8447 self, 8448 create_board_subscription_request, 8449 _request_auth, 8450 _content_type, 8451 _headers, 8452 _host_index, 8453 ) -> RequestSerialized: 8454 8455 _host = None 8456 8457 _collection_formats: Dict[str, str] = {} 8458 8459 _path_params: Dict[str, str] = {} 8460 _query_params: List[Tuple[str, str]] = [] 8461 _header_params: Dict[str, Optional[str]] = _headers or {} 8462 _form_params: List[Tuple[str, str]] = [] 8463 _files: Dict[str, str] = {} 8464 _body_params: Optional[bytes] = None 8465 8466 # process the path parameters 8467 # process the query parameters 8468 # process the header parameters 8469 # process the form parameters 8470 # process the body parameter 8471 if create_board_subscription_request is not None: 8472 _body_params = create_board_subscription_request 8473 8474 # set the HTTP header `Accept` 8475 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8476 8477 # set the HTTP header `Content-Type` 8478 if _content_type: 8479 _header_params["Content-Type"] = _content_type 8480 else: 8481 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 8482 if _default_content_type is not None: 8483 _header_params["Content-Type"] = _default_content_type 8484 8485 # authentication setting 8486 _auth_settings: List[str] = [] 8487 8488 return self.api_client.param_serialize( 8489 method="POST", 8490 resource_path="/v2-experimental/webhooks/board_subscriptions", 8491 path_params=_path_params, 8492 query_params=_query_params, 8493 header_params=_header_params, 8494 body=_body_params, 8495 post_params=_form_params, 8496 files=_files, 8497 auth_settings=_auth_settings, 8498 collection_formats=_collection_formats, 8499 _host=_host, 8500 _request_auth=_request_auth, 8501 ) 8502 8503 @validate_call 8504 def delete_subscription_by_id( 8505 self, 8506 subscription_id: Annotated[ 8507 StrictStr, Field(description="Unique identifier (ID) of the subscription that you want to delete") 8508 ], 8509 _request_timeout: Union[ 8510 None, 8511 Annotated[StrictFloat, Field(gt=0)], 8512 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8513 ] = None, 8514 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8515 _content_type: Optional[StrictStr] = None, 8516 _headers: Optional[Dict[StrictStr, Any]] = None, 8517 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8518 ) -> object: 8519 """Delete webhook subscription 8520 8521 Deletes the specified webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8522 8523 :param subscription_id: Unique identifier (ID) of the subscription that you want to delete (required) 8524 :type subscription_id: str 8525 :param _request_timeout: timeout setting for this request. If one 8526 number provided, it will be total request 8527 timeout. It can also be a pair (tuple) of 8528 (connection, read) timeouts. 8529 :type _request_timeout: int, tuple(int, int), optional 8530 :param _request_auth: set to override the auth_settings for an a single 8531 request; this effectively ignores the 8532 authentication in the spec for a single request. 8533 :type _request_auth: dict, optional 8534 :param _content_type: force content-type for the request. 8535 :type _content_type: str, Optional 8536 :param _headers: set to override the headers for a single 8537 request; this effectively ignores the headers 8538 in the spec for a single request. 8539 :type _headers: dict, optional 8540 :param _host_index: set to override the host_index for a single 8541 request; this effectively ignores the host_index 8542 in the spec for a single request. 8543 :type _host_index: int, optional 8544 :return: Returns the result object. 8545 """ # noqa: E501 8546 8547 _param = self._delete_subscription_by_id_serialize( 8548 subscription_id=subscription_id, 8549 _request_auth=_request_auth, 8550 _content_type=_content_type, 8551 _headers=_headers, 8552 _host_index=_host_index, 8553 ) 8554 8555 _response_types_map: Dict[str, Optional[str]] = { 8556 "204": "object", 8557 "400": "CreateFrameItem400Response", 8558 "404": "CreateFrameItem400Response", 8559 "429": "CreateFrameItem400Response", 8560 } 8561 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8562 response_data.read() 8563 return self.api_client.response_deserialize( 8564 response_data=response_data, 8565 response_types_map=_response_types_map, 8566 ).data 8567 8568 def _delete_subscription_by_id_serialize( 8569 self, 8570 subscription_id, 8571 _request_auth, 8572 _content_type, 8573 _headers, 8574 _host_index, 8575 ) -> RequestSerialized: 8576 8577 _host = None 8578 8579 _collection_formats: Dict[str, str] = {} 8580 8581 _path_params: Dict[str, str] = {} 8582 _query_params: List[Tuple[str, str]] = [] 8583 _header_params: Dict[str, Optional[str]] = _headers or {} 8584 _form_params: List[Tuple[str, str]] = [] 8585 _files: Dict[str, str] = {} 8586 _body_params: Optional[bytes] = None 8587 8588 # process the path parameters 8589 if subscription_id is not None: 8590 _path_params["subscription_id"] = subscription_id 8591 # process the query parameters 8592 # process the header parameters 8593 # process the form parameters 8594 # process the body parameter 8595 8596 # set the HTTP header `Accept` 8597 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8598 8599 # authentication setting 8600 _auth_settings: List[str] = [] 8601 8602 return self.api_client.param_serialize( 8603 method="DELETE", 8604 resource_path="/v2-experimental/webhooks/subscriptions/{subscription_id}", 8605 path_params=_path_params, 8606 query_params=_query_params, 8607 header_params=_header_params, 8608 body=_body_params, 8609 post_params=_form_params, 8610 files=_files, 8611 auth_settings=_auth_settings, 8612 collection_formats=_collection_formats, 8613 _host=_host, 8614 _request_auth=_request_auth, 8615 ) 8616 8617 @validate_call 8618 def get_subscription_by_id( 8619 self, 8620 subscription_id: Annotated[ 8621 StrictStr, Field(description="Unique identifier (ID) of the subscription that you want to retrieve") 8622 ], 8623 _request_timeout: Union[ 8624 None, 8625 Annotated[StrictFloat, Field(gt=0)], 8626 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8627 ] = None, 8628 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8629 _content_type: Optional[StrictStr] = None, 8630 _headers: Optional[Dict[StrictStr, Any]] = None, 8631 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8632 ) -> GenericSubscription: 8633 """Get specific webhook subscription 8634 8635 Retrieves information for a specific webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8636 8637 :param subscription_id: Unique identifier (ID) of the subscription that you want to retrieve (required) 8638 :type subscription_id: str 8639 :param _request_timeout: timeout setting for this request. If one 8640 number provided, it will be total request 8641 timeout. It can also be a pair (tuple) of 8642 (connection, read) timeouts. 8643 :type _request_timeout: int, tuple(int, int), optional 8644 :param _request_auth: set to override the auth_settings for an a single 8645 request; this effectively ignores the 8646 authentication in the spec for a single request. 8647 :type _request_auth: dict, optional 8648 :param _content_type: force content-type for the request. 8649 :type _content_type: str, Optional 8650 :param _headers: set to override the headers for a single 8651 request; this effectively ignores the headers 8652 in the spec for a single request. 8653 :type _headers: dict, optional 8654 :param _host_index: set to override the host_index for a single 8655 request; this effectively ignores the host_index 8656 in the spec for a single request. 8657 :type _host_index: int, optional 8658 :return: Returns the result object. 8659 """ # noqa: E501 8660 8661 _param = self._get_subscription_by_id_serialize( 8662 subscription_id=subscription_id, 8663 _request_auth=_request_auth, 8664 _content_type=_content_type, 8665 _headers=_headers, 8666 _host_index=_host_index, 8667 ) 8668 8669 _response_types_map: Dict[str, Optional[str]] = { 8670 "200": "GenericSubscription", 8671 "400": "CreateFrameItem400Response", 8672 "404": "CreateFrameItem400Response", 8673 "429": "CreateFrameItem400Response", 8674 } 8675 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8676 response_data.read() 8677 return self.api_client.response_deserialize( 8678 response_data=response_data, 8679 response_types_map=_response_types_map, 8680 ).data 8681 8682 def _get_subscription_by_id_serialize( 8683 self, 8684 subscription_id, 8685 _request_auth, 8686 _content_type, 8687 _headers, 8688 _host_index, 8689 ) -> RequestSerialized: 8690 8691 _host = None 8692 8693 _collection_formats: Dict[str, str] = {} 8694 8695 _path_params: Dict[str, str] = {} 8696 _query_params: List[Tuple[str, str]] = [] 8697 _header_params: Dict[str, Optional[str]] = _headers or {} 8698 _form_params: List[Tuple[str, str]] = [] 8699 _files: Dict[str, str] = {} 8700 _body_params: Optional[bytes] = None 8701 8702 # process the path parameters 8703 if subscription_id is not None: 8704 _path_params["subscription_id"] = subscription_id 8705 # process the query parameters 8706 # process the header parameters 8707 # process the form parameters 8708 # process the body parameter 8709 8710 # set the HTTP header `Accept` 8711 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8712 8713 # authentication setting 8714 _auth_settings: List[str] = [] 8715 8716 return self.api_client.param_serialize( 8717 method="GET", 8718 resource_path="/v2-experimental/webhooks/subscriptions/{subscription_id}", 8719 path_params=_path_params, 8720 query_params=_query_params, 8721 header_params=_header_params, 8722 body=_body_params, 8723 post_params=_form_params, 8724 files=_files, 8725 auth_settings=_auth_settings, 8726 collection_formats=_collection_formats, 8727 _host=_host, 8728 _request_auth=_request_auth, 8729 ) 8730 8731 @validate_call 8732 def get_user_subscriptions( 8733 self, 8734 limit: Optional[Annotated[str, Field(strict=True)]] = None, 8735 cursor: Optional[StrictStr] = None, 8736 _request_timeout: Union[ 8737 None, 8738 Annotated[StrictFloat, Field(gt=0)], 8739 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8740 ] = None, 8741 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8742 _content_type: Optional[StrictStr] = None, 8743 _headers: Optional[Dict[StrictStr, Any]] = None, 8744 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8745 ) -> GenericSubscriptionsCursorPaged: 8746 """Get webhook subscriptions 8747 8748 Retrieves information about all webhook subscriptions for a specific user.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a><br/> 8749 8750 :param limit: 8751 :type limit: str 8752 :param cursor: 8753 :type cursor: str 8754 :param _request_timeout: timeout setting for this request. If one 8755 number provided, it will be total request 8756 timeout. It can also be a pair (tuple) of 8757 (connection, read) timeouts. 8758 :type _request_timeout: int, tuple(int, int), optional 8759 :param _request_auth: set to override the auth_settings for an a single 8760 request; this effectively ignores the 8761 authentication in the spec for a single request. 8762 :type _request_auth: dict, optional 8763 :param _content_type: force content-type for the request. 8764 :type _content_type: str, Optional 8765 :param _headers: set to override the headers for a single 8766 request; this effectively ignores the headers 8767 in the spec for a single request. 8768 :type _headers: dict, optional 8769 :param _host_index: set to override the host_index for a single 8770 request; this effectively ignores the host_index 8771 in the spec for a single request. 8772 :type _host_index: int, optional 8773 :return: Returns the result object. 8774 """ # noqa: E501 8775 8776 _param = self._get_user_subscriptions_serialize( 8777 limit=limit, 8778 cursor=cursor, 8779 _request_auth=_request_auth, 8780 _content_type=_content_type, 8781 _headers=_headers, 8782 _host_index=_host_index, 8783 ) 8784 8785 _response_types_map: Dict[str, Optional[str]] = { 8786 "200": "GenericSubscriptionsCursorPaged", 8787 "400": "CreateFrameItem400Response", 8788 "404": "CreateFrameItem400Response", 8789 "429": "CreateFrameItem400Response", 8790 } 8791 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8792 response_data.read() 8793 return self.api_client.response_deserialize( 8794 response_data=response_data, 8795 response_types_map=_response_types_map, 8796 ).data 8797 8798 def _get_user_subscriptions_serialize( 8799 self, 8800 limit, 8801 cursor, 8802 _request_auth, 8803 _content_type, 8804 _headers, 8805 _host_index, 8806 ) -> RequestSerialized: 8807 8808 _host = None 8809 8810 _collection_formats: Dict[str, str] = {} 8811 8812 _path_params: Dict[str, str] = {} 8813 _query_params: List[Tuple[str, str]] = [] 8814 _header_params: Dict[str, Optional[str]] = _headers or {} 8815 _form_params: List[Tuple[str, str]] = [] 8816 _files: Dict[str, str] = {} 8817 _body_params: Optional[bytes] = None 8818 8819 # process the path parameters 8820 # process the query parameters 8821 if limit is not None: 8822 8823 _query_params.append(("limit", limit)) 8824 8825 if cursor is not None: 8826 8827 _query_params.append(("cursor", cursor)) 8828 8829 # process the header parameters 8830 # process the form parameters 8831 # process the body parameter 8832 8833 # set the HTTP header `Accept` 8834 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8835 8836 # authentication setting 8837 _auth_settings: List[str] = [] 8838 8839 return self.api_client.param_serialize( 8840 method="GET", 8841 resource_path="/v2-experimental/webhooks/subscriptions", 8842 path_params=_path_params, 8843 query_params=_query_params, 8844 header_params=_header_params, 8845 body=_body_params, 8846 post_params=_form_params, 8847 files=_files, 8848 auth_settings=_auth_settings, 8849 collection_formats=_collection_formats, 8850 _host=_host, 8851 _request_auth=_request_auth, 8852 ) 8853 8854 @validate_call 8855 def update_board_subscription( 8856 self, 8857 subscription_id: StrictStr, 8858 update_board_subscription_request: UpdateBoardSubscriptionRequest, 8859 _request_timeout: Union[ 8860 None, 8861 Annotated[StrictFloat, Field(gt=0)], 8862 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8863 ] = None, 8864 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8865 _content_type: Optional[StrictStr] = None, 8866 _headers: Optional[Dict[StrictStr, Any]] = None, 8867 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8868 ) -> BoardSubscription: 8869 """Update webhook subscription 8870 8871 Updates the status or the callback URL of an existing webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8872 8873 :param subscription_id: (required) 8874 :type subscription_id: str 8875 :param update_board_subscription_request: (required) 8876 :type update_board_subscription_request: UpdateBoardSubscriptionRequest 8877 :param _request_timeout: timeout setting for this request. If one 8878 number provided, it will be total request 8879 timeout. It can also be a pair (tuple) of 8880 (connection, read) timeouts. 8881 :type _request_timeout: int, tuple(int, int), optional 8882 :param _request_auth: set to override the auth_settings for an a single 8883 request; this effectively ignores the 8884 authentication in the spec for a single request. 8885 :type _request_auth: dict, optional 8886 :param _content_type: force content-type for the request. 8887 :type _content_type: str, Optional 8888 :param _headers: set to override the headers for a single 8889 request; this effectively ignores the headers 8890 in the spec for a single request. 8891 :type _headers: dict, optional 8892 :param _host_index: set to override the host_index for a single 8893 request; this effectively ignores the host_index 8894 in the spec for a single request. 8895 :type _host_index: int, optional 8896 :return: Returns the result object. 8897 """ # noqa: E501 8898 8899 _param = self._update_board_subscription_serialize( 8900 subscription_id=subscription_id, 8901 update_board_subscription_request=update_board_subscription_request, 8902 _request_auth=_request_auth, 8903 _content_type=_content_type, 8904 _headers=_headers, 8905 _host_index=_host_index, 8906 ) 8907 8908 _response_types_map: Dict[str, Optional[str]] = { 8909 "200": "BoardSubscription", 8910 "400": "CreateFrameItem400Response", 8911 "404": "CreateFrameItem400Response", 8912 "429": "CreateFrameItem400Response", 8913 } 8914 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8915 response_data.read() 8916 return self.api_client.response_deserialize( 8917 response_data=response_data, 8918 response_types_map=_response_types_map, 8919 ).data 8920 8921 def _update_board_subscription_serialize( 8922 self, 8923 subscription_id, 8924 update_board_subscription_request, 8925 _request_auth, 8926 _content_type, 8927 _headers, 8928 _host_index, 8929 ) -> RequestSerialized: 8930 8931 _host = None 8932 8933 _collection_formats: Dict[str, str] = {} 8934 8935 _path_params: Dict[str, str] = {} 8936 _query_params: List[Tuple[str, str]] = [] 8937 _header_params: Dict[str, Optional[str]] = _headers or {} 8938 _form_params: List[Tuple[str, str]] = [] 8939 _files: Dict[str, str] = {} 8940 _body_params: Optional[bytes] = None 8941 8942 # process the path parameters 8943 if subscription_id is not None: 8944 _path_params["subscription_id"] = subscription_id 8945 # process the query parameters 8946 # process the header parameters 8947 # process the form parameters 8948 # process the body parameter 8949 if update_board_subscription_request is not None: 8950 _body_params = update_board_subscription_request 8951 8952 # set the HTTP header `Accept` 8953 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 8954 8955 # set the HTTP header `Content-Type` 8956 if _content_type: 8957 _header_params["Content-Type"] = _content_type 8958 else: 8959 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 8960 if _default_content_type is not None: 8961 _header_params["Content-Type"] = _default_content_type 8962 8963 # authentication setting 8964 _auth_settings: List[str] = [] 8965 8966 return self.api_client.param_serialize( 8967 method="PATCH", 8968 resource_path="/v2-experimental/webhooks/board_subscriptions/{subscription_id}", 8969 path_params=_path_params, 8970 query_params=_query_params, 8971 header_params=_header_params, 8972 body=_body_params, 8973 post_params=_form_params, 8974 files=_files, 8975 auth_settings=_auth_settings, 8976 collection_formats=_collection_formats, 8977 _host=_host, 8978 _request_auth=_request_auth, 8979 ) 8980 8981 @validate_call 8982 def create_app_card_item( 8983 self, 8984 board_id: Annotated[ 8985 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 8986 ], 8987 app_card_create_request: AppCardCreateRequest, 8988 _request_timeout: Union[ 8989 None, 8990 Annotated[StrictFloat, Field(gt=0)], 8991 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8992 ] = None, 8993 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8994 _content_type: Optional[StrictStr] = None, 8995 _headers: Optional[Dict[StrictStr, Any]] = None, 8996 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8997 ) -> AppCardItem: 8998 """Create app card item 8999 9000 Adds an app card item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9001 9002 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 9003 :type board_id: str 9004 :param app_card_create_request: (required) 9005 :type app_card_create_request: AppCardCreateRequest 9006 :param _request_timeout: timeout setting for this request. If one 9007 number provided, it will be total request 9008 timeout. It can also be a pair (tuple) of 9009 (connection, read) timeouts. 9010 :type _request_timeout: int, tuple(int, int), optional 9011 :param _request_auth: set to override the auth_settings for an a single 9012 request; this effectively ignores the 9013 authentication in the spec for a single request. 9014 :type _request_auth: dict, optional 9015 :param _content_type: force content-type for the request. 9016 :type _content_type: str, Optional 9017 :param _headers: set to override the headers for a single 9018 request; this effectively ignores the headers 9019 in the spec for a single request. 9020 :type _headers: dict, optional 9021 :param _host_index: set to override the host_index for a single 9022 request; this effectively ignores the host_index 9023 in the spec for a single request. 9024 :type _host_index: int, optional 9025 :return: Returns the result object. 9026 """ # noqa: E501 9027 9028 _param = self._create_app_card_item_serialize( 9029 board_id=board_id, 9030 app_card_create_request=app_card_create_request, 9031 _request_auth=_request_auth, 9032 _content_type=_content_type, 9033 _headers=_headers, 9034 _host_index=_host_index, 9035 ) 9036 9037 _response_types_map: Dict[str, Optional[str]] = { 9038 "201": "AppCardItem", 9039 "400": None, 9040 "404": None, 9041 "429": None, 9042 } 9043 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9044 response_data.read() 9045 return self.api_client.response_deserialize( 9046 response_data=response_data, 9047 response_types_map=_response_types_map, 9048 ).data 9049 9050 def _create_app_card_item_serialize( 9051 self, 9052 board_id, 9053 app_card_create_request, 9054 _request_auth, 9055 _content_type, 9056 _headers, 9057 _host_index, 9058 ) -> RequestSerialized: 9059 9060 _host = None 9061 9062 _collection_formats: Dict[str, str] = {} 9063 9064 _path_params: Dict[str, str] = {} 9065 _query_params: List[Tuple[str, str]] = [] 9066 _header_params: Dict[str, Optional[str]] = _headers or {} 9067 _form_params: List[Tuple[str, str]] = [] 9068 _files: Dict[str, str] = {} 9069 _body_params: Optional[bytes] = None 9070 9071 # process the path parameters 9072 if board_id is not None: 9073 _path_params["board_id"] = board_id 9074 # process the query parameters 9075 # process the header parameters 9076 # process the form parameters 9077 # process the body parameter 9078 if app_card_create_request is not None: 9079 _body_params = app_card_create_request 9080 9081 # set the HTTP header `Accept` 9082 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9083 9084 # set the HTTP header `Content-Type` 9085 if _content_type: 9086 _header_params["Content-Type"] = _content_type 9087 else: 9088 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 9089 if _default_content_type is not None: 9090 _header_params["Content-Type"] = _default_content_type 9091 9092 # authentication setting 9093 _auth_settings: List[str] = [] 9094 9095 return self.api_client.param_serialize( 9096 method="POST", 9097 resource_path="/v2/boards/{board_id}/app_cards", 9098 path_params=_path_params, 9099 query_params=_query_params, 9100 header_params=_header_params, 9101 body=_body_params, 9102 post_params=_form_params, 9103 files=_files, 9104 auth_settings=_auth_settings, 9105 collection_formats=_collection_formats, 9106 _host=_host, 9107 _request_auth=_request_auth, 9108 ) 9109 9110 @validate_call 9111 def delete_app_card_item( 9112 self, 9113 board_id: Annotated[ 9114 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete an item.") 9115 ], 9116 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 9117 _request_timeout: Union[ 9118 None, 9119 Annotated[StrictFloat, Field(gt=0)], 9120 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9121 ] = None, 9122 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9123 _content_type: Optional[StrictStr] = None, 9124 _headers: Optional[Dict[StrictStr, Any]] = None, 9125 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9126 ) -> object: 9127 """Delete app card item 9128 9129 Deletes an app card item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 9130 9131 :param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) 9132 :type board_id: str 9133 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 9134 :type item_id: str 9135 :param _request_timeout: timeout setting for this request. If one 9136 number provided, it will be total request 9137 timeout. It can also be a pair (tuple) of 9138 (connection, read) timeouts. 9139 :type _request_timeout: int, tuple(int, int), optional 9140 :param _request_auth: set to override the auth_settings for an a single 9141 request; this effectively ignores the 9142 authentication in the spec for a single request. 9143 :type _request_auth: dict, optional 9144 :param _content_type: force content-type for the request. 9145 :type _content_type: str, Optional 9146 :param _headers: set to override the headers for a single 9147 request; this effectively ignores the headers 9148 in the spec for a single request. 9149 :type _headers: dict, optional 9150 :param _host_index: set to override the host_index for a single 9151 request; this effectively ignores the host_index 9152 in the spec for a single request. 9153 :type _host_index: int, optional 9154 :return: Returns the result object. 9155 """ # noqa: E501 9156 9157 _param = self._delete_app_card_item_serialize( 9158 board_id=board_id, 9159 item_id=item_id, 9160 _request_auth=_request_auth, 9161 _content_type=_content_type, 9162 _headers=_headers, 9163 _host_index=_host_index, 9164 ) 9165 9166 _response_types_map: Dict[str, Optional[str]] = { 9167 "204": "object", 9168 "400": None, 9169 "404": None, 9170 "429": None, 9171 } 9172 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9173 response_data.read() 9174 return self.api_client.response_deserialize( 9175 response_data=response_data, 9176 response_types_map=_response_types_map, 9177 ).data 9178 9179 def _delete_app_card_item_serialize( 9180 self, 9181 board_id, 9182 item_id, 9183 _request_auth, 9184 _content_type, 9185 _headers, 9186 _host_index, 9187 ) -> RequestSerialized: 9188 9189 _host = None 9190 9191 _collection_formats: Dict[str, str] = {} 9192 9193 _path_params: Dict[str, str] = {} 9194 _query_params: List[Tuple[str, str]] = [] 9195 _header_params: Dict[str, Optional[str]] = _headers or {} 9196 _form_params: List[Tuple[str, str]] = [] 9197 _files: Dict[str, str] = {} 9198 _body_params: Optional[bytes] = None 9199 9200 # process the path parameters 9201 if board_id is not None: 9202 _path_params["board_id"] = board_id 9203 if item_id is not None: 9204 _path_params["item_id"] = item_id 9205 # process the query parameters 9206 # process the header parameters 9207 # process the form parameters 9208 # process the body parameter 9209 9210 # set the HTTP header `Accept` 9211 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9212 9213 # authentication setting 9214 _auth_settings: List[str] = [] 9215 9216 return self.api_client.param_serialize( 9217 method="DELETE", 9218 resource_path="/v2/boards/{board_id}/app_cards/{item_id}", 9219 path_params=_path_params, 9220 query_params=_query_params, 9221 header_params=_header_params, 9222 body=_body_params, 9223 post_params=_form_params, 9224 files=_files, 9225 auth_settings=_auth_settings, 9226 collection_formats=_collection_formats, 9227 _host=_host, 9228 _request_auth=_request_auth, 9229 ) 9230 9231 @validate_call 9232 def get_app_card_item( 9233 self, 9234 board_id: Annotated[ 9235 StrictStr, 9236 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 9237 ], 9238 item_id: Annotated[ 9239 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 9240 ], 9241 _request_timeout: Union[ 9242 None, 9243 Annotated[StrictFloat, Field(gt=0)], 9244 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9245 ] = None, 9246 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9247 _content_type: Optional[StrictStr] = None, 9248 _headers: Optional[Dict[StrictStr, Any]] = None, 9249 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9250 ) -> AppCardItem: 9251 """Get app card item 9252 9253 Retrieves information for a specific app card item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9254 9255 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 9256 :type board_id: str 9257 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 9258 :type item_id: str 9259 :param _request_timeout: timeout setting for this request. If one 9260 number provided, it will be total request 9261 timeout. It can also be a pair (tuple) of 9262 (connection, read) timeouts. 9263 :type _request_timeout: int, tuple(int, int), optional 9264 :param _request_auth: set to override the auth_settings for an a single 9265 request; this effectively ignores the 9266 authentication in the spec for a single request. 9267 :type _request_auth: dict, optional 9268 :param _content_type: force content-type for the request. 9269 :type _content_type: str, Optional 9270 :param _headers: set to override the headers for a single 9271 request; this effectively ignores the headers 9272 in the spec for a single request. 9273 :type _headers: dict, optional 9274 :param _host_index: set to override the host_index for a single 9275 request; this effectively ignores the host_index 9276 in the spec for a single request. 9277 :type _host_index: int, optional 9278 :return: Returns the result object. 9279 """ # noqa: E501 9280 9281 _param = self._get_app_card_item_serialize( 9282 board_id=board_id, 9283 item_id=item_id, 9284 _request_auth=_request_auth, 9285 _content_type=_content_type, 9286 _headers=_headers, 9287 _host_index=_host_index, 9288 ) 9289 9290 _response_types_map: Dict[str, Optional[str]] = { 9291 "200": "AppCardItem", 9292 "400": None, 9293 "404": None, 9294 "429": None, 9295 } 9296 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9297 response_data.read() 9298 return self.api_client.response_deserialize( 9299 response_data=response_data, 9300 response_types_map=_response_types_map, 9301 ).data 9302 9303 def _get_app_card_item_serialize( 9304 self, 9305 board_id, 9306 item_id, 9307 _request_auth, 9308 _content_type, 9309 _headers, 9310 _host_index, 9311 ) -> RequestSerialized: 9312 9313 _host = None 9314 9315 _collection_formats: Dict[str, str] = {} 9316 9317 _path_params: Dict[str, str] = {} 9318 _query_params: List[Tuple[str, str]] = [] 9319 _header_params: Dict[str, Optional[str]] = _headers or {} 9320 _form_params: List[Tuple[str, str]] = [] 9321 _files: Dict[str, str] = {} 9322 _body_params: Optional[bytes] = None 9323 9324 # process the path parameters 9325 if board_id is not None: 9326 _path_params["board_id"] = board_id 9327 if item_id is not None: 9328 _path_params["item_id"] = item_id 9329 # process the query parameters 9330 # process the header parameters 9331 # process the form parameters 9332 # process the body parameter 9333 9334 # set the HTTP header `Accept` 9335 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9336 9337 # authentication setting 9338 _auth_settings: List[str] = [] 9339 9340 return self.api_client.param_serialize( 9341 method="GET", 9342 resource_path="/v2/boards/{board_id}/app_cards/{item_id}", 9343 path_params=_path_params, 9344 query_params=_query_params, 9345 header_params=_header_params, 9346 body=_body_params, 9347 post_params=_form_params, 9348 files=_files, 9349 auth_settings=_auth_settings, 9350 collection_formats=_collection_formats, 9351 _host=_host, 9352 _request_auth=_request_auth, 9353 ) 9354 9355 @validate_call 9356 def update_app_card_item( 9357 self, 9358 board_id: Annotated[ 9359 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 9360 ], 9361 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 9362 app_card_update_request: AppCardUpdateRequest, 9363 _request_timeout: Union[ 9364 None, 9365 Annotated[StrictFloat, Field(gt=0)], 9366 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9367 ] = None, 9368 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9369 _content_type: Optional[StrictStr] = None, 9370 _headers: Optional[Dict[StrictStr, Any]] = None, 9371 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9372 ) -> AppCardItem: 9373 """Update app card item 9374 9375 Updates an app card item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9376 9377 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 9378 :type board_id: str 9379 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 9380 :type item_id: str 9381 :param app_card_update_request: (required) 9382 :type app_card_update_request: AppCardUpdateRequest 9383 :param _request_timeout: timeout setting for this request. If one 9384 number provided, it will be total request 9385 timeout. It can also be a pair (tuple) of 9386 (connection, read) timeouts. 9387 :type _request_timeout: int, tuple(int, int), optional 9388 :param _request_auth: set to override the auth_settings for an a single 9389 request; this effectively ignores the 9390 authentication in the spec for a single request. 9391 :type _request_auth: dict, optional 9392 :param _content_type: force content-type for the request. 9393 :type _content_type: str, Optional 9394 :param _headers: set to override the headers for a single 9395 request; this effectively ignores the headers 9396 in the spec for a single request. 9397 :type _headers: dict, optional 9398 :param _host_index: set to override the host_index for a single 9399 request; this effectively ignores the host_index 9400 in the spec for a single request. 9401 :type _host_index: int, optional 9402 :return: Returns the result object. 9403 """ # noqa: E501 9404 9405 _param = self._update_app_card_item_serialize( 9406 board_id=board_id, 9407 item_id=item_id, 9408 app_card_update_request=app_card_update_request, 9409 _request_auth=_request_auth, 9410 _content_type=_content_type, 9411 _headers=_headers, 9412 _host_index=_host_index, 9413 ) 9414 9415 _response_types_map: Dict[str, Optional[str]] = { 9416 "200": "AppCardItem", 9417 "400": None, 9418 "404": None, 9419 "409": None, 9420 "429": None, 9421 } 9422 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9423 response_data.read() 9424 return self.api_client.response_deserialize( 9425 response_data=response_data, 9426 response_types_map=_response_types_map, 9427 ).data 9428 9429 def _update_app_card_item_serialize( 9430 self, 9431 board_id, 9432 item_id, 9433 app_card_update_request, 9434 _request_auth, 9435 _content_type, 9436 _headers, 9437 _host_index, 9438 ) -> RequestSerialized: 9439 9440 _host = None 9441 9442 _collection_formats: Dict[str, str] = {} 9443 9444 _path_params: Dict[str, str] = {} 9445 _query_params: List[Tuple[str, str]] = [] 9446 _header_params: Dict[str, Optional[str]] = _headers or {} 9447 _form_params: List[Tuple[str, str]] = [] 9448 _files: Dict[str, str] = {} 9449 _body_params: Optional[bytes] = None 9450 9451 # process the path parameters 9452 if board_id is not None: 9453 _path_params["board_id"] = board_id 9454 if item_id is not None: 9455 _path_params["item_id"] = item_id 9456 # process the query parameters 9457 # process the header parameters 9458 # process the form parameters 9459 # process the body parameter 9460 if app_card_update_request is not None: 9461 _body_params = app_card_update_request 9462 9463 # set the HTTP header `Accept` 9464 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9465 9466 # set the HTTP header `Content-Type` 9467 if _content_type: 9468 _header_params["Content-Type"] = _content_type 9469 else: 9470 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 9471 if _default_content_type is not None: 9472 _header_params["Content-Type"] = _default_content_type 9473 9474 # authentication setting 9475 _auth_settings: List[str] = [] 9476 9477 return self.api_client.param_serialize( 9478 method="PATCH", 9479 resource_path="/v2/boards/{board_id}/app_cards/{item_id}", 9480 path_params=_path_params, 9481 query_params=_query_params, 9482 header_params=_header_params, 9483 body=_body_params, 9484 post_params=_form_params, 9485 files=_files, 9486 auth_settings=_auth_settings, 9487 collection_formats=_collection_formats, 9488 _host=_host, 9489 _request_auth=_request_auth, 9490 ) 9491 9492 @validate_call 9493 def get_board_members( 9494 self, 9495 board_id: Annotated[ 9496 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9497 ], 9498 limit: Optional[Annotated[str, Field(strict=True)]] = None, 9499 offset: Optional[StrictStr] = None, 9500 _request_timeout: Union[ 9501 None, 9502 Annotated[StrictFloat, Field(gt=0)], 9503 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9504 ] = None, 9505 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9506 _content_type: Optional[StrictStr] = None, 9507 _headers: Optional[Dict[StrictStr, Any]] = None, 9508 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9509 ) -> BoardMembersPagedResponse: 9510 """Get all board members 9511 9512 Retrieves a pageable list of members for a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9513 9514 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9515 :type board_id: str 9516 :param limit: 9517 :type limit: str 9518 :param offset: 9519 :type offset: str 9520 :param _request_timeout: timeout setting for this request. If one 9521 number provided, it will be total request 9522 timeout. It can also be a pair (tuple) of 9523 (connection, read) timeouts. 9524 :type _request_timeout: int, tuple(int, int), optional 9525 :param _request_auth: set to override the auth_settings for an a single 9526 request; this effectively ignores the 9527 authentication in the spec for a single request. 9528 :type _request_auth: dict, optional 9529 :param _content_type: force content-type for the request. 9530 :type _content_type: str, Optional 9531 :param _headers: set to override the headers for a single 9532 request; this effectively ignores the headers 9533 in the spec for a single request. 9534 :type _headers: dict, optional 9535 :param _host_index: set to override the host_index for a single 9536 request; this effectively ignores the host_index 9537 in the spec for a single request. 9538 :type _host_index: int, optional 9539 :return: Returns the result object. 9540 """ # noqa: E501 9541 9542 _param = self._get_board_members_serialize( 9543 board_id=board_id, 9544 limit=limit, 9545 offset=offset, 9546 _request_auth=_request_auth, 9547 _content_type=_content_type, 9548 _headers=_headers, 9549 _host_index=_host_index, 9550 ) 9551 9552 _response_types_map: Dict[str, Optional[str]] = { 9553 "200": "BoardMembersPagedResponse", 9554 "400": None, 9555 "404": None, 9556 "429": None, 9557 } 9558 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9559 response_data.read() 9560 return self.api_client.response_deserialize( 9561 response_data=response_data, 9562 response_types_map=_response_types_map, 9563 ).data 9564 9565 def _get_board_members_serialize( 9566 self, 9567 board_id, 9568 limit, 9569 offset, 9570 _request_auth, 9571 _content_type, 9572 _headers, 9573 _host_index, 9574 ) -> RequestSerialized: 9575 9576 _host = None 9577 9578 _collection_formats: Dict[str, str] = {} 9579 9580 _path_params: Dict[str, str] = {} 9581 _query_params: List[Tuple[str, str]] = [] 9582 _header_params: Dict[str, Optional[str]] = _headers or {} 9583 _form_params: List[Tuple[str, str]] = [] 9584 _files: Dict[str, str] = {} 9585 _body_params: Optional[bytes] = None 9586 9587 # process the path parameters 9588 if board_id is not None: 9589 _path_params["board_id"] = board_id 9590 # process the query parameters 9591 if limit is not None: 9592 9593 _query_params.append(("limit", limit)) 9594 9595 if offset is not None: 9596 9597 _query_params.append(("offset", offset)) 9598 9599 # process the header parameters 9600 # process the form parameters 9601 # process the body parameter 9602 9603 # set the HTTP header `Accept` 9604 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9605 9606 # authentication setting 9607 _auth_settings: List[str] = [] 9608 9609 return self.api_client.param_serialize( 9610 method="GET", 9611 resource_path="/v2/boards/{board_id}/members", 9612 path_params=_path_params, 9613 query_params=_query_params, 9614 header_params=_header_params, 9615 body=_body_params, 9616 post_params=_form_params, 9617 files=_files, 9618 auth_settings=_auth_settings, 9619 collection_formats=_collection_formats, 9620 _host=_host, 9621 _request_auth=_request_auth, 9622 ) 9623 9624 @validate_call 9625 def get_specific_board_member( 9626 self, 9627 board_id: Annotated[ 9628 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9629 ], 9630 board_member_id: Annotated[ 9631 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to retrieve.") 9632 ], 9633 _request_timeout: Union[ 9634 None, 9635 Annotated[StrictFloat, Field(gt=0)], 9636 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9637 ] = None, 9638 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9639 _content_type: Optional[StrictStr] = None, 9640 _headers: Optional[Dict[StrictStr, Any]] = None, 9641 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9642 ) -> BoardMemberWithLinks: 9643 """Get specific board member 9644 9645 Retrieves information for a board member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9646 9647 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9648 :type board_id: str 9649 :param board_member_id: Unique identifier (ID) of the board member whose role you want to retrieve. (required) 9650 :type board_member_id: str 9651 :param _request_timeout: timeout setting for this request. If one 9652 number provided, it will be total request 9653 timeout. It can also be a pair (tuple) of 9654 (connection, read) timeouts. 9655 :type _request_timeout: int, tuple(int, int), optional 9656 :param _request_auth: set to override the auth_settings for an a single 9657 request; this effectively ignores the 9658 authentication in the spec for a single request. 9659 :type _request_auth: dict, optional 9660 :param _content_type: force content-type for the request. 9661 :type _content_type: str, Optional 9662 :param _headers: set to override the headers for a single 9663 request; this effectively ignores the headers 9664 in the spec for a single request. 9665 :type _headers: dict, optional 9666 :param _host_index: set to override the host_index for a single 9667 request; this effectively ignores the host_index 9668 in the spec for a single request. 9669 :type _host_index: int, optional 9670 :return: Returns the result object. 9671 """ # noqa: E501 9672 9673 _param = self._get_specific_board_member_serialize( 9674 board_id=board_id, 9675 board_member_id=board_member_id, 9676 _request_auth=_request_auth, 9677 _content_type=_content_type, 9678 _headers=_headers, 9679 _host_index=_host_index, 9680 ) 9681 9682 _response_types_map: Dict[str, Optional[str]] = { 9683 "200": "BoardMemberWithLinks", 9684 "400": None, 9685 "404": None, 9686 "429": None, 9687 } 9688 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9689 response_data.read() 9690 return self.api_client.response_deserialize( 9691 response_data=response_data, 9692 response_types_map=_response_types_map, 9693 ).data 9694 9695 def _get_specific_board_member_serialize( 9696 self, 9697 board_id, 9698 board_member_id, 9699 _request_auth, 9700 _content_type, 9701 _headers, 9702 _host_index, 9703 ) -> RequestSerialized: 9704 9705 _host = None 9706 9707 _collection_formats: Dict[str, str] = {} 9708 9709 _path_params: Dict[str, str] = {} 9710 _query_params: List[Tuple[str, str]] = [] 9711 _header_params: Dict[str, Optional[str]] = _headers or {} 9712 _form_params: List[Tuple[str, str]] = [] 9713 _files: Dict[str, str] = {} 9714 _body_params: Optional[bytes] = None 9715 9716 # process the path parameters 9717 if board_id is not None: 9718 _path_params["board_id"] = board_id 9719 if board_member_id is not None: 9720 _path_params["board_member_id"] = board_member_id 9721 # process the query parameters 9722 # process the header parameters 9723 # process the form parameters 9724 # process the body parameter 9725 9726 # set the HTTP header `Accept` 9727 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9728 9729 # authentication setting 9730 _auth_settings: List[str] = [] 9731 9732 return self.api_client.param_serialize( 9733 method="GET", 9734 resource_path="/v2/boards/{board_id}/members/{board_member_id}", 9735 path_params=_path_params, 9736 query_params=_query_params, 9737 header_params=_header_params, 9738 body=_body_params, 9739 post_params=_form_params, 9740 files=_files, 9741 auth_settings=_auth_settings, 9742 collection_formats=_collection_formats, 9743 _host=_host, 9744 _request_auth=_request_auth, 9745 ) 9746 9747 @validate_call 9748 def remove_board_member( 9749 self, 9750 board_id: Annotated[ 9751 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete an item.") 9752 ], 9753 board_member_id: Annotated[ 9754 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to delete.") 9755 ], 9756 _request_timeout: Union[ 9757 None, 9758 Annotated[StrictFloat, Field(gt=0)], 9759 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9760 ] = None, 9761 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9762 _content_type: Optional[StrictStr] = None, 9763 _headers: Optional[Dict[StrictStr, Any]] = None, 9764 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9765 ) -> object: 9766 """Remove board member 9767 9768 Removes a board member from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9769 9770 :param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) 9771 :type board_id: str 9772 :param board_member_id: Unique identifier (ID) of the board member whose role you want to delete. (required) 9773 :type board_member_id: str 9774 :param _request_timeout: timeout setting for this request. If one 9775 number provided, it will be total request 9776 timeout. It can also be a pair (tuple) of 9777 (connection, read) timeouts. 9778 :type _request_timeout: int, tuple(int, int), optional 9779 :param _request_auth: set to override the auth_settings for an a single 9780 request; this effectively ignores the 9781 authentication in the spec for a single request. 9782 :type _request_auth: dict, optional 9783 :param _content_type: force content-type for the request. 9784 :type _content_type: str, Optional 9785 :param _headers: set to override the headers for a single 9786 request; this effectively ignores the headers 9787 in the spec for a single request. 9788 :type _headers: dict, optional 9789 :param _host_index: set to override the host_index for a single 9790 request; this effectively ignores the host_index 9791 in the spec for a single request. 9792 :type _host_index: int, optional 9793 :return: Returns the result object. 9794 """ # noqa: E501 9795 9796 _param = self._remove_board_member_serialize( 9797 board_id=board_id, 9798 board_member_id=board_member_id, 9799 _request_auth=_request_auth, 9800 _content_type=_content_type, 9801 _headers=_headers, 9802 _host_index=_host_index, 9803 ) 9804 9805 _response_types_map: Dict[str, Optional[str]] = { 9806 "204": "object", 9807 "400": None, 9808 "404": None, 9809 "429": None, 9810 } 9811 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9812 response_data.read() 9813 return self.api_client.response_deserialize( 9814 response_data=response_data, 9815 response_types_map=_response_types_map, 9816 ).data 9817 9818 def _remove_board_member_serialize( 9819 self, 9820 board_id, 9821 board_member_id, 9822 _request_auth, 9823 _content_type, 9824 _headers, 9825 _host_index, 9826 ) -> RequestSerialized: 9827 9828 _host = None 9829 9830 _collection_formats: Dict[str, str] = {} 9831 9832 _path_params: Dict[str, str] = {} 9833 _query_params: List[Tuple[str, str]] = [] 9834 _header_params: Dict[str, Optional[str]] = _headers or {} 9835 _form_params: List[Tuple[str, str]] = [] 9836 _files: Dict[str, str] = {} 9837 _body_params: Optional[bytes] = None 9838 9839 # process the path parameters 9840 if board_id is not None: 9841 _path_params["board_id"] = board_id 9842 if board_member_id is not None: 9843 _path_params["board_member_id"] = board_member_id 9844 # process the query parameters 9845 # process the header parameters 9846 # process the form parameters 9847 # process the body parameter 9848 9849 # set the HTTP header `Accept` 9850 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9851 9852 # authentication setting 9853 _auth_settings: List[str] = [] 9854 9855 return self.api_client.param_serialize( 9856 method="DELETE", 9857 resource_path="/v2/boards/{board_id}/members/{board_member_id}", 9858 path_params=_path_params, 9859 query_params=_query_params, 9860 header_params=_header_params, 9861 body=_body_params, 9862 post_params=_form_params, 9863 files=_files, 9864 auth_settings=_auth_settings, 9865 collection_formats=_collection_formats, 9866 _host=_host, 9867 _request_auth=_request_auth, 9868 ) 9869 9870 @validate_call 9871 def share_board( 9872 self, 9873 board_id: Annotated[ 9874 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9875 ], 9876 board_members_invite: BoardMembersInvite, 9877 _request_timeout: Union[ 9878 None, 9879 Annotated[StrictFloat, Field(gt=0)], 9880 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9881 ] = None, 9882 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9883 _content_type: Optional[StrictStr] = None, 9884 _headers: Optional[Dict[StrictStr, Any]] = None, 9885 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9886 ) -> InvitationResult: 9887 """Share board 9888 9889 Shares the board and Invites new members to collaborate on a board by sending an invitation email. Depending on the board's Sharing policy, there might be various scenarios where membership in the team is required in order to share the board with a user.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 9890 9891 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9892 :type board_id: str 9893 :param board_members_invite: (required) 9894 :type board_members_invite: BoardMembersInvite 9895 :param _request_timeout: timeout setting for this request. If one 9896 number provided, it will be total request 9897 timeout. It can also be a pair (tuple) of 9898 (connection, read) timeouts. 9899 :type _request_timeout: int, tuple(int, int), optional 9900 :param _request_auth: set to override the auth_settings for an a single 9901 request; this effectively ignores the 9902 authentication in the spec for a single request. 9903 :type _request_auth: dict, optional 9904 :param _content_type: force content-type for the request. 9905 :type _content_type: str, Optional 9906 :param _headers: set to override the headers for a single 9907 request; this effectively ignores the headers 9908 in the spec for a single request. 9909 :type _headers: dict, optional 9910 :param _host_index: set to override the host_index for a single 9911 request; this effectively ignores the host_index 9912 in the spec for a single request. 9913 :type _host_index: int, optional 9914 :return: Returns the result object. 9915 """ # noqa: E501 9916 9917 _param = self._share_board_serialize( 9918 board_id=board_id, 9919 board_members_invite=board_members_invite, 9920 _request_auth=_request_auth, 9921 _content_type=_content_type, 9922 _headers=_headers, 9923 _host_index=_host_index, 9924 ) 9925 9926 _response_types_map: Dict[str, Optional[str]] = { 9927 "201": "InvitationResult", 9928 "400": None, 9929 "404": None, 9930 "429": None, 9931 } 9932 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9933 response_data.read() 9934 return self.api_client.response_deserialize( 9935 response_data=response_data, 9936 response_types_map=_response_types_map, 9937 ).data 9938 9939 def _share_board_serialize( 9940 self, 9941 board_id, 9942 board_members_invite, 9943 _request_auth, 9944 _content_type, 9945 _headers, 9946 _host_index, 9947 ) -> RequestSerialized: 9948 9949 _host = None 9950 9951 _collection_formats: Dict[str, str] = {} 9952 9953 _path_params: Dict[str, str] = {} 9954 _query_params: List[Tuple[str, str]] = [] 9955 _header_params: Dict[str, Optional[str]] = _headers or {} 9956 _form_params: List[Tuple[str, str]] = [] 9957 _files: Dict[str, str] = {} 9958 _body_params: Optional[bytes] = None 9959 9960 # process the path parameters 9961 if board_id is not None: 9962 _path_params["board_id"] = board_id 9963 # process the query parameters 9964 # process the header parameters 9965 # process the form parameters 9966 # process the body parameter 9967 if board_members_invite is not None: 9968 _body_params = board_members_invite 9969 9970 # set the HTTP header `Accept` 9971 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 9972 9973 # set the HTTP header `Content-Type` 9974 if _content_type: 9975 _header_params["Content-Type"] = _content_type 9976 else: 9977 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 9978 if _default_content_type is not None: 9979 _header_params["Content-Type"] = _default_content_type 9980 9981 # authentication setting 9982 _auth_settings: List[str] = [] 9983 9984 return self.api_client.param_serialize( 9985 method="POST", 9986 resource_path="/v2/boards/{board_id}/members", 9987 path_params=_path_params, 9988 query_params=_query_params, 9989 header_params=_header_params, 9990 body=_body_params, 9991 post_params=_form_params, 9992 files=_files, 9993 auth_settings=_auth_settings, 9994 collection_formats=_collection_formats, 9995 _host=_host, 9996 _request_auth=_request_auth, 9997 ) 9998 9999 @validate_call 10000 def update_board_member( 10001 self, 10002 board_id: Annotated[ 10003 StrictStr, 10004 Field( 10005 description="Unique identifier (ID) of the board for which you want to update the role of the board member." 10006 ), 10007 ], 10008 board_member_id: Annotated[ 10009 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to update.") 10010 ], 10011 board_member_changes: BoardMemberChanges, 10012 _request_timeout: Union[ 10013 None, 10014 Annotated[StrictFloat, Field(gt=0)], 10015 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10016 ] = None, 10017 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10018 _content_type: Optional[StrictStr] = None, 10019 _headers: Optional[Dict[StrictStr, Any]] = None, 10020 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10021 ) -> BoardMemberWithLinks: 10022 """Update board member 10023 10024 Updates the role of a board member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10025 10026 :param board_id: Unique identifier (ID) of the board for which you want to update the role of the board member. (required) 10027 :type board_id: str 10028 :param board_member_id: Unique identifier (ID) of the board member whose role you want to update. (required) 10029 :type board_member_id: str 10030 :param board_member_changes: (required) 10031 :type board_member_changes: BoardMemberChanges 10032 :param _request_timeout: timeout setting for this request. If one 10033 number provided, it will be total request 10034 timeout. It can also be a pair (tuple) of 10035 (connection, read) timeouts. 10036 :type _request_timeout: int, tuple(int, int), optional 10037 :param _request_auth: set to override the auth_settings for an a single 10038 request; this effectively ignores the 10039 authentication in the spec for a single request. 10040 :type _request_auth: dict, optional 10041 :param _content_type: force content-type for the request. 10042 :type _content_type: str, Optional 10043 :param _headers: set to override the headers for a single 10044 request; this effectively ignores the headers 10045 in the spec for a single request. 10046 :type _headers: dict, optional 10047 :param _host_index: set to override the host_index for a single 10048 request; this effectively ignores the host_index 10049 in the spec for a single request. 10050 :type _host_index: int, optional 10051 :return: Returns the result object. 10052 """ # noqa: E501 10053 10054 _param = self._update_board_member_serialize( 10055 board_id=board_id, 10056 board_member_id=board_member_id, 10057 board_member_changes=board_member_changes, 10058 _request_auth=_request_auth, 10059 _content_type=_content_type, 10060 _headers=_headers, 10061 _host_index=_host_index, 10062 ) 10063 10064 _response_types_map: Dict[str, Optional[str]] = { 10065 "200": "BoardMemberWithLinks", 10066 "400": None, 10067 "404": None, 10068 "429": None, 10069 } 10070 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10071 response_data.read() 10072 return self.api_client.response_deserialize( 10073 response_data=response_data, 10074 response_types_map=_response_types_map, 10075 ).data 10076 10077 def _update_board_member_serialize( 10078 self, 10079 board_id, 10080 board_member_id, 10081 board_member_changes, 10082 _request_auth, 10083 _content_type, 10084 _headers, 10085 _host_index, 10086 ) -> RequestSerialized: 10087 10088 _host = None 10089 10090 _collection_formats: Dict[str, str] = {} 10091 10092 _path_params: Dict[str, str] = {} 10093 _query_params: List[Tuple[str, str]] = [] 10094 _header_params: Dict[str, Optional[str]] = _headers or {} 10095 _form_params: List[Tuple[str, str]] = [] 10096 _files: Dict[str, str] = {} 10097 _body_params: Optional[bytes] = None 10098 10099 # process the path parameters 10100 if board_id is not None: 10101 _path_params["board_id"] = board_id 10102 if board_member_id is not None: 10103 _path_params["board_member_id"] = board_member_id 10104 # process the query parameters 10105 # process the header parameters 10106 # process the form parameters 10107 # process the body parameter 10108 if board_member_changes is not None: 10109 _body_params = board_member_changes 10110 10111 # set the HTTP header `Accept` 10112 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10113 10114 # set the HTTP header `Content-Type` 10115 if _content_type: 10116 _header_params["Content-Type"] = _content_type 10117 else: 10118 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10119 if _default_content_type is not None: 10120 _header_params["Content-Type"] = _default_content_type 10121 10122 # authentication setting 10123 _auth_settings: List[str] = [] 10124 10125 return self.api_client.param_serialize( 10126 method="PATCH", 10127 resource_path="/v2/boards/{board_id}/members/{board_member_id}", 10128 path_params=_path_params, 10129 query_params=_query_params, 10130 header_params=_header_params, 10131 body=_body_params, 10132 post_params=_form_params, 10133 files=_files, 10134 auth_settings=_auth_settings, 10135 collection_formats=_collection_formats, 10136 _host=_host, 10137 _request_auth=_request_auth, 10138 ) 10139 10140 @validate_call 10141 def copy_board( 10142 self, 10143 copy_from: Annotated[ 10144 StrictStr, Field(description="Unique identifier (ID) of the board that you want to copy.") 10145 ], 10146 copy_board_changes: Optional[CopyBoardChanges] = None, 10147 _request_timeout: Union[ 10148 None, 10149 Annotated[StrictFloat, Field(gt=0)], 10150 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10151 ] = None, 10152 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10153 _content_type: Optional[StrictStr] = None, 10154 _headers: Optional[Dict[StrictStr, Any]] = None, 10155 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10156 ) -> BoardWithLinksAndWithoutProject: 10157 """Copy board 10158 10159 Creates a copy of an existing board. You can also update the name, description, sharing policy, and permissions policy for the new board in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a><br/> 10160 10161 :param copy_from: Unique identifier (ID) of the board that you want to copy. (required) 10162 :type copy_from: str 10163 :param copy_board_changes: 10164 :type copy_board_changes: CopyBoardChanges 10165 :param _request_timeout: timeout setting for this request. If one 10166 number provided, it will be total request 10167 timeout. It can also be a pair (tuple) of 10168 (connection, read) timeouts. 10169 :type _request_timeout: int, tuple(int, int), optional 10170 :param _request_auth: set to override the auth_settings for an a single 10171 request; this effectively ignores the 10172 authentication in the spec for a single request. 10173 :type _request_auth: dict, optional 10174 :param _content_type: force content-type for the request. 10175 :type _content_type: str, Optional 10176 :param _headers: set to override the headers for a single 10177 request; this effectively ignores the headers 10178 in the spec for a single request. 10179 :type _headers: dict, optional 10180 :param _host_index: set to override the host_index for a single 10181 request; this effectively ignores the host_index 10182 in the spec for a single request. 10183 :type _host_index: int, optional 10184 :return: Returns the result object. 10185 """ # noqa: E501 10186 10187 _param = self._copy_board_serialize( 10188 copy_from=copy_from, 10189 copy_board_changes=copy_board_changes, 10190 _request_auth=_request_auth, 10191 _content_type=_content_type, 10192 _headers=_headers, 10193 _host_index=_host_index, 10194 ) 10195 10196 _response_types_map: Dict[str, Optional[str]] = { 10197 "201": "BoardWithLinksAndWithoutProject", 10198 "400": None, 10199 "404": None, 10200 "409": None, 10201 "429": None, 10202 } 10203 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10204 response_data.read() 10205 return self.api_client.response_deserialize( 10206 response_data=response_data, 10207 response_types_map=_response_types_map, 10208 ).data 10209 10210 def _copy_board_serialize( 10211 self, 10212 copy_from, 10213 copy_board_changes, 10214 _request_auth, 10215 _content_type, 10216 _headers, 10217 _host_index, 10218 ) -> RequestSerialized: 10219 10220 _host = None 10221 10222 _collection_formats: Dict[str, str] = {} 10223 10224 _path_params: Dict[str, str] = {} 10225 _query_params: List[Tuple[str, str]] = [] 10226 _header_params: Dict[str, Optional[str]] = _headers or {} 10227 _form_params: List[Tuple[str, str]] = [] 10228 _files: Dict[str, str] = {} 10229 _body_params: Optional[bytes] = None 10230 10231 # process the path parameters 10232 # process the query parameters 10233 if copy_from is not None: 10234 10235 _query_params.append(("copy_from", copy_from)) 10236 10237 # process the header parameters 10238 # process the form parameters 10239 # process the body parameter 10240 if copy_board_changes is not None: 10241 _body_params = copy_board_changes 10242 10243 # set the HTTP header `Accept` 10244 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10245 10246 # set the HTTP header `Content-Type` 10247 if _content_type: 10248 _header_params["Content-Type"] = _content_type 10249 else: 10250 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10251 if _default_content_type is not None: 10252 _header_params["Content-Type"] = _default_content_type 10253 10254 # authentication setting 10255 _auth_settings: List[str] = [] 10256 10257 return self.api_client.param_serialize( 10258 method="PUT", 10259 resource_path="/v2/boards", 10260 path_params=_path_params, 10261 query_params=_query_params, 10262 header_params=_header_params, 10263 body=_body_params, 10264 post_params=_form_params, 10265 files=_files, 10266 auth_settings=_auth_settings, 10267 collection_formats=_collection_formats, 10268 _host=_host, 10269 _request_auth=_request_auth, 10270 ) 10271 10272 @validate_call 10273 def create_board( 10274 self, 10275 board_changes: Optional[BoardChanges] = None, 10276 _request_timeout: Union[ 10277 None, 10278 Annotated[StrictFloat, Field(gt=0)], 10279 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10280 ] = None, 10281 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10282 _content_type: Optional[StrictStr] = None, 10283 _headers: Optional[Dict[StrictStr, Any]] = None, 10284 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10285 ) -> BoardWithLinks: 10286 """Create board 10287 10288 Creates a board with the specified name and sharing policies.<br/><h4>Note</h4> You can only create up to 3 team boards with the free plan.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 10289 10290 :param board_changes: 10291 :type board_changes: BoardChanges 10292 :param _request_timeout: timeout setting for this request. If one 10293 number provided, it will be total request 10294 timeout. It can also be a pair (tuple) of 10295 (connection, read) timeouts. 10296 :type _request_timeout: int, tuple(int, int), optional 10297 :param _request_auth: set to override the auth_settings for an a single 10298 request; this effectively ignores the 10299 authentication in the spec for a single request. 10300 :type _request_auth: dict, optional 10301 :param _content_type: force content-type for the request. 10302 :type _content_type: str, Optional 10303 :param _headers: set to override the headers for a single 10304 request; this effectively ignores the headers 10305 in the spec for a single request. 10306 :type _headers: dict, optional 10307 :param _host_index: set to override the host_index for a single 10308 request; this effectively ignores the host_index 10309 in the spec for a single request. 10310 :type _host_index: int, optional 10311 :return: Returns the result object. 10312 """ # noqa: E501 10313 10314 _param = self._create_board_serialize( 10315 board_changes=board_changes, 10316 _request_auth=_request_auth, 10317 _content_type=_content_type, 10318 _headers=_headers, 10319 _host_index=_host_index, 10320 ) 10321 10322 _response_types_map: Dict[str, Optional[str]] = { 10323 "201": "BoardWithLinks", 10324 "400": None, 10325 "404": None, 10326 "409": None, 10327 "429": None, 10328 } 10329 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10330 response_data.read() 10331 return self.api_client.response_deserialize( 10332 response_data=response_data, 10333 response_types_map=_response_types_map, 10334 ).data 10335 10336 def _create_board_serialize( 10337 self, 10338 board_changes, 10339 _request_auth, 10340 _content_type, 10341 _headers, 10342 _host_index, 10343 ) -> RequestSerialized: 10344 10345 _host = None 10346 10347 _collection_formats: Dict[str, str] = {} 10348 10349 _path_params: Dict[str, str] = {} 10350 _query_params: List[Tuple[str, str]] = [] 10351 _header_params: Dict[str, Optional[str]] = _headers or {} 10352 _form_params: List[Tuple[str, str]] = [] 10353 _files: Dict[str, str] = {} 10354 _body_params: Optional[bytes] = None 10355 10356 # process the path parameters 10357 # process the query parameters 10358 # process the header parameters 10359 # process the form parameters 10360 # process the body parameter 10361 if board_changes is not None: 10362 _body_params = board_changes 10363 10364 # set the HTTP header `Accept` 10365 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10366 10367 # set the HTTP header `Content-Type` 10368 if _content_type: 10369 _header_params["Content-Type"] = _content_type 10370 else: 10371 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10372 if _default_content_type is not None: 10373 _header_params["Content-Type"] = _default_content_type 10374 10375 # authentication setting 10376 _auth_settings: List[str] = [] 10377 10378 return self.api_client.param_serialize( 10379 method="POST", 10380 resource_path="/v2/boards", 10381 path_params=_path_params, 10382 query_params=_query_params, 10383 header_params=_header_params, 10384 body=_body_params, 10385 post_params=_form_params, 10386 files=_files, 10387 auth_settings=_auth_settings, 10388 collection_formats=_collection_formats, 10389 _host=_host, 10390 _request_auth=_request_auth, 10391 ) 10392 10393 @validate_call 10394 def delete_board( 10395 self, 10396 board_id: Annotated[ 10397 StrictStr, Field(description="Unique identifier (ID) of the board that you want to delete.") 10398 ], 10399 _request_timeout: Union[ 10400 None, 10401 Annotated[StrictFloat, Field(gt=0)], 10402 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10403 ] = None, 10404 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10405 _content_type: Optional[StrictStr] = None, 10406 _headers: Optional[Dict[StrictStr, Any]] = None, 10407 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10408 ) -> object: 10409 """Delete board 10410 10411 Deletes a board. Deleted boards go to Trash (on paid plans) and can be restored via UI within 90 days after deletion.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 10412 10413 :param board_id: Unique identifier (ID) of the board that you want to delete. (required) 10414 :type board_id: str 10415 :param _request_timeout: timeout setting for this request. If one 10416 number provided, it will be total request 10417 timeout. It can also be a pair (tuple) of 10418 (connection, read) timeouts. 10419 :type _request_timeout: int, tuple(int, int), optional 10420 :param _request_auth: set to override the auth_settings for an a single 10421 request; this effectively ignores the 10422 authentication in the spec for a single request. 10423 :type _request_auth: dict, optional 10424 :param _content_type: force content-type for the request. 10425 :type _content_type: str, Optional 10426 :param _headers: set to override the headers for a single 10427 request; this effectively ignores the headers 10428 in the spec for a single request. 10429 :type _headers: dict, optional 10430 :param _host_index: set to override the host_index for a single 10431 request; this effectively ignores the host_index 10432 in the spec for a single request. 10433 :type _host_index: int, optional 10434 :return: Returns the result object. 10435 """ # noqa: E501 10436 10437 _param = self._delete_board_serialize( 10438 board_id=board_id, 10439 _request_auth=_request_auth, 10440 _content_type=_content_type, 10441 _headers=_headers, 10442 _host_index=_host_index, 10443 ) 10444 10445 _response_types_map: Dict[str, Optional[str]] = { 10446 "204": "object", 10447 "400": None, 10448 "404": None, 10449 "409": None, 10450 "429": None, 10451 } 10452 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10453 response_data.read() 10454 return self.api_client.response_deserialize( 10455 response_data=response_data, 10456 response_types_map=_response_types_map, 10457 ).data 10458 10459 def _delete_board_serialize( 10460 self, 10461 board_id, 10462 _request_auth, 10463 _content_type, 10464 _headers, 10465 _host_index, 10466 ) -> RequestSerialized: 10467 10468 _host = None 10469 10470 _collection_formats: Dict[str, str] = {} 10471 10472 _path_params: Dict[str, str] = {} 10473 _query_params: List[Tuple[str, str]] = [] 10474 _header_params: Dict[str, Optional[str]] = _headers or {} 10475 _form_params: List[Tuple[str, str]] = [] 10476 _files: Dict[str, str] = {} 10477 _body_params: Optional[bytes] = None 10478 10479 # process the path parameters 10480 if board_id is not None: 10481 _path_params["board_id"] = board_id 10482 # process the query parameters 10483 # process the header parameters 10484 # process the form parameters 10485 # process the body parameter 10486 10487 # set the HTTP header `Accept` 10488 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10489 10490 # authentication setting 10491 _auth_settings: List[str] = [] 10492 10493 return self.api_client.param_serialize( 10494 method="DELETE", 10495 resource_path="/v2/boards/{board_id}", 10496 path_params=_path_params, 10497 query_params=_query_params, 10498 header_params=_header_params, 10499 body=_body_params, 10500 post_params=_form_params, 10501 files=_files, 10502 auth_settings=_auth_settings, 10503 collection_formats=_collection_formats, 10504 _host=_host, 10505 _request_auth=_request_auth, 10506 ) 10507 10508 @validate_call 10509 def get_boards( 10510 self, 10511 team_id: Optional[StrictStr] = None, 10512 project_id: Optional[StrictStr] = None, 10513 query: Optional[Annotated[str, Field(strict=True, max_length=500)]] = None, 10514 owner: Optional[StrictStr] = None, 10515 limit: Optional[Annotated[str, Field(strict=True)]] = None, 10516 offset: Optional[StrictStr] = None, 10517 sort: Optional[StrictStr] = None, 10518 _request_timeout: Union[ 10519 None, 10520 Annotated[StrictFloat, Field(gt=0)], 10521 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10522 ] = None, 10523 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10524 _content_type: Optional[StrictStr] = None, 10525 _headers: Optional[Dict[StrictStr, Any]] = None, 10526 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10527 ) -> BoardsPagedResponse: 10528 """Get boards 10529 10530 Retrieves a list of boards accessible to the user associated with the provided access token. This endpoint supports filtering and sorting through URL query parameters. Customize the response by specifying `team_id`, `project_id`, or other query parameters. Filtering by `team_id` or `project_id` (or both) returns results instantly. For other filters, allow a few seconds for indexing of newly created boards. If you're an Enterprise customer with Company Admin permissions: - Enable **Content Admin** permissions to retrieve all boards, including private boards (those not explicitly shared with you). For details, see the [Content Admin Permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins). - Note that **Private board contents remain inaccessible**. The API allows you to verify their existence but prevents viewing their contents to uphold security best practices. Unauthorized access attempts will return an error. <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 10531 10532 :param team_id: 10533 :type team_id: str 10534 :param project_id: 10535 :type project_id: str 10536 :param query: 10537 :type query: str 10538 :param owner: 10539 :type owner: str 10540 :param limit: 10541 :type limit: str 10542 :param offset: 10543 :type offset: str 10544 :param sort: 10545 :type sort: str 10546 :param _request_timeout: timeout setting for this request. If one 10547 number provided, it will be total request 10548 timeout. It can also be a pair (tuple) of 10549 (connection, read) timeouts. 10550 :type _request_timeout: int, tuple(int, int), optional 10551 :param _request_auth: set to override the auth_settings for an a single 10552 request; this effectively ignores the 10553 authentication in the spec for a single request. 10554 :type _request_auth: dict, optional 10555 :param _content_type: force content-type for the request. 10556 :type _content_type: str, Optional 10557 :param _headers: set to override the headers for a single 10558 request; this effectively ignores the headers 10559 in the spec for a single request. 10560 :type _headers: dict, optional 10561 :param _host_index: set to override the host_index for a single 10562 request; this effectively ignores the host_index 10563 in the spec for a single request. 10564 :type _host_index: int, optional 10565 :return: Returns the result object. 10566 """ # noqa: E501 10567 10568 _param = self._get_boards_serialize( 10569 team_id=team_id, 10570 project_id=project_id, 10571 query=query, 10572 owner=owner, 10573 limit=limit, 10574 offset=offset, 10575 sort=sort, 10576 _request_auth=_request_auth, 10577 _content_type=_content_type, 10578 _headers=_headers, 10579 _host_index=_host_index, 10580 ) 10581 10582 _response_types_map: Dict[str, Optional[str]] = { 10583 "200": "BoardsPagedResponse", 10584 "400": None, 10585 "404": None, 10586 "429": None, 10587 } 10588 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10589 response_data.read() 10590 return self.api_client.response_deserialize( 10591 response_data=response_data, 10592 response_types_map=_response_types_map, 10593 ).data 10594 10595 def _get_boards_serialize( 10596 self, 10597 team_id, 10598 project_id, 10599 query, 10600 owner, 10601 limit, 10602 offset, 10603 sort, 10604 _request_auth, 10605 _content_type, 10606 _headers, 10607 _host_index, 10608 ) -> RequestSerialized: 10609 10610 _host = None 10611 10612 _collection_formats: Dict[str, str] = {} 10613 10614 _path_params: Dict[str, str] = {} 10615 _query_params: List[Tuple[str, str]] = [] 10616 _header_params: Dict[str, Optional[str]] = _headers or {} 10617 _form_params: List[Tuple[str, str]] = [] 10618 _files: Dict[str, str] = {} 10619 _body_params: Optional[bytes] = None 10620 10621 # process the path parameters 10622 # process the query parameters 10623 if team_id is not None: 10624 10625 _query_params.append(("team_id", team_id)) 10626 10627 if project_id is not None: 10628 10629 _query_params.append(("project_id", project_id)) 10630 10631 if query is not None: 10632 10633 _query_params.append(("query", query)) 10634 10635 if owner is not None: 10636 10637 _query_params.append(("owner", owner)) 10638 10639 if limit is not None: 10640 10641 _query_params.append(("limit", limit)) 10642 10643 if offset is not None: 10644 10645 _query_params.append(("offset", offset)) 10646 10647 if sort is not None: 10648 10649 _query_params.append(("sort", sort)) 10650 10651 # process the header parameters 10652 # process the form parameters 10653 # process the body parameter 10654 10655 # set the HTTP header `Accept` 10656 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10657 10658 # authentication setting 10659 _auth_settings: List[str] = [] 10660 10661 return self.api_client.param_serialize( 10662 method="GET", 10663 resource_path="/v2/boards", 10664 path_params=_path_params, 10665 query_params=_query_params, 10666 header_params=_header_params, 10667 body=_body_params, 10668 post_params=_form_params, 10669 files=_files, 10670 auth_settings=_auth_settings, 10671 collection_formats=_collection_formats, 10672 _host=_host, 10673 _request_auth=_request_auth, 10674 ) 10675 10676 @validate_call 10677 def get_specific_board( 10678 self, 10679 board_id: Annotated[ 10680 StrictStr, Field(description="Unique identifier (ID) of the board that you want to retrieve.") 10681 ], 10682 _request_timeout: Union[ 10683 None, 10684 Annotated[StrictFloat, Field(gt=0)], 10685 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10686 ] = None, 10687 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10688 _content_type: Optional[StrictStr] = None, 10689 _headers: Optional[Dict[StrictStr, Any]] = None, 10690 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10691 ) -> BoardWithLinksAndLastOpened: 10692 """Get specific board 10693 10694 Retrieves information about a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 10695 10696 :param board_id: Unique identifier (ID) of the board that you want to retrieve. (required) 10697 :type board_id: str 10698 :param _request_timeout: timeout setting for this request. If one 10699 number provided, it will be total request 10700 timeout. It can also be a pair (tuple) of 10701 (connection, read) timeouts. 10702 :type _request_timeout: int, tuple(int, int), optional 10703 :param _request_auth: set to override the auth_settings for an a single 10704 request; this effectively ignores the 10705 authentication in the spec for a single request. 10706 :type _request_auth: dict, optional 10707 :param _content_type: force content-type for the request. 10708 :type _content_type: str, Optional 10709 :param _headers: set to override the headers for a single 10710 request; this effectively ignores the headers 10711 in the spec for a single request. 10712 :type _headers: dict, optional 10713 :param _host_index: set to override the host_index for a single 10714 request; this effectively ignores the host_index 10715 in the spec for a single request. 10716 :type _host_index: int, optional 10717 :return: Returns the result object. 10718 """ # noqa: E501 10719 10720 _param = self._get_specific_board_serialize( 10721 board_id=board_id, 10722 _request_auth=_request_auth, 10723 _content_type=_content_type, 10724 _headers=_headers, 10725 _host_index=_host_index, 10726 ) 10727 10728 _response_types_map: Dict[str, Optional[str]] = { 10729 "200": "BoardWithLinksAndLastOpened", 10730 "400": None, 10731 "404": None, 10732 "429": None, 10733 } 10734 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10735 response_data.read() 10736 return self.api_client.response_deserialize( 10737 response_data=response_data, 10738 response_types_map=_response_types_map, 10739 ).data 10740 10741 def _get_specific_board_serialize( 10742 self, 10743 board_id, 10744 _request_auth, 10745 _content_type, 10746 _headers, 10747 _host_index, 10748 ) -> RequestSerialized: 10749 10750 _host = None 10751 10752 _collection_formats: Dict[str, str] = {} 10753 10754 _path_params: Dict[str, str] = {} 10755 _query_params: List[Tuple[str, str]] = [] 10756 _header_params: Dict[str, Optional[str]] = _headers or {} 10757 _form_params: List[Tuple[str, str]] = [] 10758 _files: Dict[str, str] = {} 10759 _body_params: Optional[bytes] = None 10760 10761 # process the path parameters 10762 if board_id is not None: 10763 _path_params["board_id"] = board_id 10764 # process the query parameters 10765 # process the header parameters 10766 # process the form parameters 10767 # process the body parameter 10768 10769 # set the HTTP header `Accept` 10770 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10771 10772 # authentication setting 10773 _auth_settings: List[str] = [] 10774 10775 return self.api_client.param_serialize( 10776 method="GET", 10777 resource_path="/v2/boards/{board_id}", 10778 path_params=_path_params, 10779 query_params=_query_params, 10780 header_params=_header_params, 10781 body=_body_params, 10782 post_params=_form_params, 10783 files=_files, 10784 auth_settings=_auth_settings, 10785 collection_formats=_collection_formats, 10786 _host=_host, 10787 _request_auth=_request_auth, 10788 ) 10789 10790 @validate_call 10791 def update_board( 10792 self, 10793 board_id: Annotated[ 10794 StrictStr, Field(description="Unique identifier (ID) of the board that you want to update.") 10795 ], 10796 board_changes: BoardChanges, 10797 _request_timeout: Union[ 10798 None, 10799 Annotated[StrictFloat, Field(gt=0)], 10800 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10801 ] = None, 10802 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10803 _content_type: Optional[StrictStr] = None, 10804 _headers: Optional[Dict[StrictStr, Any]] = None, 10805 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10806 ) -> BoardWithLinks: 10807 """Update board 10808 10809 Updates a specific board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10810 10811 :param board_id: Unique identifier (ID) of the board that you want to update. (required) 10812 :type board_id: str 10813 :param board_changes: (required) 10814 :type board_changes: BoardChanges 10815 :param _request_timeout: timeout setting for this request. If one 10816 number provided, it will be total request 10817 timeout. It can also be a pair (tuple) of 10818 (connection, read) timeouts. 10819 :type _request_timeout: int, tuple(int, int), optional 10820 :param _request_auth: set to override the auth_settings for an a single 10821 request; this effectively ignores the 10822 authentication in the spec for a single request. 10823 :type _request_auth: dict, optional 10824 :param _content_type: force content-type for the request. 10825 :type _content_type: str, Optional 10826 :param _headers: set to override the headers for a single 10827 request; this effectively ignores the headers 10828 in the spec for a single request. 10829 :type _headers: dict, optional 10830 :param _host_index: set to override the host_index for a single 10831 request; this effectively ignores the host_index 10832 in the spec for a single request. 10833 :type _host_index: int, optional 10834 :return: Returns the result object. 10835 """ # noqa: E501 10836 10837 _param = self._update_board_serialize( 10838 board_id=board_id, 10839 board_changes=board_changes, 10840 _request_auth=_request_auth, 10841 _content_type=_content_type, 10842 _headers=_headers, 10843 _host_index=_host_index, 10844 ) 10845 10846 _response_types_map: Dict[str, Optional[str]] = { 10847 "200": "BoardWithLinks", 10848 "202": None, 10849 "400": None, 10850 "404": None, 10851 "409": None, 10852 "429": None, 10853 } 10854 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10855 response_data.read() 10856 return self.api_client.response_deserialize( 10857 response_data=response_data, 10858 response_types_map=_response_types_map, 10859 ).data 10860 10861 def _update_board_serialize( 10862 self, 10863 board_id, 10864 board_changes, 10865 _request_auth, 10866 _content_type, 10867 _headers, 10868 _host_index, 10869 ) -> RequestSerialized: 10870 10871 _host = None 10872 10873 _collection_formats: Dict[str, str] = {} 10874 10875 _path_params: Dict[str, str] = {} 10876 _query_params: List[Tuple[str, str]] = [] 10877 _header_params: Dict[str, Optional[str]] = _headers or {} 10878 _form_params: List[Tuple[str, str]] = [] 10879 _files: Dict[str, str] = {} 10880 _body_params: Optional[bytes] = None 10881 10882 # process the path parameters 10883 if board_id is not None: 10884 _path_params["board_id"] = board_id 10885 # process the query parameters 10886 # process the header parameters 10887 # process the form parameters 10888 # process the body parameter 10889 if board_changes is not None: 10890 _body_params = board_changes 10891 10892 # set the HTTP header `Accept` 10893 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 10894 10895 # set the HTTP header `Content-Type` 10896 if _content_type: 10897 _header_params["Content-Type"] = _content_type 10898 else: 10899 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 10900 if _default_content_type is not None: 10901 _header_params["Content-Type"] = _default_content_type 10902 10903 # authentication setting 10904 _auth_settings: List[str] = [] 10905 10906 return self.api_client.param_serialize( 10907 method="PATCH", 10908 resource_path="/v2/boards/{board_id}", 10909 path_params=_path_params, 10910 query_params=_query_params, 10911 header_params=_header_params, 10912 body=_body_params, 10913 post_params=_form_params, 10914 files=_files, 10915 auth_settings=_auth_settings, 10916 collection_formats=_collection_formats, 10917 _host=_host, 10918 _request_auth=_request_auth, 10919 ) 10920 10921 @validate_call 10922 def create_card_item( 10923 self, 10924 board_id: Annotated[ 10925 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 10926 ], 10927 card_create_request: CardCreateRequest, 10928 _request_timeout: Union[ 10929 None, 10930 Annotated[StrictFloat, Field(gt=0)], 10931 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10932 ] = None, 10933 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10934 _content_type: Optional[StrictStr] = None, 10935 _headers: Optional[Dict[StrictStr, Any]] = None, 10936 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10937 ) -> CardItem: 10938 """Create card item 10939 10940 Adds a card item to a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10941 10942 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 10943 :type board_id: str 10944 :param card_create_request: (required) 10945 :type card_create_request: CardCreateRequest 10946 :param _request_timeout: timeout setting for this request. If one 10947 number provided, it will be total request 10948 timeout. It can also be a pair (tuple) of 10949 (connection, read) timeouts. 10950 :type _request_timeout: int, tuple(int, int), optional 10951 :param _request_auth: set to override the auth_settings for an a single 10952 request; this effectively ignores the 10953 authentication in the spec for a single request. 10954 :type _request_auth: dict, optional 10955 :param _content_type: force content-type for the request. 10956 :type _content_type: str, Optional 10957 :param _headers: set to override the headers for a single 10958 request; this effectively ignores the headers 10959 in the spec for a single request. 10960 :type _headers: dict, optional 10961 :param _host_index: set to override the host_index for a single 10962 request; this effectively ignores the host_index 10963 in the spec for a single request. 10964 :type _host_index: int, optional 10965 :return: Returns the result object. 10966 """ # noqa: E501 10967 10968 _param = self._create_card_item_serialize( 10969 board_id=board_id, 10970 card_create_request=card_create_request, 10971 _request_auth=_request_auth, 10972 _content_type=_content_type, 10973 _headers=_headers, 10974 _host_index=_host_index, 10975 ) 10976 10977 _response_types_map: Dict[str, Optional[str]] = { 10978 "201": "CardItem", 10979 "400": None, 10980 "404": None, 10981 "429": None, 10982 } 10983 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10984 response_data.read() 10985 return self.api_client.response_deserialize( 10986 response_data=response_data, 10987 response_types_map=_response_types_map, 10988 ).data 10989 10990 def _create_card_item_serialize( 10991 self, 10992 board_id, 10993 card_create_request, 10994 _request_auth, 10995 _content_type, 10996 _headers, 10997 _host_index, 10998 ) -> RequestSerialized: 10999 11000 _host = None 11001 11002 _collection_formats: Dict[str, str] = {} 11003 11004 _path_params: Dict[str, str] = {} 11005 _query_params: List[Tuple[str, str]] = [] 11006 _header_params: Dict[str, Optional[str]] = _headers or {} 11007 _form_params: List[Tuple[str, str]] = [] 11008 _files: Dict[str, str] = {} 11009 _body_params: Optional[bytes] = None 11010 11011 # process the path parameters 11012 if board_id is not None: 11013 _path_params["board_id"] = board_id 11014 # process the query parameters 11015 # process the header parameters 11016 # process the form parameters 11017 # process the body parameter 11018 if card_create_request is not None: 11019 _body_params = card_create_request 11020 11021 # set the HTTP header `Accept` 11022 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11023 11024 # set the HTTP header `Content-Type` 11025 if _content_type: 11026 _header_params["Content-Type"] = _content_type 11027 else: 11028 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 11029 if _default_content_type is not None: 11030 _header_params["Content-Type"] = _default_content_type 11031 11032 # authentication setting 11033 _auth_settings: List[str] = [] 11034 11035 return self.api_client.param_serialize( 11036 method="POST", 11037 resource_path="/v2/boards/{board_id}/cards", 11038 path_params=_path_params, 11039 query_params=_query_params, 11040 header_params=_header_params, 11041 body=_body_params, 11042 post_params=_form_params, 11043 files=_files, 11044 auth_settings=_auth_settings, 11045 collection_formats=_collection_formats, 11046 _host=_host, 11047 _request_auth=_request_auth, 11048 ) 11049 11050 @validate_call 11051 def delete_card_item( 11052 self, 11053 board_id: Annotated[ 11054 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 11055 ], 11056 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 11057 _request_timeout: Union[ 11058 None, 11059 Annotated[StrictFloat, Field(gt=0)], 11060 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11061 ] = None, 11062 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11063 _content_type: Optional[StrictStr] = None, 11064 _headers: Optional[Dict[StrictStr, Any]] = None, 11065 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11066 ) -> object: 11067 """Delete card item 11068 11069 Deletes a card item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 11070 11071 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 11072 :type board_id: str 11073 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 11074 :type item_id: str 11075 :param _request_timeout: timeout setting for this request. If one 11076 number provided, it will be total request 11077 timeout. It can also be a pair (tuple) of 11078 (connection, read) timeouts. 11079 :type _request_timeout: int, tuple(int, int), optional 11080 :param _request_auth: set to override the auth_settings for an a single 11081 request; this effectively ignores the 11082 authentication in the spec for a single request. 11083 :type _request_auth: dict, optional 11084 :param _content_type: force content-type for the request. 11085 :type _content_type: str, Optional 11086 :param _headers: set to override the headers for a single 11087 request; this effectively ignores the headers 11088 in the spec for a single request. 11089 :type _headers: dict, optional 11090 :param _host_index: set to override the host_index for a single 11091 request; this effectively ignores the host_index 11092 in the spec for a single request. 11093 :type _host_index: int, optional 11094 :return: Returns the result object. 11095 """ # noqa: E501 11096 11097 _param = self._delete_card_item_serialize( 11098 board_id=board_id, 11099 item_id=item_id, 11100 _request_auth=_request_auth, 11101 _content_type=_content_type, 11102 _headers=_headers, 11103 _host_index=_host_index, 11104 ) 11105 11106 _response_types_map: Dict[str, Optional[str]] = { 11107 "204": "object", 11108 "400": None, 11109 "404": None, 11110 "429": None, 11111 } 11112 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11113 response_data.read() 11114 return self.api_client.response_deserialize( 11115 response_data=response_data, 11116 response_types_map=_response_types_map, 11117 ).data 11118 11119 def _delete_card_item_serialize( 11120 self, 11121 board_id, 11122 item_id, 11123 _request_auth, 11124 _content_type, 11125 _headers, 11126 _host_index, 11127 ) -> RequestSerialized: 11128 11129 _host = None 11130 11131 _collection_formats: Dict[str, str] = {} 11132 11133 _path_params: Dict[str, str] = {} 11134 _query_params: List[Tuple[str, str]] = [] 11135 _header_params: Dict[str, Optional[str]] = _headers or {} 11136 _form_params: List[Tuple[str, str]] = [] 11137 _files: Dict[str, str] = {} 11138 _body_params: Optional[bytes] = None 11139 11140 # process the path parameters 11141 if board_id is not None: 11142 _path_params["board_id"] = board_id 11143 if item_id is not None: 11144 _path_params["item_id"] = item_id 11145 # process the query parameters 11146 # process the header parameters 11147 # process the form parameters 11148 # process the body parameter 11149 11150 # set the HTTP header `Accept` 11151 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11152 11153 # authentication setting 11154 _auth_settings: List[str] = [] 11155 11156 return self.api_client.param_serialize( 11157 method="DELETE", 11158 resource_path="/v2/boards/{board_id}/cards/{item_id}", 11159 path_params=_path_params, 11160 query_params=_query_params, 11161 header_params=_header_params, 11162 body=_body_params, 11163 post_params=_form_params, 11164 files=_files, 11165 auth_settings=_auth_settings, 11166 collection_formats=_collection_formats, 11167 _host=_host, 11168 _request_auth=_request_auth, 11169 ) 11170 11171 @validate_call 11172 def get_card_item( 11173 self, 11174 board_id: Annotated[ 11175 StrictStr, 11176 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 11177 ], 11178 item_id: Annotated[ 11179 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 11180 ], 11181 _request_timeout: Union[ 11182 None, 11183 Annotated[StrictFloat, Field(gt=0)], 11184 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11185 ] = None, 11186 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11187 _content_type: Optional[StrictStr] = None, 11188 _headers: Optional[Dict[StrictStr, Any]] = None, 11189 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11190 ) -> CardItem: 11191 """Get card item 11192 11193 Retrieves information for a specific card item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 11194 11195 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 11196 :type board_id: str 11197 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 11198 :type item_id: str 11199 :param _request_timeout: timeout setting for this request. If one 11200 number provided, it will be total request 11201 timeout. It can also be a pair (tuple) of 11202 (connection, read) timeouts. 11203 :type _request_timeout: int, tuple(int, int), optional 11204 :param _request_auth: set to override the auth_settings for an a single 11205 request; this effectively ignores the 11206 authentication in the spec for a single request. 11207 :type _request_auth: dict, optional 11208 :param _content_type: force content-type for the request. 11209 :type _content_type: str, Optional 11210 :param _headers: set to override the headers for a single 11211 request; this effectively ignores the headers 11212 in the spec for a single request. 11213 :type _headers: dict, optional 11214 :param _host_index: set to override the host_index for a single 11215 request; this effectively ignores the host_index 11216 in the spec for a single request. 11217 :type _host_index: int, optional 11218 :return: Returns the result object. 11219 """ # noqa: E501 11220 11221 _param = self._get_card_item_serialize( 11222 board_id=board_id, 11223 item_id=item_id, 11224 _request_auth=_request_auth, 11225 _content_type=_content_type, 11226 _headers=_headers, 11227 _host_index=_host_index, 11228 ) 11229 11230 _response_types_map: Dict[str, Optional[str]] = { 11231 "200": "CardItem", 11232 "400": None, 11233 "404": None, 11234 "429": None, 11235 } 11236 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11237 response_data.read() 11238 return self.api_client.response_deserialize( 11239 response_data=response_data, 11240 response_types_map=_response_types_map, 11241 ).data 11242 11243 def _get_card_item_serialize( 11244 self, 11245 board_id, 11246 item_id, 11247 _request_auth, 11248 _content_type, 11249 _headers, 11250 _host_index, 11251 ) -> RequestSerialized: 11252 11253 _host = None 11254 11255 _collection_formats: Dict[str, str] = {} 11256 11257 _path_params: Dict[str, str] = {} 11258 _query_params: List[Tuple[str, str]] = [] 11259 _header_params: Dict[str, Optional[str]] = _headers or {} 11260 _form_params: List[Tuple[str, str]] = [] 11261 _files: Dict[str, str] = {} 11262 _body_params: Optional[bytes] = None 11263 11264 # process the path parameters 11265 if board_id is not None: 11266 _path_params["board_id"] = board_id 11267 if item_id is not None: 11268 _path_params["item_id"] = item_id 11269 # process the query parameters 11270 # process the header parameters 11271 # process the form parameters 11272 # process the body parameter 11273 11274 # set the HTTP header `Accept` 11275 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11276 11277 # authentication setting 11278 _auth_settings: List[str] = [] 11279 11280 return self.api_client.param_serialize( 11281 method="GET", 11282 resource_path="/v2/boards/{board_id}/cards/{item_id}", 11283 path_params=_path_params, 11284 query_params=_query_params, 11285 header_params=_header_params, 11286 body=_body_params, 11287 post_params=_form_params, 11288 files=_files, 11289 auth_settings=_auth_settings, 11290 collection_formats=_collection_formats, 11291 _host=_host, 11292 _request_auth=_request_auth, 11293 ) 11294 11295 @validate_call 11296 def update_card_item( 11297 self, 11298 board_id: Annotated[ 11299 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 11300 ], 11301 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 11302 card_update_request: CardUpdateRequest, 11303 _request_timeout: Union[ 11304 None, 11305 Annotated[StrictFloat, Field(gt=0)], 11306 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11307 ] = None, 11308 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11309 _content_type: Optional[StrictStr] = None, 11310 _headers: Optional[Dict[StrictStr, Any]] = None, 11311 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11312 ) -> CardItem: 11313 """Update card item 11314 11315 Updates a card item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11316 11317 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 11318 :type board_id: str 11319 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 11320 :type item_id: str 11321 :param card_update_request: (required) 11322 :type card_update_request: CardUpdateRequest 11323 :param _request_timeout: timeout setting for this request. If one 11324 number provided, it will be total request 11325 timeout. It can also be a pair (tuple) of 11326 (connection, read) timeouts. 11327 :type _request_timeout: int, tuple(int, int), optional 11328 :param _request_auth: set to override the auth_settings for an a single 11329 request; this effectively ignores the 11330 authentication in the spec for a single request. 11331 :type _request_auth: dict, optional 11332 :param _content_type: force content-type for the request. 11333 :type _content_type: str, Optional 11334 :param _headers: set to override the headers for a single 11335 request; this effectively ignores the headers 11336 in the spec for a single request. 11337 :type _headers: dict, optional 11338 :param _host_index: set to override the host_index for a single 11339 request; this effectively ignores the host_index 11340 in the spec for a single request. 11341 :type _host_index: int, optional 11342 :return: Returns the result object. 11343 """ # noqa: E501 11344 11345 _param = self._update_card_item_serialize( 11346 board_id=board_id, 11347 item_id=item_id, 11348 card_update_request=card_update_request, 11349 _request_auth=_request_auth, 11350 _content_type=_content_type, 11351 _headers=_headers, 11352 _host_index=_host_index, 11353 ) 11354 11355 _response_types_map: Dict[str, Optional[str]] = { 11356 "200": "CardItem", 11357 "400": None, 11358 "404": None, 11359 "409": None, 11360 "429": None, 11361 } 11362 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11363 response_data.read() 11364 return self.api_client.response_deserialize( 11365 response_data=response_data, 11366 response_types_map=_response_types_map, 11367 ).data 11368 11369 def _update_card_item_serialize( 11370 self, 11371 board_id, 11372 item_id, 11373 card_update_request, 11374 _request_auth, 11375 _content_type, 11376 _headers, 11377 _host_index, 11378 ) -> RequestSerialized: 11379 11380 _host = None 11381 11382 _collection_formats: Dict[str, str] = {} 11383 11384 _path_params: Dict[str, str] = {} 11385 _query_params: List[Tuple[str, str]] = [] 11386 _header_params: Dict[str, Optional[str]] = _headers or {} 11387 _form_params: List[Tuple[str, str]] = [] 11388 _files: Dict[str, str] = {} 11389 _body_params: Optional[bytes] = None 11390 11391 # process the path parameters 11392 if board_id is not None: 11393 _path_params["board_id"] = board_id 11394 if item_id is not None: 11395 _path_params["item_id"] = item_id 11396 # process the query parameters 11397 # process the header parameters 11398 # process the form parameters 11399 # process the body parameter 11400 if card_update_request is not None: 11401 _body_params = card_update_request 11402 11403 # set the HTTP header `Accept` 11404 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11405 11406 # set the HTTP header `Content-Type` 11407 if _content_type: 11408 _header_params["Content-Type"] = _content_type 11409 else: 11410 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 11411 if _default_content_type is not None: 11412 _header_params["Content-Type"] = _default_content_type 11413 11414 # authentication setting 11415 _auth_settings: List[str] = [] 11416 11417 return self.api_client.param_serialize( 11418 method="PATCH", 11419 resource_path="/v2/boards/{board_id}/cards/{item_id}", 11420 path_params=_path_params, 11421 query_params=_query_params, 11422 header_params=_header_params, 11423 body=_body_params, 11424 post_params=_form_params, 11425 files=_files, 11426 auth_settings=_auth_settings, 11427 collection_formats=_collection_formats, 11428 _host=_host, 11429 _request_auth=_request_auth, 11430 ) 11431 11432 @validate_call 11433 def create_connector( 11434 self, 11435 board_id: Annotated[ 11436 StrictStr, 11437 Field(description="Unique identifier (ID) of the board for which you want to create the connector."), 11438 ], 11439 connector_creation_data: ConnectorCreationData, 11440 _request_timeout: Union[ 11441 None, 11442 Annotated[StrictFloat, Field(gt=0)], 11443 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11444 ] = None, 11445 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11446 _content_type: Optional[StrictStr] = None, 11447 _headers: Optional[Dict[StrictStr, Any]] = None, 11448 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11449 ) -> ConnectorWithLinks: 11450 """Create connector 11451 11452 Adds a connector to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11453 11454 :param board_id: Unique identifier (ID) of the board for which you want to create the connector. (required) 11455 :type board_id: str 11456 :param connector_creation_data: (required) 11457 :type connector_creation_data: ConnectorCreationData 11458 :param _request_timeout: timeout setting for this request. If one 11459 number provided, it will be total request 11460 timeout. It can also be a pair (tuple) of 11461 (connection, read) timeouts. 11462 :type _request_timeout: int, tuple(int, int), optional 11463 :param _request_auth: set to override the auth_settings for an a single 11464 request; this effectively ignores the 11465 authentication in the spec for a single request. 11466 :type _request_auth: dict, optional 11467 :param _content_type: force content-type for the request. 11468 :type _content_type: str, Optional 11469 :param _headers: set to override the headers for a single 11470 request; this effectively ignores the headers 11471 in the spec for a single request. 11472 :type _headers: dict, optional 11473 :param _host_index: set to override the host_index for a single 11474 request; this effectively ignores the host_index 11475 in the spec for a single request. 11476 :type _host_index: int, optional 11477 :return: Returns the result object. 11478 """ # noqa: E501 11479 11480 _param = self._create_connector_serialize( 11481 board_id=board_id, 11482 connector_creation_data=connector_creation_data, 11483 _request_auth=_request_auth, 11484 _content_type=_content_type, 11485 _headers=_headers, 11486 _host_index=_host_index, 11487 ) 11488 11489 _response_types_map: Dict[str, Optional[str]] = { 11490 "200": "ConnectorWithLinks", 11491 "400": None, 11492 "404": None, 11493 "429": None, 11494 } 11495 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11496 response_data.read() 11497 return self.api_client.response_deserialize( 11498 response_data=response_data, 11499 response_types_map=_response_types_map, 11500 ).data 11501 11502 def _create_connector_serialize( 11503 self, 11504 board_id, 11505 connector_creation_data, 11506 _request_auth, 11507 _content_type, 11508 _headers, 11509 _host_index, 11510 ) -> RequestSerialized: 11511 11512 _host = None 11513 11514 _collection_formats: Dict[str, str] = {} 11515 11516 _path_params: Dict[str, str] = {} 11517 _query_params: List[Tuple[str, str]] = [] 11518 _header_params: Dict[str, Optional[str]] = _headers or {} 11519 _form_params: List[Tuple[str, str]] = [] 11520 _files: Dict[str, str] = {} 11521 _body_params: Optional[bytes] = None 11522 11523 # process the path parameters 11524 if board_id is not None: 11525 _path_params["board_id"] = board_id 11526 # process the query parameters 11527 # process the header parameters 11528 # process the form parameters 11529 # process the body parameter 11530 if connector_creation_data is not None: 11531 _body_params = connector_creation_data 11532 11533 # set the HTTP header `Accept` 11534 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11535 11536 # set the HTTP header `Content-Type` 11537 if _content_type: 11538 _header_params["Content-Type"] = _content_type 11539 else: 11540 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 11541 if _default_content_type is not None: 11542 _header_params["Content-Type"] = _default_content_type 11543 11544 # authentication setting 11545 _auth_settings: List[str] = [] 11546 11547 return self.api_client.param_serialize( 11548 method="POST", 11549 resource_path="/v2/boards/{board_id}/connectors", 11550 path_params=_path_params, 11551 query_params=_query_params, 11552 header_params=_header_params, 11553 body=_body_params, 11554 post_params=_form_params, 11555 files=_files, 11556 auth_settings=_auth_settings, 11557 collection_formats=_collection_formats, 11558 _host=_host, 11559 _request_auth=_request_auth, 11560 ) 11561 11562 @validate_call 11563 def delete_connector( 11564 self, 11565 board_id: Annotated[ 11566 StrictStr, 11567 Field(description="Unique identifier (ID) of the board from which you want to delete the connector."), 11568 ], 11569 connector_id: Annotated[ 11570 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to delete.") 11571 ], 11572 _request_timeout: Union[ 11573 None, 11574 Annotated[StrictFloat, Field(gt=0)], 11575 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11576 ] = None, 11577 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11578 _content_type: Optional[StrictStr] = None, 11579 _headers: Optional[Dict[StrictStr, Any]] = None, 11580 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11581 ) -> object: 11582 """Delete connector 11583 11584 Deletes the specified connector from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 11585 11586 :param board_id: Unique identifier (ID) of the board from which you want to delete the connector. (required) 11587 :type board_id: str 11588 :param connector_id: Unique identifier (ID) of the connector that you want to delete. (required) 11589 :type connector_id: str 11590 :param _request_timeout: timeout setting for this request. If one 11591 number provided, it will be total request 11592 timeout. It can also be a pair (tuple) of 11593 (connection, read) timeouts. 11594 :type _request_timeout: int, tuple(int, int), optional 11595 :param _request_auth: set to override the auth_settings for an a single 11596 request; this effectively ignores the 11597 authentication in the spec for a single request. 11598 :type _request_auth: dict, optional 11599 :param _content_type: force content-type for the request. 11600 :type _content_type: str, Optional 11601 :param _headers: set to override the headers for a single 11602 request; this effectively ignores the headers 11603 in the spec for a single request. 11604 :type _headers: dict, optional 11605 :param _host_index: set to override the host_index for a single 11606 request; this effectively ignores the host_index 11607 in the spec for a single request. 11608 :type _host_index: int, optional 11609 :return: Returns the result object. 11610 """ # noqa: E501 11611 11612 _param = self._delete_connector_serialize( 11613 board_id=board_id, 11614 connector_id=connector_id, 11615 _request_auth=_request_auth, 11616 _content_type=_content_type, 11617 _headers=_headers, 11618 _host_index=_host_index, 11619 ) 11620 11621 _response_types_map: Dict[str, Optional[str]] = { 11622 "204": "object", 11623 "400": None, 11624 "404": None, 11625 "429": None, 11626 } 11627 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11628 response_data.read() 11629 return self.api_client.response_deserialize( 11630 response_data=response_data, 11631 response_types_map=_response_types_map, 11632 ).data 11633 11634 def _delete_connector_serialize( 11635 self, 11636 board_id, 11637 connector_id, 11638 _request_auth, 11639 _content_type, 11640 _headers, 11641 _host_index, 11642 ) -> RequestSerialized: 11643 11644 _host = None 11645 11646 _collection_formats: Dict[str, str] = {} 11647 11648 _path_params: Dict[str, str] = {} 11649 _query_params: List[Tuple[str, str]] = [] 11650 _header_params: Dict[str, Optional[str]] = _headers or {} 11651 _form_params: List[Tuple[str, str]] = [] 11652 _files: Dict[str, str] = {} 11653 _body_params: Optional[bytes] = None 11654 11655 # process the path parameters 11656 if board_id is not None: 11657 _path_params["board_id"] = board_id 11658 if connector_id is not None: 11659 _path_params["connector_id"] = connector_id 11660 # process the query parameters 11661 # process the header parameters 11662 # process the form parameters 11663 # process the body parameter 11664 11665 # set the HTTP header `Accept` 11666 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11667 11668 # authentication setting 11669 _auth_settings: List[str] = [] 11670 11671 return self.api_client.param_serialize( 11672 method="DELETE", 11673 resource_path="/v2/boards/{board_id}/connectors/{connector_id}", 11674 path_params=_path_params, 11675 query_params=_query_params, 11676 header_params=_header_params, 11677 body=_body_params, 11678 post_params=_form_params, 11679 files=_files, 11680 auth_settings=_auth_settings, 11681 collection_formats=_collection_formats, 11682 _host=_host, 11683 _request_auth=_request_auth, 11684 ) 11685 11686 @validate_call 11687 def get_connector( 11688 self, 11689 board_id: Annotated[ 11690 StrictStr, 11691 Field( 11692 description="Unique identifier (ID) of the board from which you want to retrieve a specific connector." 11693 ), 11694 ], 11695 connector_id: Annotated[ 11696 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to retrieve.") 11697 ], 11698 _request_timeout: Union[ 11699 None, 11700 Annotated[StrictFloat, Field(gt=0)], 11701 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11702 ] = None, 11703 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11704 _content_type: Optional[StrictStr] = None, 11705 _headers: Optional[Dict[StrictStr, Any]] = None, 11706 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11707 ) -> ConnectorWithLinks: 11708 """Get specific connector 11709 11710 Retrieves information for a specific connector on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 11711 11712 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific connector. (required) 11713 :type board_id: str 11714 :param connector_id: Unique identifier (ID) of the connector that you want to retrieve. (required) 11715 :type connector_id: str 11716 :param _request_timeout: timeout setting for this request. If one 11717 number provided, it will be total request 11718 timeout. It can also be a pair (tuple) of 11719 (connection, read) timeouts. 11720 :type _request_timeout: int, tuple(int, int), optional 11721 :param _request_auth: set to override the auth_settings for an a single 11722 request; this effectively ignores the 11723 authentication in the spec for a single request. 11724 :type _request_auth: dict, optional 11725 :param _content_type: force content-type for the request. 11726 :type _content_type: str, Optional 11727 :param _headers: set to override the headers for a single 11728 request; this effectively ignores the headers 11729 in the spec for a single request. 11730 :type _headers: dict, optional 11731 :param _host_index: set to override the host_index for a single 11732 request; this effectively ignores the host_index 11733 in the spec for a single request. 11734 :type _host_index: int, optional 11735 :return: Returns the result object. 11736 """ # noqa: E501 11737 11738 _param = self._get_connector_serialize( 11739 board_id=board_id, 11740 connector_id=connector_id, 11741 _request_auth=_request_auth, 11742 _content_type=_content_type, 11743 _headers=_headers, 11744 _host_index=_host_index, 11745 ) 11746 11747 _response_types_map: Dict[str, Optional[str]] = { 11748 "200": "ConnectorWithLinks", 11749 "400": None, 11750 "404": None, 11751 "429": None, 11752 } 11753 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11754 response_data.read() 11755 return self.api_client.response_deserialize( 11756 response_data=response_data, 11757 response_types_map=_response_types_map, 11758 ).data 11759 11760 def _get_connector_serialize( 11761 self, 11762 board_id, 11763 connector_id, 11764 _request_auth, 11765 _content_type, 11766 _headers, 11767 _host_index, 11768 ) -> RequestSerialized: 11769 11770 _host = None 11771 11772 _collection_formats: Dict[str, str] = {} 11773 11774 _path_params: Dict[str, str] = {} 11775 _query_params: List[Tuple[str, str]] = [] 11776 _header_params: Dict[str, Optional[str]] = _headers or {} 11777 _form_params: List[Tuple[str, str]] = [] 11778 _files: Dict[str, str] = {} 11779 _body_params: Optional[bytes] = None 11780 11781 # process the path parameters 11782 if board_id is not None: 11783 _path_params["board_id"] = board_id 11784 if connector_id is not None: 11785 _path_params["connector_id"] = connector_id 11786 # process the query parameters 11787 # process the header parameters 11788 # process the form parameters 11789 # process the body parameter 11790 11791 # set the HTTP header `Accept` 11792 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11793 11794 # authentication setting 11795 _auth_settings: List[str] = [] 11796 11797 return self.api_client.param_serialize( 11798 method="GET", 11799 resource_path="/v2/boards/{board_id}/connectors/{connector_id}", 11800 path_params=_path_params, 11801 query_params=_query_params, 11802 header_params=_header_params, 11803 body=_body_params, 11804 post_params=_form_params, 11805 files=_files, 11806 auth_settings=_auth_settings, 11807 collection_formats=_collection_formats, 11808 _host=_host, 11809 _request_auth=_request_auth, 11810 ) 11811 11812 @validate_call 11813 def get_connectors( 11814 self, 11815 board_id: Annotated[ 11816 StrictStr, 11817 Field( 11818 description="Unique identifier (ID) of the board from which you want to retrieve a list of connectors." 11819 ), 11820 ], 11821 limit: Optional[Annotated[str, Field(strict=True)]] = None, 11822 cursor: Optional[StrictStr] = None, 11823 _request_timeout: Union[ 11824 None, 11825 Annotated[StrictFloat, Field(gt=0)], 11826 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11827 ] = None, 11828 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11829 _content_type: Optional[StrictStr] = None, 11830 _headers: Optional[Dict[StrictStr, Any]] = None, 11831 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11832 ) -> ConnectorsCursorPaged: 11833 """Get connectors 11834 11835 Retrieves a list of connectors for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11836 11837 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a list of connectors. (required) 11838 :type board_id: str 11839 :param limit: 11840 :type limit: str 11841 :param cursor: 11842 :type cursor: str 11843 :param _request_timeout: timeout setting for this request. If one 11844 number provided, it will be total request 11845 timeout. It can also be a pair (tuple) of 11846 (connection, read) timeouts. 11847 :type _request_timeout: int, tuple(int, int), optional 11848 :param _request_auth: set to override the auth_settings for an a single 11849 request; this effectively ignores the 11850 authentication in the spec for a single request. 11851 :type _request_auth: dict, optional 11852 :param _content_type: force content-type for the request. 11853 :type _content_type: str, Optional 11854 :param _headers: set to override the headers for a single 11855 request; this effectively ignores the headers 11856 in the spec for a single request. 11857 :type _headers: dict, optional 11858 :param _host_index: set to override the host_index for a single 11859 request; this effectively ignores the host_index 11860 in the spec for a single request. 11861 :type _host_index: int, optional 11862 :return: Returns the result object. 11863 """ # noqa: E501 11864 11865 _param = self._get_connectors_serialize( 11866 board_id=board_id, 11867 limit=limit, 11868 cursor=cursor, 11869 _request_auth=_request_auth, 11870 _content_type=_content_type, 11871 _headers=_headers, 11872 _host_index=_host_index, 11873 ) 11874 11875 _response_types_map: Dict[str, Optional[str]] = { 11876 "200": "ConnectorsCursorPaged", 11877 "400": None, 11878 "404": None, 11879 "429": None, 11880 } 11881 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11882 response_data.read() 11883 return self.api_client.response_deserialize( 11884 response_data=response_data, 11885 response_types_map=_response_types_map, 11886 ).data 11887 11888 def _get_connectors_serialize( 11889 self, 11890 board_id, 11891 limit, 11892 cursor, 11893 _request_auth, 11894 _content_type, 11895 _headers, 11896 _host_index, 11897 ) -> RequestSerialized: 11898 11899 _host = None 11900 11901 _collection_formats: Dict[str, str] = {} 11902 11903 _path_params: Dict[str, str] = {} 11904 _query_params: List[Tuple[str, str]] = [] 11905 _header_params: Dict[str, Optional[str]] = _headers or {} 11906 _form_params: List[Tuple[str, str]] = [] 11907 _files: Dict[str, str] = {} 11908 _body_params: Optional[bytes] = None 11909 11910 # process the path parameters 11911 if board_id is not None: 11912 _path_params["board_id"] = board_id 11913 # process the query parameters 11914 if limit is not None: 11915 11916 _query_params.append(("limit", limit)) 11917 11918 if cursor is not None: 11919 11920 _query_params.append(("cursor", cursor)) 11921 11922 # process the header parameters 11923 # process the form parameters 11924 # process the body parameter 11925 11926 # set the HTTP header `Accept` 11927 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 11928 11929 # authentication setting 11930 _auth_settings: List[str] = [] 11931 11932 return self.api_client.param_serialize( 11933 method="GET", 11934 resource_path="/v2/boards/{board_id}/connectors", 11935 path_params=_path_params, 11936 query_params=_query_params, 11937 header_params=_header_params, 11938 body=_body_params, 11939 post_params=_form_params, 11940 files=_files, 11941 auth_settings=_auth_settings, 11942 collection_formats=_collection_formats, 11943 _host=_host, 11944 _request_auth=_request_auth, 11945 ) 11946 11947 @validate_call 11948 def update_connector( 11949 self, 11950 board_id: Annotated[ 11951 StrictStr, 11952 Field(description="Unique identifier (ID) of the board for which you want to update the connector."), 11953 ], 11954 connector_id: Annotated[ 11955 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to update.") 11956 ], 11957 connector_changes_data: ConnectorChangesData, 11958 _request_timeout: Union[ 11959 None, 11960 Annotated[StrictFloat, Field(gt=0)], 11961 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11962 ] = None, 11963 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11964 _content_type: Optional[StrictStr] = None, 11965 _headers: Optional[Dict[StrictStr, Any]] = None, 11966 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11967 ) -> ConnectorWithLinks: 11968 """Update connector 11969 11970 Updates a connector on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11971 11972 :param board_id: Unique identifier (ID) of the board for which you want to update the connector. (required) 11973 :type board_id: str 11974 :param connector_id: Unique identifier (ID) of the connector that you want to update. (required) 11975 :type connector_id: str 11976 :param connector_changes_data: (required) 11977 :type connector_changes_data: ConnectorChangesData 11978 :param _request_timeout: timeout setting for this request. If one 11979 number provided, it will be total request 11980 timeout. It can also be a pair (tuple) of 11981 (connection, read) timeouts. 11982 :type _request_timeout: int, tuple(int, int), optional 11983 :param _request_auth: set to override the auth_settings for an a single 11984 request; this effectively ignores the 11985 authentication in the spec for a single request. 11986 :type _request_auth: dict, optional 11987 :param _content_type: force content-type for the request. 11988 :type _content_type: str, Optional 11989 :param _headers: set to override the headers for a single 11990 request; this effectively ignores the headers 11991 in the spec for a single request. 11992 :type _headers: dict, optional 11993 :param _host_index: set to override the host_index for a single 11994 request; this effectively ignores the host_index 11995 in the spec for a single request. 11996 :type _host_index: int, optional 11997 :return: Returns the result object. 11998 """ # noqa: E501 11999 12000 _param = self._update_connector_serialize( 12001 board_id=board_id, 12002 connector_id=connector_id, 12003 connector_changes_data=connector_changes_data, 12004 _request_auth=_request_auth, 12005 _content_type=_content_type, 12006 _headers=_headers, 12007 _host_index=_host_index, 12008 ) 12009 12010 _response_types_map: Dict[str, Optional[str]] = { 12011 "200": "ConnectorWithLinks", 12012 "400": None, 12013 "404": None, 12014 "409": None, 12015 "429": None, 12016 } 12017 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12018 response_data.read() 12019 return self.api_client.response_deserialize( 12020 response_data=response_data, 12021 response_types_map=_response_types_map, 12022 ).data 12023 12024 def _update_connector_serialize( 12025 self, 12026 board_id, 12027 connector_id, 12028 connector_changes_data, 12029 _request_auth, 12030 _content_type, 12031 _headers, 12032 _host_index, 12033 ) -> RequestSerialized: 12034 12035 _host = None 12036 12037 _collection_formats: Dict[str, str] = {} 12038 12039 _path_params: Dict[str, str] = {} 12040 _query_params: List[Tuple[str, str]] = [] 12041 _header_params: Dict[str, Optional[str]] = _headers or {} 12042 _form_params: List[Tuple[str, str]] = [] 12043 _files: Dict[str, str] = {} 12044 _body_params: Optional[bytes] = None 12045 12046 # process the path parameters 12047 if board_id is not None: 12048 _path_params["board_id"] = board_id 12049 if connector_id is not None: 12050 _path_params["connector_id"] = connector_id 12051 # process the query parameters 12052 # process the header parameters 12053 # process the form parameters 12054 # process the body parameter 12055 if connector_changes_data is not None: 12056 _body_params = connector_changes_data 12057 12058 # set the HTTP header `Accept` 12059 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12060 12061 # set the HTTP header `Content-Type` 12062 if _content_type: 12063 _header_params["Content-Type"] = _content_type 12064 else: 12065 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12066 if _default_content_type is not None: 12067 _header_params["Content-Type"] = _default_content_type 12068 12069 # authentication setting 12070 _auth_settings: List[str] = [] 12071 12072 return self.api_client.param_serialize( 12073 method="PATCH", 12074 resource_path="/v2/boards/{board_id}/connectors/{connector_id}", 12075 path_params=_path_params, 12076 query_params=_query_params, 12077 header_params=_header_params, 12078 body=_body_params, 12079 post_params=_form_params, 12080 files=_files, 12081 auth_settings=_auth_settings, 12082 collection_formats=_collection_formats, 12083 _host=_host, 12084 _request_auth=_request_auth, 12085 ) 12086 12087 @validate_call 12088 def create_document_item_using_file_from_device( 12089 self, 12090 board_id_platform_file_upload: Annotated[ 12091 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12092 ], 12093 resource: Annotated[ 12094 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 12095 ], 12096 data: Optional[CreateDocumentItemUsingFileFromDeviceRequestData] = None, 12097 _request_timeout: Union[ 12098 None, 12099 Annotated[StrictFloat, Field(gt=0)], 12100 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12101 ] = None, 12102 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12103 _content_type: Optional[StrictStr] = None, 12104 _headers: Optional[Dict[StrictStr, Any]] = None, 12105 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12106 ) -> DocumentItem: 12107 """Create document item using file from device 12108 12109 Adds a document item to a board by selecting file from device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12110 12111 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) 12112 :type board_id_platform_file_upload: str 12113 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 12114 :type resource: bytearray 12115 :param data: 12116 :type data: CreateDocumentItemUsingFileFromDeviceRequestData 12117 :param _request_timeout: timeout setting for this request. If one 12118 number provided, it will be total request 12119 timeout. It can also be a pair (tuple) of 12120 (connection, read) timeouts. 12121 :type _request_timeout: int, tuple(int, int), optional 12122 :param _request_auth: set to override the auth_settings for an a single 12123 request; this effectively ignores the 12124 authentication in the spec for a single request. 12125 :type _request_auth: dict, optional 12126 :param _content_type: force content-type for the request. 12127 :type _content_type: str, Optional 12128 :param _headers: set to override the headers for a single 12129 request; this effectively ignores the headers 12130 in the spec for a single request. 12131 :type _headers: dict, optional 12132 :param _host_index: set to override the host_index for a single 12133 request; this effectively ignores the host_index 12134 in the spec for a single request. 12135 :type _host_index: int, optional 12136 :return: Returns the result object. 12137 """ # noqa: E501 12138 12139 _param = self._create_document_item_using_file_from_device_serialize( 12140 board_id_platform_file_upload=board_id_platform_file_upload, 12141 resource=resource, 12142 data=data, 12143 _request_auth=_request_auth, 12144 _content_type=_content_type, 12145 _headers=_headers, 12146 _host_index=_host_index, 12147 ) 12148 12149 _response_types_map: Dict[str, Optional[str]] = { 12150 "201": "DocumentItem", 12151 } 12152 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12153 response_data.read() 12154 return self.api_client.response_deserialize( 12155 response_data=response_data, 12156 response_types_map=_response_types_map, 12157 ).data 12158 12159 def _create_document_item_using_file_from_device_serialize( 12160 self, 12161 board_id_platform_file_upload, 12162 resource, 12163 data, 12164 _request_auth, 12165 _content_type, 12166 _headers, 12167 _host_index, 12168 ) -> RequestSerialized: 12169 12170 _host = None 12171 12172 _collection_formats: Dict[str, str] = {} 12173 12174 _path_params: Dict[str, str] = {} 12175 _query_params: List[Tuple[str, str]] = [] 12176 _header_params: Dict[str, Optional[str]] = _headers or {} 12177 _form_params: List[Tuple[str, str]] = [] 12178 _files: Dict[str, str] = {} 12179 _body_params: Optional[bytes] = None 12180 12181 # process the path parameters 12182 if board_id_platform_file_upload is not None: 12183 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 12184 # process the query parameters 12185 # process the header parameters 12186 # process the form parameters 12187 if data is not None: 12188 _form_params.append(("data", data)) 12189 if resource is not None: 12190 _files["resource"] = resource 12191 # process the body parameter 12192 12193 # set the HTTP header `Accept` 12194 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12195 12196 # set the HTTP header `Content-Type` 12197 if _content_type: 12198 _header_params["Content-Type"] = _content_type 12199 else: 12200 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 12201 if _default_content_type is not None: 12202 _header_params["Content-Type"] = _default_content_type 12203 12204 # authentication setting 12205 _auth_settings: List[str] = [] 12206 12207 return self.api_client.param_serialize( 12208 method="POST", 12209 resource_path="/v2/boards/{board_id_PlatformFileUpload}/documents", 12210 path_params=_path_params, 12211 query_params=_query_params, 12212 header_params=_header_params, 12213 body=_body_params, 12214 post_params=_form_params, 12215 files=_files, 12216 auth_settings=_auth_settings, 12217 collection_formats=_collection_formats, 12218 _host=_host, 12219 _request_auth=_request_auth, 12220 ) 12221 12222 @validate_call 12223 def create_document_item_using_url( 12224 self, 12225 board_id: Annotated[ 12226 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12227 ], 12228 document_create_request: DocumentCreateRequest, 12229 _request_timeout: Union[ 12230 None, 12231 Annotated[StrictFloat, Field(gt=0)], 12232 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12233 ] = None, 12234 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12235 _content_type: Optional[StrictStr] = None, 12236 _headers: Optional[Dict[StrictStr, Any]] = None, 12237 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12238 ) -> DocumentItem: 12239 """Create document item using URL 12240 12241 Adds a document item to a board by specifying the URL where the document is hosted.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12242 12243 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 12244 :type board_id: str 12245 :param document_create_request: (required) 12246 :type document_create_request: DocumentCreateRequest 12247 :param _request_timeout: timeout setting for this request. If one 12248 number provided, it will be total request 12249 timeout. It can also be a pair (tuple) of 12250 (connection, read) timeouts. 12251 :type _request_timeout: int, tuple(int, int), optional 12252 :param _request_auth: set to override the auth_settings for an a single 12253 request; this effectively ignores the 12254 authentication in the spec for a single request. 12255 :type _request_auth: dict, optional 12256 :param _content_type: force content-type for the request. 12257 :type _content_type: str, Optional 12258 :param _headers: set to override the headers for a single 12259 request; this effectively ignores the headers 12260 in the spec for a single request. 12261 :type _headers: dict, optional 12262 :param _host_index: set to override the host_index for a single 12263 request; this effectively ignores the host_index 12264 in the spec for a single request. 12265 :type _host_index: int, optional 12266 :return: Returns the result object. 12267 """ # noqa: E501 12268 12269 _param = self._create_document_item_using_url_serialize( 12270 board_id=board_id, 12271 document_create_request=document_create_request, 12272 _request_auth=_request_auth, 12273 _content_type=_content_type, 12274 _headers=_headers, 12275 _host_index=_host_index, 12276 ) 12277 12278 _response_types_map: Dict[str, Optional[str]] = { 12279 "201": "DocumentItem", 12280 "400": None, 12281 "404": None, 12282 "429": None, 12283 } 12284 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12285 response_data.read() 12286 return self.api_client.response_deserialize( 12287 response_data=response_data, 12288 response_types_map=_response_types_map, 12289 ).data 12290 12291 def _create_document_item_using_url_serialize( 12292 self, 12293 board_id, 12294 document_create_request, 12295 _request_auth, 12296 _content_type, 12297 _headers, 12298 _host_index, 12299 ) -> RequestSerialized: 12300 12301 _host = None 12302 12303 _collection_formats: Dict[str, str] = {} 12304 12305 _path_params: Dict[str, str] = {} 12306 _query_params: List[Tuple[str, str]] = [] 12307 _header_params: Dict[str, Optional[str]] = _headers or {} 12308 _form_params: List[Tuple[str, str]] = [] 12309 _files: Dict[str, str] = {} 12310 _body_params: Optional[bytes] = None 12311 12312 # process the path parameters 12313 if board_id is not None: 12314 _path_params["board_id"] = board_id 12315 # process the query parameters 12316 # process the header parameters 12317 # process the form parameters 12318 # process the body parameter 12319 if document_create_request is not None: 12320 _body_params = document_create_request 12321 12322 # set the HTTP header `Accept` 12323 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12324 12325 # set the HTTP header `Content-Type` 12326 if _content_type: 12327 _header_params["Content-Type"] = _content_type 12328 else: 12329 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12330 if _default_content_type is not None: 12331 _header_params["Content-Type"] = _default_content_type 12332 12333 # authentication setting 12334 _auth_settings: List[str] = [] 12335 12336 return self.api_client.param_serialize( 12337 method="POST", 12338 resource_path="/v2/boards/{board_id}/documents", 12339 path_params=_path_params, 12340 query_params=_query_params, 12341 header_params=_header_params, 12342 body=_body_params, 12343 post_params=_form_params, 12344 files=_files, 12345 auth_settings=_auth_settings, 12346 collection_formats=_collection_formats, 12347 _host=_host, 12348 _request_auth=_request_auth, 12349 ) 12350 12351 @validate_call 12352 def delete_document_item( 12353 self, 12354 board_id: Annotated[ 12355 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 12356 ], 12357 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 12358 _request_timeout: Union[ 12359 None, 12360 Annotated[StrictFloat, Field(gt=0)], 12361 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12362 ] = None, 12363 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12364 _content_type: Optional[StrictStr] = None, 12365 _headers: Optional[Dict[StrictStr, Any]] = None, 12366 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12367 ) -> object: 12368 """Delete document item 12369 12370 Deletes a document item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 12371 12372 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 12373 :type board_id: str 12374 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 12375 :type item_id: str 12376 :param _request_timeout: timeout setting for this request. If one 12377 number provided, it will be total request 12378 timeout. It can also be a pair (tuple) of 12379 (connection, read) timeouts. 12380 :type _request_timeout: int, tuple(int, int), optional 12381 :param _request_auth: set to override the auth_settings for an a single 12382 request; this effectively ignores the 12383 authentication in the spec for a single request. 12384 :type _request_auth: dict, optional 12385 :param _content_type: force content-type for the request. 12386 :type _content_type: str, Optional 12387 :param _headers: set to override the headers for a single 12388 request; this effectively ignores the headers 12389 in the spec for a single request. 12390 :type _headers: dict, optional 12391 :param _host_index: set to override the host_index for a single 12392 request; this effectively ignores the host_index 12393 in the spec for a single request. 12394 :type _host_index: int, optional 12395 :return: Returns the result object. 12396 """ # noqa: E501 12397 12398 _param = self._delete_document_item_serialize( 12399 board_id=board_id, 12400 item_id=item_id, 12401 _request_auth=_request_auth, 12402 _content_type=_content_type, 12403 _headers=_headers, 12404 _host_index=_host_index, 12405 ) 12406 12407 _response_types_map: Dict[str, Optional[str]] = { 12408 "204": "object", 12409 "400": None, 12410 "404": None, 12411 "429": None, 12412 } 12413 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12414 response_data.read() 12415 return self.api_client.response_deserialize( 12416 response_data=response_data, 12417 response_types_map=_response_types_map, 12418 ).data 12419 12420 def _delete_document_item_serialize( 12421 self, 12422 board_id, 12423 item_id, 12424 _request_auth, 12425 _content_type, 12426 _headers, 12427 _host_index, 12428 ) -> RequestSerialized: 12429 12430 _host = None 12431 12432 _collection_formats: Dict[str, str] = {} 12433 12434 _path_params: Dict[str, str] = {} 12435 _query_params: List[Tuple[str, str]] = [] 12436 _header_params: Dict[str, Optional[str]] = _headers or {} 12437 _form_params: List[Tuple[str, str]] = [] 12438 _files: Dict[str, str] = {} 12439 _body_params: Optional[bytes] = None 12440 12441 # process the path parameters 12442 if board_id is not None: 12443 _path_params["board_id"] = board_id 12444 if item_id is not None: 12445 _path_params["item_id"] = item_id 12446 # process the query parameters 12447 # process the header parameters 12448 # process the form parameters 12449 # process the body parameter 12450 12451 # set the HTTP header `Accept` 12452 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12453 12454 # authentication setting 12455 _auth_settings: List[str] = [] 12456 12457 return self.api_client.param_serialize( 12458 method="DELETE", 12459 resource_path="/v2/boards/{board_id}/documents/{item_id}", 12460 path_params=_path_params, 12461 query_params=_query_params, 12462 header_params=_header_params, 12463 body=_body_params, 12464 post_params=_form_params, 12465 files=_files, 12466 auth_settings=_auth_settings, 12467 collection_formats=_collection_formats, 12468 _host=_host, 12469 _request_auth=_request_auth, 12470 ) 12471 12472 @validate_call 12473 def get_document_item( 12474 self, 12475 board_id: Annotated[ 12476 StrictStr, 12477 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 12478 ], 12479 item_id: Annotated[ 12480 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 12481 ], 12482 _request_timeout: Union[ 12483 None, 12484 Annotated[StrictFloat, Field(gt=0)], 12485 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12486 ] = None, 12487 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12488 _content_type: Optional[StrictStr] = None, 12489 _headers: Optional[Dict[StrictStr, Any]] = None, 12490 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12491 ) -> DocumentItem: 12492 """Get document item 12493 12494 Retrieves information for a specific document item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 12495 12496 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 12497 :type board_id: str 12498 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 12499 :type item_id: str 12500 :param _request_timeout: timeout setting for this request. If one 12501 number provided, it will be total request 12502 timeout. It can also be a pair (tuple) of 12503 (connection, read) timeouts. 12504 :type _request_timeout: int, tuple(int, int), optional 12505 :param _request_auth: set to override the auth_settings for an a single 12506 request; this effectively ignores the 12507 authentication in the spec for a single request. 12508 :type _request_auth: dict, optional 12509 :param _content_type: force content-type for the request. 12510 :type _content_type: str, Optional 12511 :param _headers: set to override the headers for a single 12512 request; this effectively ignores the headers 12513 in the spec for a single request. 12514 :type _headers: dict, optional 12515 :param _host_index: set to override the host_index for a single 12516 request; this effectively ignores the host_index 12517 in the spec for a single request. 12518 :type _host_index: int, optional 12519 :return: Returns the result object. 12520 """ # noqa: E501 12521 12522 _param = self._get_document_item_serialize( 12523 board_id=board_id, 12524 item_id=item_id, 12525 _request_auth=_request_auth, 12526 _content_type=_content_type, 12527 _headers=_headers, 12528 _host_index=_host_index, 12529 ) 12530 12531 _response_types_map: Dict[str, Optional[str]] = { 12532 "200": "DocumentItem", 12533 "400": None, 12534 "404": None, 12535 "429": None, 12536 } 12537 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12538 response_data.read() 12539 return self.api_client.response_deserialize( 12540 response_data=response_data, 12541 response_types_map=_response_types_map, 12542 ).data 12543 12544 def _get_document_item_serialize( 12545 self, 12546 board_id, 12547 item_id, 12548 _request_auth, 12549 _content_type, 12550 _headers, 12551 _host_index, 12552 ) -> RequestSerialized: 12553 12554 _host = None 12555 12556 _collection_formats: Dict[str, str] = {} 12557 12558 _path_params: Dict[str, str] = {} 12559 _query_params: List[Tuple[str, str]] = [] 12560 _header_params: Dict[str, Optional[str]] = _headers or {} 12561 _form_params: List[Tuple[str, str]] = [] 12562 _files: Dict[str, str] = {} 12563 _body_params: Optional[bytes] = None 12564 12565 # process the path parameters 12566 if board_id is not None: 12567 _path_params["board_id"] = board_id 12568 if item_id is not None: 12569 _path_params["item_id"] = item_id 12570 # process the query parameters 12571 # process the header parameters 12572 # process the form parameters 12573 # process the body parameter 12574 12575 # set the HTTP header `Accept` 12576 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12577 12578 # authentication setting 12579 _auth_settings: List[str] = [] 12580 12581 return self.api_client.param_serialize( 12582 method="GET", 12583 resource_path="/v2/boards/{board_id}/documents/{item_id}", 12584 path_params=_path_params, 12585 query_params=_query_params, 12586 header_params=_header_params, 12587 body=_body_params, 12588 post_params=_form_params, 12589 files=_files, 12590 auth_settings=_auth_settings, 12591 collection_formats=_collection_formats, 12592 _host=_host, 12593 _request_auth=_request_auth, 12594 ) 12595 12596 @validate_call 12597 def update_document_item_using_file_from_device( 12598 self, 12599 board_id_platform_file_upload: Annotated[ 12600 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 12601 ], 12602 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 12603 resource: Annotated[ 12604 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 12605 ], 12606 data: Optional[UploadFileFromDeviceData] = None, 12607 _request_timeout: Union[ 12608 None, 12609 Annotated[StrictFloat, Field(gt=0)], 12610 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12611 ] = None, 12612 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12613 _content_type: Optional[StrictStr] = None, 12614 _headers: Optional[Dict[StrictStr, Any]] = None, 12615 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12616 ) -> DocumentItem: 12617 """Update document item using file from device 12618 12619 Updates a document item on a board by using file from a device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12620 12621 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) 12622 :type board_id_platform_file_upload: str 12623 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 12624 :type item_id: str 12625 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 12626 :type resource: bytearray 12627 :param data: 12628 :type data: UploadFileFromDeviceData 12629 :param _request_timeout: timeout setting for this request. If one 12630 number provided, it will be total request 12631 timeout. It can also be a pair (tuple) of 12632 (connection, read) timeouts. 12633 :type _request_timeout: int, tuple(int, int), optional 12634 :param _request_auth: set to override the auth_settings for an a single 12635 request; this effectively ignores the 12636 authentication in the spec for a single request. 12637 :type _request_auth: dict, optional 12638 :param _content_type: force content-type for the request. 12639 :type _content_type: str, Optional 12640 :param _headers: set to override the headers for a single 12641 request; this effectively ignores the headers 12642 in the spec for a single request. 12643 :type _headers: dict, optional 12644 :param _host_index: set to override the host_index for a single 12645 request; this effectively ignores the host_index 12646 in the spec for a single request. 12647 :type _host_index: int, optional 12648 :return: Returns the result object. 12649 """ # noqa: E501 12650 12651 _param = self._update_document_item_using_file_from_device_serialize( 12652 board_id_platform_file_upload=board_id_platform_file_upload, 12653 item_id=item_id, 12654 resource=resource, 12655 data=data, 12656 _request_auth=_request_auth, 12657 _content_type=_content_type, 12658 _headers=_headers, 12659 _host_index=_host_index, 12660 ) 12661 12662 _response_types_map: Dict[str, Optional[str]] = { 12663 "200": "DocumentItem", 12664 } 12665 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12666 response_data.read() 12667 return self.api_client.response_deserialize( 12668 response_data=response_data, 12669 response_types_map=_response_types_map, 12670 ).data 12671 12672 def _update_document_item_using_file_from_device_serialize( 12673 self, 12674 board_id_platform_file_upload, 12675 item_id, 12676 resource, 12677 data, 12678 _request_auth, 12679 _content_type, 12680 _headers, 12681 _host_index, 12682 ) -> RequestSerialized: 12683 12684 _host = None 12685 12686 _collection_formats: Dict[str, str] = {} 12687 12688 _path_params: Dict[str, str] = {} 12689 _query_params: List[Tuple[str, str]] = [] 12690 _header_params: Dict[str, Optional[str]] = _headers or {} 12691 _form_params: List[Tuple[str, str]] = [] 12692 _files: Dict[str, str] = {} 12693 _body_params: Optional[bytes] = None 12694 12695 # process the path parameters 12696 if board_id_platform_file_upload is not None: 12697 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 12698 if item_id is not None: 12699 _path_params["item_id"] = item_id 12700 # process the query parameters 12701 # process the header parameters 12702 # process the form parameters 12703 if data is not None: 12704 _form_params.append(("data", data)) 12705 if resource is not None: 12706 _files["resource"] = resource 12707 # process the body parameter 12708 12709 # set the HTTP header `Accept` 12710 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12711 12712 # set the HTTP header `Content-Type` 12713 if _content_type: 12714 _header_params["Content-Type"] = _content_type 12715 else: 12716 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 12717 if _default_content_type is not None: 12718 _header_params["Content-Type"] = _default_content_type 12719 12720 # authentication setting 12721 _auth_settings: List[str] = [] 12722 12723 return self.api_client.param_serialize( 12724 method="PATCH", 12725 resource_path="/v2/boards/{board_id_PlatformFileUpload}/documents/{item_id}", 12726 path_params=_path_params, 12727 query_params=_query_params, 12728 header_params=_header_params, 12729 body=_body_params, 12730 post_params=_form_params, 12731 files=_files, 12732 auth_settings=_auth_settings, 12733 collection_formats=_collection_formats, 12734 _host=_host, 12735 _request_auth=_request_auth, 12736 ) 12737 12738 @validate_call 12739 def update_document_item_using_url( 12740 self, 12741 board_id: Annotated[ 12742 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 12743 ], 12744 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 12745 document_update_request: DocumentUpdateRequest, 12746 _request_timeout: Union[ 12747 None, 12748 Annotated[StrictFloat, Field(gt=0)], 12749 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12750 ] = None, 12751 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12752 _content_type: Optional[StrictStr] = None, 12753 _headers: Optional[Dict[StrictStr, Any]] = None, 12754 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12755 ) -> DocumentItem: 12756 """Update document item using URL 12757 12758 Updates a document item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12759 12760 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 12761 :type board_id: str 12762 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 12763 :type item_id: str 12764 :param document_update_request: (required) 12765 :type document_update_request: DocumentUpdateRequest 12766 :param _request_timeout: timeout setting for this request. If one 12767 number provided, it will be total request 12768 timeout. It can also be a pair (tuple) of 12769 (connection, read) timeouts. 12770 :type _request_timeout: int, tuple(int, int), optional 12771 :param _request_auth: set to override the auth_settings for an a single 12772 request; this effectively ignores the 12773 authentication in the spec for a single request. 12774 :type _request_auth: dict, optional 12775 :param _content_type: force content-type for the request. 12776 :type _content_type: str, Optional 12777 :param _headers: set to override the headers for a single 12778 request; this effectively ignores the headers 12779 in the spec for a single request. 12780 :type _headers: dict, optional 12781 :param _host_index: set to override the host_index for a single 12782 request; this effectively ignores the host_index 12783 in the spec for a single request. 12784 :type _host_index: int, optional 12785 :return: Returns the result object. 12786 """ # noqa: E501 12787 12788 _param = self._update_document_item_using_url_serialize( 12789 board_id=board_id, 12790 item_id=item_id, 12791 document_update_request=document_update_request, 12792 _request_auth=_request_auth, 12793 _content_type=_content_type, 12794 _headers=_headers, 12795 _host_index=_host_index, 12796 ) 12797 12798 _response_types_map: Dict[str, Optional[str]] = { 12799 "200": "DocumentItem", 12800 "400": None, 12801 "404": None, 12802 "409": None, 12803 "429": None, 12804 } 12805 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12806 response_data.read() 12807 return self.api_client.response_deserialize( 12808 response_data=response_data, 12809 response_types_map=_response_types_map, 12810 ).data 12811 12812 def _update_document_item_using_url_serialize( 12813 self, 12814 board_id, 12815 item_id, 12816 document_update_request, 12817 _request_auth, 12818 _content_type, 12819 _headers, 12820 _host_index, 12821 ) -> RequestSerialized: 12822 12823 _host = None 12824 12825 _collection_formats: Dict[str, str] = {} 12826 12827 _path_params: Dict[str, str] = {} 12828 _query_params: List[Tuple[str, str]] = [] 12829 _header_params: Dict[str, Optional[str]] = _headers or {} 12830 _form_params: List[Tuple[str, str]] = [] 12831 _files: Dict[str, str] = {} 12832 _body_params: Optional[bytes] = None 12833 12834 # process the path parameters 12835 if board_id is not None: 12836 _path_params["board_id"] = board_id 12837 if item_id is not None: 12838 _path_params["item_id"] = item_id 12839 # process the query parameters 12840 # process the header parameters 12841 # process the form parameters 12842 # process the body parameter 12843 if document_update_request is not None: 12844 _body_params = document_update_request 12845 12846 # set the HTTP header `Accept` 12847 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12848 12849 # set the HTTP header `Content-Type` 12850 if _content_type: 12851 _header_params["Content-Type"] = _content_type 12852 else: 12853 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12854 if _default_content_type is not None: 12855 _header_params["Content-Type"] = _default_content_type 12856 12857 # authentication setting 12858 _auth_settings: List[str] = [] 12859 12860 return self.api_client.param_serialize( 12861 method="PATCH", 12862 resource_path="/v2/boards/{board_id}/documents/{item_id}", 12863 path_params=_path_params, 12864 query_params=_query_params, 12865 header_params=_header_params, 12866 body=_body_params, 12867 post_params=_form_params, 12868 files=_files, 12869 auth_settings=_auth_settings, 12870 collection_formats=_collection_formats, 12871 _host=_host, 12872 _request_auth=_request_auth, 12873 ) 12874 12875 @validate_call 12876 def create_embed_item( 12877 self, 12878 board_id: Annotated[ 12879 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12880 ], 12881 embed_create_request: EmbedCreateRequest, 12882 _request_timeout: Union[ 12883 None, 12884 Annotated[StrictFloat, Field(gt=0)], 12885 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12886 ] = None, 12887 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12888 _content_type: Optional[StrictStr] = None, 12889 _headers: Optional[Dict[StrictStr, Any]] = None, 12890 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12891 ) -> EmbedItem: 12892 """Create embed item 12893 12894 Adds an embed item containing external content to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12895 12896 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 12897 :type board_id: str 12898 :param embed_create_request: (required) 12899 :type embed_create_request: EmbedCreateRequest 12900 :param _request_timeout: timeout setting for this request. If one 12901 number provided, it will be total request 12902 timeout. It can also be a pair (tuple) of 12903 (connection, read) timeouts. 12904 :type _request_timeout: int, tuple(int, int), optional 12905 :param _request_auth: set to override the auth_settings for an a single 12906 request; this effectively ignores the 12907 authentication in the spec for a single request. 12908 :type _request_auth: dict, optional 12909 :param _content_type: force content-type for the request. 12910 :type _content_type: str, Optional 12911 :param _headers: set to override the headers for a single 12912 request; this effectively ignores the headers 12913 in the spec for a single request. 12914 :type _headers: dict, optional 12915 :param _host_index: set to override the host_index for a single 12916 request; this effectively ignores the host_index 12917 in the spec for a single request. 12918 :type _host_index: int, optional 12919 :return: Returns the result object. 12920 """ # noqa: E501 12921 12922 _param = self._create_embed_item_serialize( 12923 board_id=board_id, 12924 embed_create_request=embed_create_request, 12925 _request_auth=_request_auth, 12926 _content_type=_content_type, 12927 _headers=_headers, 12928 _host_index=_host_index, 12929 ) 12930 12931 _response_types_map: Dict[str, Optional[str]] = { 12932 "201": "EmbedItem", 12933 "400": None, 12934 "404": None, 12935 "429": None, 12936 } 12937 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12938 response_data.read() 12939 return self.api_client.response_deserialize( 12940 response_data=response_data, 12941 response_types_map=_response_types_map, 12942 ).data 12943 12944 def _create_embed_item_serialize( 12945 self, 12946 board_id, 12947 embed_create_request, 12948 _request_auth, 12949 _content_type, 12950 _headers, 12951 _host_index, 12952 ) -> RequestSerialized: 12953 12954 _host = None 12955 12956 _collection_formats: Dict[str, str] = {} 12957 12958 _path_params: Dict[str, str] = {} 12959 _query_params: List[Tuple[str, str]] = [] 12960 _header_params: Dict[str, Optional[str]] = _headers or {} 12961 _form_params: List[Tuple[str, str]] = [] 12962 _files: Dict[str, str] = {} 12963 _body_params: Optional[bytes] = None 12964 12965 # process the path parameters 12966 if board_id is not None: 12967 _path_params["board_id"] = board_id 12968 # process the query parameters 12969 # process the header parameters 12970 # process the form parameters 12971 # process the body parameter 12972 if embed_create_request is not None: 12973 _body_params = embed_create_request 12974 12975 # set the HTTP header `Accept` 12976 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 12977 12978 # set the HTTP header `Content-Type` 12979 if _content_type: 12980 _header_params["Content-Type"] = _content_type 12981 else: 12982 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 12983 if _default_content_type is not None: 12984 _header_params["Content-Type"] = _default_content_type 12985 12986 # authentication setting 12987 _auth_settings: List[str] = [] 12988 12989 return self.api_client.param_serialize( 12990 method="POST", 12991 resource_path="/v2/boards/{board_id}/embeds", 12992 path_params=_path_params, 12993 query_params=_query_params, 12994 header_params=_header_params, 12995 body=_body_params, 12996 post_params=_form_params, 12997 files=_files, 12998 auth_settings=_auth_settings, 12999 collection_formats=_collection_formats, 13000 _host=_host, 13001 _request_auth=_request_auth, 13002 ) 13003 13004 @validate_call 13005 def delete_embed_item( 13006 self, 13007 board_id: Annotated[ 13008 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 13009 ], 13010 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 13011 _request_timeout: Union[ 13012 None, 13013 Annotated[StrictFloat, Field(gt=0)], 13014 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13015 ] = None, 13016 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13017 _content_type: Optional[StrictStr] = None, 13018 _headers: Optional[Dict[StrictStr, Any]] = None, 13019 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13020 ) -> object: 13021 """Delete embed item 13022 13023 Deletes an embed item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 13024 13025 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 13026 :type board_id: str 13027 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 13028 :type item_id: str 13029 :param _request_timeout: timeout setting for this request. If one 13030 number provided, it will be total request 13031 timeout. It can also be a pair (tuple) of 13032 (connection, read) timeouts. 13033 :type _request_timeout: int, tuple(int, int), optional 13034 :param _request_auth: set to override the auth_settings for an a single 13035 request; this effectively ignores the 13036 authentication in the spec for a single request. 13037 :type _request_auth: dict, optional 13038 :param _content_type: force content-type for the request. 13039 :type _content_type: str, Optional 13040 :param _headers: set to override the headers for a single 13041 request; this effectively ignores the headers 13042 in the spec for a single request. 13043 :type _headers: dict, optional 13044 :param _host_index: set to override the host_index for a single 13045 request; this effectively ignores the host_index 13046 in the spec for a single request. 13047 :type _host_index: int, optional 13048 :return: Returns the result object. 13049 """ # noqa: E501 13050 13051 _param = self._delete_embed_item_serialize( 13052 board_id=board_id, 13053 item_id=item_id, 13054 _request_auth=_request_auth, 13055 _content_type=_content_type, 13056 _headers=_headers, 13057 _host_index=_host_index, 13058 ) 13059 13060 _response_types_map: Dict[str, Optional[str]] = { 13061 "204": "object", 13062 "400": None, 13063 "404": None, 13064 "429": None, 13065 } 13066 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13067 response_data.read() 13068 return self.api_client.response_deserialize( 13069 response_data=response_data, 13070 response_types_map=_response_types_map, 13071 ).data 13072 13073 def _delete_embed_item_serialize( 13074 self, 13075 board_id, 13076 item_id, 13077 _request_auth, 13078 _content_type, 13079 _headers, 13080 _host_index, 13081 ) -> RequestSerialized: 13082 13083 _host = None 13084 13085 _collection_formats: Dict[str, str] = {} 13086 13087 _path_params: Dict[str, str] = {} 13088 _query_params: List[Tuple[str, str]] = [] 13089 _header_params: Dict[str, Optional[str]] = _headers or {} 13090 _form_params: List[Tuple[str, str]] = [] 13091 _files: Dict[str, str] = {} 13092 _body_params: Optional[bytes] = None 13093 13094 # process the path parameters 13095 if board_id is not None: 13096 _path_params["board_id"] = board_id 13097 if item_id is not None: 13098 _path_params["item_id"] = item_id 13099 # process the query parameters 13100 # process the header parameters 13101 # process the form parameters 13102 # process the body parameter 13103 13104 # set the HTTP header `Accept` 13105 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13106 13107 # authentication setting 13108 _auth_settings: List[str] = [] 13109 13110 return self.api_client.param_serialize( 13111 method="DELETE", 13112 resource_path="/v2/boards/{board_id}/embeds/{item_id}", 13113 path_params=_path_params, 13114 query_params=_query_params, 13115 header_params=_header_params, 13116 body=_body_params, 13117 post_params=_form_params, 13118 files=_files, 13119 auth_settings=_auth_settings, 13120 collection_formats=_collection_formats, 13121 _host=_host, 13122 _request_auth=_request_auth, 13123 ) 13124 13125 @validate_call 13126 def get_embed_item( 13127 self, 13128 board_id: Annotated[ 13129 StrictStr, 13130 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 13131 ], 13132 item_id: Annotated[ 13133 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 13134 ], 13135 _request_timeout: Union[ 13136 None, 13137 Annotated[StrictFloat, Field(gt=0)], 13138 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13139 ] = None, 13140 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13141 _content_type: Optional[StrictStr] = None, 13142 _headers: Optional[Dict[StrictStr, Any]] = None, 13143 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13144 ) -> EmbedItem: 13145 """Get embed item 13146 13147 Retrieves information for a specific embed item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 13148 13149 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 13150 :type board_id: str 13151 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 13152 :type item_id: str 13153 :param _request_timeout: timeout setting for this request. If one 13154 number provided, it will be total request 13155 timeout. It can also be a pair (tuple) of 13156 (connection, read) timeouts. 13157 :type _request_timeout: int, tuple(int, int), optional 13158 :param _request_auth: set to override the auth_settings for an a single 13159 request; this effectively ignores the 13160 authentication in the spec for a single request. 13161 :type _request_auth: dict, optional 13162 :param _content_type: force content-type for the request. 13163 :type _content_type: str, Optional 13164 :param _headers: set to override the headers for a single 13165 request; this effectively ignores the headers 13166 in the spec for a single request. 13167 :type _headers: dict, optional 13168 :param _host_index: set to override the host_index for a single 13169 request; this effectively ignores the host_index 13170 in the spec for a single request. 13171 :type _host_index: int, optional 13172 :return: Returns the result object. 13173 """ # noqa: E501 13174 13175 _param = self._get_embed_item_serialize( 13176 board_id=board_id, 13177 item_id=item_id, 13178 _request_auth=_request_auth, 13179 _content_type=_content_type, 13180 _headers=_headers, 13181 _host_index=_host_index, 13182 ) 13183 13184 _response_types_map: Dict[str, Optional[str]] = { 13185 "200": "EmbedItem", 13186 "400": None, 13187 "404": None, 13188 "429": None, 13189 } 13190 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13191 response_data.read() 13192 return self.api_client.response_deserialize( 13193 response_data=response_data, 13194 response_types_map=_response_types_map, 13195 ).data 13196 13197 def _get_embed_item_serialize( 13198 self, 13199 board_id, 13200 item_id, 13201 _request_auth, 13202 _content_type, 13203 _headers, 13204 _host_index, 13205 ) -> RequestSerialized: 13206 13207 _host = None 13208 13209 _collection_formats: Dict[str, str] = {} 13210 13211 _path_params: Dict[str, str] = {} 13212 _query_params: List[Tuple[str, str]] = [] 13213 _header_params: Dict[str, Optional[str]] = _headers or {} 13214 _form_params: List[Tuple[str, str]] = [] 13215 _files: Dict[str, str] = {} 13216 _body_params: Optional[bytes] = None 13217 13218 # process the path parameters 13219 if board_id is not None: 13220 _path_params["board_id"] = board_id 13221 if item_id is not None: 13222 _path_params["item_id"] = item_id 13223 # process the query parameters 13224 # process the header parameters 13225 # process the form parameters 13226 # process the body parameter 13227 13228 # set the HTTP header `Accept` 13229 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13230 13231 # authentication setting 13232 _auth_settings: List[str] = [] 13233 13234 return self.api_client.param_serialize( 13235 method="GET", 13236 resource_path="/v2/boards/{board_id}/embeds/{item_id}", 13237 path_params=_path_params, 13238 query_params=_query_params, 13239 header_params=_header_params, 13240 body=_body_params, 13241 post_params=_form_params, 13242 files=_files, 13243 auth_settings=_auth_settings, 13244 collection_formats=_collection_formats, 13245 _host=_host, 13246 _request_auth=_request_auth, 13247 ) 13248 13249 @validate_call 13250 def update_embed_item( 13251 self, 13252 board_id: Annotated[ 13253 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 13254 ], 13255 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 13256 embed_update_request: EmbedUpdateRequest, 13257 _request_timeout: Union[ 13258 None, 13259 Annotated[StrictFloat, Field(gt=0)], 13260 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13261 ] = None, 13262 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13263 _content_type: Optional[StrictStr] = None, 13264 _headers: Optional[Dict[StrictStr, Any]] = None, 13265 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13266 ) -> EmbedItem: 13267 """Update embed item 13268 13269 Updates an embed item on a board based on the data properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13270 13271 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 13272 :type board_id: str 13273 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 13274 :type item_id: str 13275 :param embed_update_request: (required) 13276 :type embed_update_request: EmbedUpdateRequest 13277 :param _request_timeout: timeout setting for this request. If one 13278 number provided, it will be total request 13279 timeout. It can also be a pair (tuple) of 13280 (connection, read) timeouts. 13281 :type _request_timeout: int, tuple(int, int), optional 13282 :param _request_auth: set to override the auth_settings for an a single 13283 request; this effectively ignores the 13284 authentication in the spec for a single request. 13285 :type _request_auth: dict, optional 13286 :param _content_type: force content-type for the request. 13287 :type _content_type: str, Optional 13288 :param _headers: set to override the headers for a single 13289 request; this effectively ignores the headers 13290 in the spec for a single request. 13291 :type _headers: dict, optional 13292 :param _host_index: set to override the host_index for a single 13293 request; this effectively ignores the host_index 13294 in the spec for a single request. 13295 :type _host_index: int, optional 13296 :return: Returns the result object. 13297 """ # noqa: E501 13298 13299 _param = self._update_embed_item_serialize( 13300 board_id=board_id, 13301 item_id=item_id, 13302 embed_update_request=embed_update_request, 13303 _request_auth=_request_auth, 13304 _content_type=_content_type, 13305 _headers=_headers, 13306 _host_index=_host_index, 13307 ) 13308 13309 _response_types_map: Dict[str, Optional[str]] = { 13310 "200": "EmbedItem", 13311 "400": None, 13312 "404": None, 13313 "409": None, 13314 "429": None, 13315 } 13316 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13317 response_data.read() 13318 return self.api_client.response_deserialize( 13319 response_data=response_data, 13320 response_types_map=_response_types_map, 13321 ).data 13322 13323 def _update_embed_item_serialize( 13324 self, 13325 board_id, 13326 item_id, 13327 embed_update_request, 13328 _request_auth, 13329 _content_type, 13330 _headers, 13331 _host_index, 13332 ) -> RequestSerialized: 13333 13334 _host = None 13335 13336 _collection_formats: Dict[str, str] = {} 13337 13338 _path_params: Dict[str, str] = {} 13339 _query_params: List[Tuple[str, str]] = [] 13340 _header_params: Dict[str, Optional[str]] = _headers or {} 13341 _form_params: List[Tuple[str, str]] = [] 13342 _files: Dict[str, str] = {} 13343 _body_params: Optional[bytes] = None 13344 13345 # process the path parameters 13346 if board_id is not None: 13347 _path_params["board_id"] = board_id 13348 if item_id is not None: 13349 _path_params["item_id"] = item_id 13350 # process the query parameters 13351 # process the header parameters 13352 # process the form parameters 13353 # process the body parameter 13354 if embed_update_request is not None: 13355 _body_params = embed_update_request 13356 13357 # set the HTTP header `Accept` 13358 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13359 13360 # set the HTTP header `Content-Type` 13361 if _content_type: 13362 _header_params["Content-Type"] = _content_type 13363 else: 13364 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 13365 if _default_content_type is not None: 13366 _header_params["Content-Type"] = _default_content_type 13367 13368 # authentication setting 13369 _auth_settings: List[str] = [] 13370 13371 return self.api_client.param_serialize( 13372 method="PATCH", 13373 resource_path="/v2/boards/{board_id}/embeds/{item_id}", 13374 path_params=_path_params, 13375 query_params=_query_params, 13376 header_params=_header_params, 13377 body=_body_params, 13378 post_params=_form_params, 13379 files=_files, 13380 auth_settings=_auth_settings, 13381 collection_formats=_collection_formats, 13382 _host=_host, 13383 _request_auth=_request_auth, 13384 ) 13385 13386 @validate_call 13387 def create_frame_item( 13388 self, 13389 board_id: Annotated[ 13390 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create a frame.") 13391 ], 13392 frame_create_request: FrameCreateRequest, 13393 _request_timeout: Union[ 13394 None, 13395 Annotated[StrictFloat, Field(gt=0)], 13396 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13397 ] = None, 13398 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13399 _content_type: Optional[StrictStr] = None, 13400 _headers: Optional[Dict[StrictStr, Any]] = None, 13401 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13402 ) -> FrameItem: 13403 """Create frame 13404 13405 Adds a frame to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13406 13407 :param board_id: Unique identifier (ID) of the board where you want to create a frame. (required) 13408 :type board_id: str 13409 :param frame_create_request: (required) 13410 :type frame_create_request: FrameCreateRequest 13411 :param _request_timeout: timeout setting for this request. If one 13412 number provided, it will be total request 13413 timeout. It can also be a pair (tuple) of 13414 (connection, read) timeouts. 13415 :type _request_timeout: int, tuple(int, int), optional 13416 :param _request_auth: set to override the auth_settings for an a single 13417 request; this effectively ignores the 13418 authentication in the spec for a single request. 13419 :type _request_auth: dict, optional 13420 :param _content_type: force content-type for the request. 13421 :type _content_type: str, Optional 13422 :param _headers: set to override the headers for a single 13423 request; this effectively ignores the headers 13424 in the spec for a single request. 13425 :type _headers: dict, optional 13426 :param _host_index: set to override the host_index for a single 13427 request; this effectively ignores the host_index 13428 in the spec for a single request. 13429 :type _host_index: int, optional 13430 :return: Returns the result object. 13431 """ # noqa: E501 13432 13433 _param = self._create_frame_item_serialize( 13434 board_id=board_id, 13435 frame_create_request=frame_create_request, 13436 _request_auth=_request_auth, 13437 _content_type=_content_type, 13438 _headers=_headers, 13439 _host_index=_host_index, 13440 ) 13441 13442 _response_types_map: Dict[str, Optional[str]] = { 13443 "201": "FrameItem", 13444 "400": "CreateFrameItem400Response", 13445 "404": "CreateFrameItem400Response", 13446 "429": "CreateFrameItem400Response", 13447 } 13448 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13449 response_data.read() 13450 return self.api_client.response_deserialize( 13451 response_data=response_data, 13452 response_types_map=_response_types_map, 13453 ).data 13454 13455 def _create_frame_item_serialize( 13456 self, 13457 board_id, 13458 frame_create_request, 13459 _request_auth, 13460 _content_type, 13461 _headers, 13462 _host_index, 13463 ) -> RequestSerialized: 13464 13465 _host = None 13466 13467 _collection_formats: Dict[str, str] = {} 13468 13469 _path_params: Dict[str, str] = {} 13470 _query_params: List[Tuple[str, str]] = [] 13471 _header_params: Dict[str, Optional[str]] = _headers or {} 13472 _form_params: List[Tuple[str, str]] = [] 13473 _files: Dict[str, str] = {} 13474 _body_params: Optional[bytes] = None 13475 13476 # process the path parameters 13477 if board_id is not None: 13478 _path_params["board_id"] = board_id 13479 # process the query parameters 13480 # process the header parameters 13481 # process the form parameters 13482 # process the body parameter 13483 if frame_create_request is not None: 13484 _body_params = frame_create_request 13485 13486 # set the HTTP header `Accept` 13487 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13488 13489 # set the HTTP header `Content-Type` 13490 if _content_type: 13491 _header_params["Content-Type"] = _content_type 13492 else: 13493 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 13494 if _default_content_type is not None: 13495 _header_params["Content-Type"] = _default_content_type 13496 13497 # authentication setting 13498 _auth_settings: List[str] = [] 13499 13500 return self.api_client.param_serialize( 13501 method="POST", 13502 resource_path="/v2/boards/{board_id}/frames", 13503 path_params=_path_params, 13504 query_params=_query_params, 13505 header_params=_header_params, 13506 body=_body_params, 13507 post_params=_form_params, 13508 files=_files, 13509 auth_settings=_auth_settings, 13510 collection_formats=_collection_formats, 13511 _host=_host, 13512 _request_auth=_request_auth, 13513 ) 13514 13515 @validate_call 13516 def delete_frame_item( 13517 self, 13518 board_id: Annotated[ 13519 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the frame.") 13520 ], 13521 item_id: Annotated[ 13522 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to delete.") 13523 ], 13524 _request_timeout: Union[ 13525 None, 13526 Annotated[StrictFloat, Field(gt=0)], 13527 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13528 ] = None, 13529 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13530 _content_type: Optional[StrictStr] = None, 13531 _headers: Optional[Dict[StrictStr, Any]] = None, 13532 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13533 ) -> object: 13534 """Delete frame 13535 13536 Deletes a frame from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 13537 13538 :param board_id: Unique identifier (ID) of the board from which you want to delete the frame. (required) 13539 :type board_id: str 13540 :param item_id: Unique identifier (ID) of the frame that you want to delete. (required) 13541 :type item_id: str 13542 :param _request_timeout: timeout setting for this request. If one 13543 number provided, it will be total request 13544 timeout. It can also be a pair (tuple) of 13545 (connection, read) timeouts. 13546 :type _request_timeout: int, tuple(int, int), optional 13547 :param _request_auth: set to override the auth_settings for an a single 13548 request; this effectively ignores the 13549 authentication in the spec for a single request. 13550 :type _request_auth: dict, optional 13551 :param _content_type: force content-type for the request. 13552 :type _content_type: str, Optional 13553 :param _headers: set to override the headers for a single 13554 request; this effectively ignores the headers 13555 in the spec for a single request. 13556 :type _headers: dict, optional 13557 :param _host_index: set to override the host_index for a single 13558 request; this effectively ignores the host_index 13559 in the spec for a single request. 13560 :type _host_index: int, optional 13561 :return: Returns the result object. 13562 """ # noqa: E501 13563 13564 _param = self._delete_frame_item_serialize( 13565 board_id=board_id, 13566 item_id=item_id, 13567 _request_auth=_request_auth, 13568 _content_type=_content_type, 13569 _headers=_headers, 13570 _host_index=_host_index, 13571 ) 13572 13573 _response_types_map: Dict[str, Optional[str]] = { 13574 "204": "object", 13575 "400": "CreateFrameItem400Response", 13576 "404": "CreateFrameItem400Response", 13577 "429": "CreateFrameItem400Response", 13578 } 13579 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13580 response_data.read() 13581 return self.api_client.response_deserialize( 13582 response_data=response_data, 13583 response_types_map=_response_types_map, 13584 ).data 13585 13586 def _delete_frame_item_serialize( 13587 self, 13588 board_id, 13589 item_id, 13590 _request_auth, 13591 _content_type, 13592 _headers, 13593 _host_index, 13594 ) -> RequestSerialized: 13595 13596 _host = None 13597 13598 _collection_formats: Dict[str, str] = {} 13599 13600 _path_params: Dict[str, str] = {} 13601 _query_params: List[Tuple[str, str]] = [] 13602 _header_params: Dict[str, Optional[str]] = _headers or {} 13603 _form_params: List[Tuple[str, str]] = [] 13604 _files: Dict[str, str] = {} 13605 _body_params: Optional[bytes] = None 13606 13607 # process the path parameters 13608 if board_id is not None: 13609 _path_params["board_id"] = board_id 13610 if item_id is not None: 13611 _path_params["item_id"] = item_id 13612 # process the query parameters 13613 # process the header parameters 13614 # process the form parameters 13615 # process the body parameter 13616 13617 # set the HTTP header `Accept` 13618 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13619 13620 # authentication setting 13621 _auth_settings: List[str] = [] 13622 13623 return self.api_client.param_serialize( 13624 method="DELETE", 13625 resource_path="/v2/boards/{board_id}/frames/{item_id}", 13626 path_params=_path_params, 13627 query_params=_query_params, 13628 header_params=_header_params, 13629 body=_body_params, 13630 post_params=_form_params, 13631 files=_files, 13632 auth_settings=_auth_settings, 13633 collection_formats=_collection_formats, 13634 _host=_host, 13635 _request_auth=_request_auth, 13636 ) 13637 13638 @validate_call 13639 def get_frame_item( 13640 self, 13641 board_id: Annotated[ 13642 StrictStr, 13643 Field(description="Unique identifier (ID) of the board that contains the frame that you want to retrieve"), 13644 ], 13645 item_id: Annotated[ 13646 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to retrieve.") 13647 ], 13648 _request_timeout: Union[ 13649 None, 13650 Annotated[StrictFloat, Field(gt=0)], 13651 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13652 ] = None, 13653 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13654 _content_type: Optional[StrictStr] = None, 13655 _headers: Optional[Dict[StrictStr, Any]] = None, 13656 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13657 ) -> FrameItem: 13658 """Get frame 13659 13660 Retrieves information for a specific frame on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 13661 13662 :param board_id: Unique identifier (ID) of the board that contains the frame that you want to retrieve (required) 13663 :type board_id: str 13664 :param item_id: Unique identifier (ID) of the frame that you want to retrieve. (required) 13665 :type item_id: str 13666 :param _request_timeout: timeout setting for this request. If one 13667 number provided, it will be total request 13668 timeout. It can also be a pair (tuple) of 13669 (connection, read) timeouts. 13670 :type _request_timeout: int, tuple(int, int), optional 13671 :param _request_auth: set to override the auth_settings for an a single 13672 request; this effectively ignores the 13673 authentication in the spec for a single request. 13674 :type _request_auth: dict, optional 13675 :param _content_type: force content-type for the request. 13676 :type _content_type: str, Optional 13677 :param _headers: set to override the headers for a single 13678 request; this effectively ignores the headers 13679 in the spec for a single request. 13680 :type _headers: dict, optional 13681 :param _host_index: set to override the host_index for a single 13682 request; this effectively ignores the host_index 13683 in the spec for a single request. 13684 :type _host_index: int, optional 13685 :return: Returns the result object. 13686 """ # noqa: E501 13687 13688 _param = self._get_frame_item_serialize( 13689 board_id=board_id, 13690 item_id=item_id, 13691 _request_auth=_request_auth, 13692 _content_type=_content_type, 13693 _headers=_headers, 13694 _host_index=_host_index, 13695 ) 13696 13697 _response_types_map: Dict[str, Optional[str]] = { 13698 "200": "FrameItem", 13699 "400": "CreateFrameItem400Response", 13700 "404": "CreateFrameItem400Response", 13701 "429": "CreateFrameItem400Response", 13702 } 13703 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13704 response_data.read() 13705 return self.api_client.response_deserialize( 13706 response_data=response_data, 13707 response_types_map=_response_types_map, 13708 ).data 13709 13710 def _get_frame_item_serialize( 13711 self, 13712 board_id, 13713 item_id, 13714 _request_auth, 13715 _content_type, 13716 _headers, 13717 _host_index, 13718 ) -> RequestSerialized: 13719 13720 _host = None 13721 13722 _collection_formats: Dict[str, str] = {} 13723 13724 _path_params: Dict[str, str] = {} 13725 _query_params: List[Tuple[str, str]] = [] 13726 _header_params: Dict[str, Optional[str]] = _headers or {} 13727 _form_params: List[Tuple[str, str]] = [] 13728 _files: Dict[str, str] = {} 13729 _body_params: Optional[bytes] = None 13730 13731 # process the path parameters 13732 if board_id is not None: 13733 _path_params["board_id"] = board_id 13734 if item_id is not None: 13735 _path_params["item_id"] = item_id 13736 # process the query parameters 13737 # process the header parameters 13738 # process the form parameters 13739 # process the body parameter 13740 13741 # set the HTTP header `Accept` 13742 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13743 13744 # authentication setting 13745 _auth_settings: List[str] = [] 13746 13747 return self.api_client.param_serialize( 13748 method="GET", 13749 resource_path="/v2/boards/{board_id}/frames/{item_id}", 13750 path_params=_path_params, 13751 query_params=_query_params, 13752 header_params=_header_params, 13753 body=_body_params, 13754 post_params=_form_params, 13755 files=_files, 13756 auth_settings=_auth_settings, 13757 collection_formats=_collection_formats, 13758 _host=_host, 13759 _request_auth=_request_auth, 13760 ) 13761 13762 @validate_call 13763 def update_frame_item( 13764 self, 13765 board_id: Annotated[ 13766 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the frame.") 13767 ], 13768 item_id: Annotated[ 13769 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to update.") 13770 ], 13771 frame_update_request: FrameUpdateRequest, 13772 _request_timeout: Union[ 13773 None, 13774 Annotated[StrictFloat, Field(gt=0)], 13775 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13776 ] = None, 13777 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13778 _content_type: Optional[StrictStr] = None, 13779 _headers: Optional[Dict[StrictStr, Any]] = None, 13780 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13781 ) -> FrameItem: 13782 """Update frame 13783 13784 Updates a frame on a board based on the data, style, or geometry properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13785 13786 :param board_id: Unique identifier (ID) of the board where you want to update the frame. (required) 13787 :type board_id: str 13788 :param item_id: Unique identifier (ID) of the frame that you want to update. (required) 13789 :type item_id: str 13790 :param frame_update_request: (required) 13791 :type frame_update_request: FrameUpdateRequest 13792 :param _request_timeout: timeout setting for this request. If one 13793 number provided, it will be total request 13794 timeout. It can also be a pair (tuple) of 13795 (connection, read) timeouts. 13796 :type _request_timeout: int, tuple(int, int), optional 13797 :param _request_auth: set to override the auth_settings for an a single 13798 request; this effectively ignores the 13799 authentication in the spec for a single request. 13800 :type _request_auth: dict, optional 13801 :param _content_type: force content-type for the request. 13802 :type _content_type: str, Optional 13803 :param _headers: set to override the headers for a single 13804 request; this effectively ignores the headers 13805 in the spec for a single request. 13806 :type _headers: dict, optional 13807 :param _host_index: set to override the host_index for a single 13808 request; this effectively ignores the host_index 13809 in the spec for a single request. 13810 :type _host_index: int, optional 13811 :return: Returns the result object. 13812 """ # noqa: E501 13813 13814 _param = self._update_frame_item_serialize( 13815 board_id=board_id, 13816 item_id=item_id, 13817 frame_update_request=frame_update_request, 13818 _request_auth=_request_auth, 13819 _content_type=_content_type, 13820 _headers=_headers, 13821 _host_index=_host_index, 13822 ) 13823 13824 _response_types_map: Dict[str, Optional[str]] = { 13825 "200": "FrameItem", 13826 "400": "CreateFrameItem400Response", 13827 "404": "CreateFrameItem400Response", 13828 "409": "UpdateFrameItem409Response", 13829 "429": "CreateFrameItem400Response", 13830 } 13831 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13832 response_data.read() 13833 return self.api_client.response_deserialize( 13834 response_data=response_data, 13835 response_types_map=_response_types_map, 13836 ).data 13837 13838 def _update_frame_item_serialize( 13839 self, 13840 board_id, 13841 item_id, 13842 frame_update_request, 13843 _request_auth, 13844 _content_type, 13845 _headers, 13846 _host_index, 13847 ) -> RequestSerialized: 13848 13849 _host = None 13850 13851 _collection_formats: Dict[str, str] = {} 13852 13853 _path_params: Dict[str, str] = {} 13854 _query_params: List[Tuple[str, str]] = [] 13855 _header_params: Dict[str, Optional[str]] = _headers or {} 13856 _form_params: List[Tuple[str, str]] = [] 13857 _files: Dict[str, str] = {} 13858 _body_params: Optional[bytes] = None 13859 13860 # process the path parameters 13861 if board_id is not None: 13862 _path_params["board_id"] = board_id 13863 if item_id is not None: 13864 _path_params["item_id"] = item_id 13865 # process the query parameters 13866 # process the header parameters 13867 # process the form parameters 13868 # process the body parameter 13869 if frame_update_request is not None: 13870 _body_params = frame_update_request 13871 13872 # set the HTTP header `Accept` 13873 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 13874 13875 # set the HTTP header `Content-Type` 13876 if _content_type: 13877 _header_params["Content-Type"] = _content_type 13878 else: 13879 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 13880 if _default_content_type is not None: 13881 _header_params["Content-Type"] = _default_content_type 13882 13883 # authentication setting 13884 _auth_settings: List[str] = [] 13885 13886 return self.api_client.param_serialize( 13887 method="PATCH", 13888 resource_path="/v2/boards/{board_id}/frames/{item_id}", 13889 path_params=_path_params, 13890 query_params=_query_params, 13891 header_params=_header_params, 13892 body=_body_params, 13893 post_params=_form_params, 13894 files=_files, 13895 auth_settings=_auth_settings, 13896 collection_formats=_collection_formats, 13897 _host=_host, 13898 _request_auth=_request_auth, 13899 ) 13900 13901 @validate_call 13902 def create_group( 13903 self, 13904 board_id: StrictStr, 13905 group: Group, 13906 _request_timeout: Union[ 13907 None, 13908 Annotated[StrictFloat, Field(gt=0)], 13909 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13910 ] = None, 13911 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13912 _content_type: Optional[StrictStr] = None, 13913 _headers: Optional[Dict[StrictStr, Any]] = None, 13914 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13915 ) -> GroupResponseShort: 13916 """Create group 13917 13918 Creates a group of items on a board. The group is created with the items that are passed in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13919 13920 :param board_id: (required) 13921 :type board_id: str 13922 :param group: (required) 13923 :type group: Group 13924 :param _request_timeout: timeout setting for this request. If one 13925 number provided, it will be total request 13926 timeout. It can also be a pair (tuple) of 13927 (connection, read) timeouts. 13928 :type _request_timeout: int, tuple(int, int), optional 13929 :param _request_auth: set to override the auth_settings for an a single 13930 request; this effectively ignores the 13931 authentication in the spec for a single request. 13932 :type _request_auth: dict, optional 13933 :param _content_type: force content-type for the request. 13934 :type _content_type: str, Optional 13935 :param _headers: set to override the headers for a single 13936 request; this effectively ignores the headers 13937 in the spec for a single request. 13938 :type _headers: dict, optional 13939 :param _host_index: set to override the host_index for a single 13940 request; this effectively ignores the host_index 13941 in the spec for a single request. 13942 :type _host_index: int, optional 13943 :return: Returns the result object. 13944 """ # noqa: E501 13945 13946 _param = self._create_group_serialize( 13947 board_id=board_id, 13948 group=group, 13949 _request_auth=_request_auth, 13950 _content_type=_content_type, 13951 _headers=_headers, 13952 _host_index=_host_index, 13953 ) 13954 13955 _response_types_map: Dict[str, Optional[str]] = { 13956 "201": "GroupResponseShort", 13957 "400": "GetAllGroups400Response", 13958 "404": "GetAllGroups404Response", 13959 "429": "GetAllGroups429Response", 13960 } 13961 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13962 response_data.read() 13963 return self.api_client.response_deserialize( 13964 response_data=response_data, 13965 response_types_map=_response_types_map, 13966 ).data 13967 13968 def _create_group_serialize( 13969 self, 13970 board_id, 13971 group, 13972 _request_auth, 13973 _content_type, 13974 _headers, 13975 _host_index, 13976 ) -> RequestSerialized: 13977 13978 _host = None 13979 13980 _collection_formats: Dict[str, str] = {} 13981 13982 _path_params: Dict[str, str] = {} 13983 _query_params: List[Tuple[str, str]] = [] 13984 _header_params: Dict[str, Optional[str]] = _headers or {} 13985 _form_params: List[Tuple[str, str]] = [] 13986 _files: Dict[str, str] = {} 13987 _body_params: Optional[bytes] = None 13988 13989 # process the path parameters 13990 if board_id is not None: 13991 _path_params["board_id"] = board_id 13992 # process the query parameters 13993 # process the header parameters 13994 # process the form parameters 13995 # process the body parameter 13996 if group is not None: 13997 _body_params = group 13998 13999 # set the HTTP header `Accept` 14000 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14001 14002 # set the HTTP header `Content-Type` 14003 if _content_type: 14004 _header_params["Content-Type"] = _content_type 14005 else: 14006 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 14007 if _default_content_type is not None: 14008 _header_params["Content-Type"] = _default_content_type 14009 14010 # authentication setting 14011 _auth_settings: List[str] = [] 14012 14013 return self.api_client.param_serialize( 14014 method="POST", 14015 resource_path="/v2/boards/{board_id}/groups", 14016 path_params=_path_params, 14017 query_params=_query_params, 14018 header_params=_header_params, 14019 body=_body_params, 14020 post_params=_form_params, 14021 files=_files, 14022 auth_settings=_auth_settings, 14023 collection_formats=_collection_formats, 14024 _host=_host, 14025 _request_auth=_request_auth, 14026 ) 14027 14028 @validate_call 14029 def delete_group( 14030 self, 14031 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14032 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14033 delete_items: Annotated[ 14034 StrictBool, 14035 Field( 14036 description="Indicates whether the items should be removed. Set to `true` to delete items in the group." 14037 ), 14038 ], 14039 _request_timeout: Union[ 14040 None, 14041 Annotated[StrictFloat, Field(gt=0)], 14042 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14043 ] = None, 14044 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14045 _content_type: Optional[StrictStr] = None, 14046 _headers: Optional[Dict[StrictStr, Any]] = None, 14047 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14048 ) -> object: 14049 """Deletes the group 14050 14051 Deletes a group from a board. All the items in the groups are deleted along with the group.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 14052 14053 :param board_id: Unique identifier (ID) of the board. (required) 14054 :type board_id: str 14055 :param group_id: Unique identifier (ID) of the group. (required) 14056 :type group_id: str 14057 :param delete_items: Indicates whether the items should be removed. Set to `true` to delete items in the group. (required) 14058 :type delete_items: bool 14059 :param _request_timeout: timeout setting for this request. If one 14060 number provided, it will be total request 14061 timeout. It can also be a pair (tuple) of 14062 (connection, read) timeouts. 14063 :type _request_timeout: int, tuple(int, int), optional 14064 :param _request_auth: set to override the auth_settings for an a single 14065 request; this effectively ignores the 14066 authentication in the spec for a single request. 14067 :type _request_auth: dict, optional 14068 :param _content_type: force content-type for the request. 14069 :type _content_type: str, Optional 14070 :param _headers: set to override the headers for a single 14071 request; this effectively ignores the headers 14072 in the spec for a single request. 14073 :type _headers: dict, optional 14074 :param _host_index: set to override the host_index for a single 14075 request; this effectively ignores the host_index 14076 in the spec for a single request. 14077 :type _host_index: int, optional 14078 :return: Returns the result object. 14079 """ # noqa: E501 14080 14081 _param = self._delete_group_serialize( 14082 board_id=board_id, 14083 group_id=group_id, 14084 delete_items=delete_items, 14085 _request_auth=_request_auth, 14086 _content_type=_content_type, 14087 _headers=_headers, 14088 _host_index=_host_index, 14089 ) 14090 14091 _response_types_map: Dict[str, Optional[str]] = { 14092 "204": "object", 14093 "400": "UnGroup400Response", 14094 "404": "UnGroup404Response", 14095 "429": "UnGroup429Response", 14096 } 14097 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14098 response_data.read() 14099 return self.api_client.response_deserialize( 14100 response_data=response_data, 14101 response_types_map=_response_types_map, 14102 ).data 14103 14104 def _delete_group_serialize( 14105 self, 14106 board_id, 14107 group_id, 14108 delete_items, 14109 _request_auth, 14110 _content_type, 14111 _headers, 14112 _host_index, 14113 ) -> RequestSerialized: 14114 14115 _host = None 14116 14117 _collection_formats: Dict[str, str] = {} 14118 14119 _path_params: Dict[str, str] = {} 14120 _query_params: List[Tuple[str, str]] = [] 14121 _header_params: Dict[str, Optional[str]] = _headers or {} 14122 _form_params: List[Tuple[str, str]] = [] 14123 _files: Dict[str, str] = {} 14124 _body_params: Optional[bytes] = None 14125 14126 # process the path parameters 14127 if board_id is not None: 14128 _path_params["board_id"] = board_id 14129 if group_id is not None: 14130 _path_params["group_id"] = group_id 14131 # process the query parameters 14132 if delete_items is not None: 14133 14134 _query_params.append(("delete_items", delete_items)) 14135 14136 # process the header parameters 14137 # process the form parameters 14138 # process the body parameter 14139 14140 # set the HTTP header `Accept` 14141 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14142 14143 # authentication setting 14144 _auth_settings: List[str] = [] 14145 14146 return self.api_client.param_serialize( 14147 method="DELETE", 14148 resource_path="/v2/boards/{board_id}/groups/{group_id}?", 14149 path_params=_path_params, 14150 query_params=_query_params, 14151 header_params=_header_params, 14152 body=_body_params, 14153 post_params=_form_params, 14154 files=_files, 14155 auth_settings=_auth_settings, 14156 collection_formats=_collection_formats, 14157 _host=_host, 14158 _request_auth=_request_auth, 14159 ) 14160 14161 @validate_call 14162 def get_all_groups( 14163 self, 14164 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14165 limit: Annotated[ 14166 Optional[Annotated[int, Field(le=50, strict=True, ge=10)]], 14167 Field(description="The maximum number of items to return at one time, default is 10, maximum is 50."), 14168 ] = None, 14169 cursor: Optional[StrictStr] = None, 14170 _request_timeout: Union[ 14171 None, 14172 Annotated[StrictFloat, Field(gt=0)], 14173 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14174 ] = None, 14175 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14176 _content_type: Optional[StrictStr] = None, 14177 _headers: Optional[Dict[StrictStr, Any]] = None, 14178 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14179 ) -> GetAllGroups200Response: 14180 """Get all groups on a board 14181 14182 Returns all the groups and the items of the respective groups within a specific board.<br/> This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request.<br/> For example, if you set the `limit` query parameter to `10` and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14183 14184 :param board_id: Unique identifier (ID) of the board. (required) 14185 :type board_id: str 14186 :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. 14187 :type limit: int 14188 :param cursor: 14189 :type cursor: str 14190 :param _request_timeout: timeout setting for this request. If one 14191 number provided, it will be total request 14192 timeout. It can also be a pair (tuple) of 14193 (connection, read) timeouts. 14194 :type _request_timeout: int, tuple(int, int), optional 14195 :param _request_auth: set to override the auth_settings for an a single 14196 request; this effectively ignores the 14197 authentication in the spec for a single request. 14198 :type _request_auth: dict, optional 14199 :param _content_type: force content-type for the request. 14200 :type _content_type: str, Optional 14201 :param _headers: set to override the headers for a single 14202 request; this effectively ignores the headers 14203 in the spec for a single request. 14204 :type _headers: dict, optional 14205 :param _host_index: set to override the host_index for a single 14206 request; this effectively ignores the host_index 14207 in the spec for a single request. 14208 :type _host_index: int, optional 14209 :return: Returns the result object. 14210 """ # noqa: E501 14211 14212 _param = self._get_all_groups_serialize( 14213 board_id=board_id, 14214 limit=limit, 14215 cursor=cursor, 14216 _request_auth=_request_auth, 14217 _content_type=_content_type, 14218 _headers=_headers, 14219 _host_index=_host_index, 14220 ) 14221 14222 _response_types_map: Dict[str, Optional[str]] = { 14223 "200": "GetAllGroups200Response", 14224 "400": "GetAllGroups400Response", 14225 "404": "GetAllGroups404Response", 14226 "429": "GetAllGroups429Response", 14227 } 14228 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14229 response_data.read() 14230 return self.api_client.response_deserialize( 14231 response_data=response_data, 14232 response_types_map=_response_types_map, 14233 ).data 14234 14235 def _get_all_groups_serialize( 14236 self, 14237 board_id, 14238 limit, 14239 cursor, 14240 _request_auth, 14241 _content_type, 14242 _headers, 14243 _host_index, 14244 ) -> RequestSerialized: 14245 14246 _host = None 14247 14248 _collection_formats: Dict[str, str] = {} 14249 14250 _path_params: Dict[str, str] = {} 14251 _query_params: List[Tuple[str, str]] = [] 14252 _header_params: Dict[str, Optional[str]] = _headers or {} 14253 _form_params: List[Tuple[str, str]] = [] 14254 _files: Dict[str, str] = {} 14255 _body_params: Optional[bytes] = None 14256 14257 # process the path parameters 14258 if board_id is not None: 14259 _path_params["board_id"] = board_id 14260 # process the query parameters 14261 if limit is not None: 14262 14263 _query_params.append(("limit", limit)) 14264 14265 if cursor is not None: 14266 14267 _query_params.append(("cursor", cursor)) 14268 14269 # process the header parameters 14270 # process the form parameters 14271 # process the body parameter 14272 14273 # set the HTTP header `Accept` 14274 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14275 14276 # authentication setting 14277 _auth_settings: List[str] = [] 14278 14279 return self.api_client.param_serialize( 14280 method="GET", 14281 resource_path="/v2/boards/{board_id}/groups", 14282 path_params=_path_params, 14283 query_params=_query_params, 14284 header_params=_header_params, 14285 body=_body_params, 14286 post_params=_form_params, 14287 files=_files, 14288 auth_settings=_auth_settings, 14289 collection_formats=_collection_formats, 14290 _host=_host, 14291 _request_auth=_request_auth, 14292 ) 14293 14294 @validate_call 14295 def get_group_by_id( 14296 self, 14297 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14298 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14299 _request_timeout: Union[ 14300 None, 14301 Annotated[StrictFloat, Field(gt=0)], 14302 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14303 ] = None, 14304 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14305 _content_type: Optional[StrictStr] = None, 14306 _headers: Optional[Dict[StrictStr, Any]] = None, 14307 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14308 ) -> GroupResponseShort: 14309 """Get a group by its ID 14310 14311 Returns a list of items in a specific group. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item ID 14312 14313 :param board_id: Unique identifier (ID) of the board. (required) 14314 :type board_id: str 14315 :param group_id: Unique identifier (ID) of the group. (required) 14316 :type group_id: str 14317 :param _request_timeout: timeout setting for this request. If one 14318 number provided, it will be total request 14319 timeout. It can also be a pair (tuple) of 14320 (connection, read) timeouts. 14321 :type _request_timeout: int, tuple(int, int), optional 14322 :param _request_auth: set to override the auth_settings for an a single 14323 request; this effectively ignores the 14324 authentication in the spec for a single request. 14325 :type _request_auth: dict, optional 14326 :param _content_type: force content-type for the request. 14327 :type _content_type: str, Optional 14328 :param _headers: set to override the headers for a single 14329 request; this effectively ignores the headers 14330 in the spec for a single request. 14331 :type _headers: dict, optional 14332 :param _host_index: set to override the host_index for a single 14333 request; this effectively ignores the host_index 14334 in the spec for a single request. 14335 :type _host_index: int, optional 14336 :return: Returns the result object. 14337 """ # noqa: E501 14338 14339 _param = self._get_group_by_id_serialize( 14340 board_id=board_id, 14341 group_id=group_id, 14342 _request_auth=_request_auth, 14343 _content_type=_content_type, 14344 _headers=_headers, 14345 _host_index=_host_index, 14346 ) 14347 14348 _response_types_map: Dict[str, Optional[str]] = { 14349 "200": "GroupResponseShort", 14350 "400": "GetAllGroups400Response", 14351 "404": "GetAllGroups404Response", 14352 "429": "GetAllGroups429Response", 14353 } 14354 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14355 response_data.read() 14356 return self.api_client.response_deserialize( 14357 response_data=response_data, 14358 response_types_map=_response_types_map, 14359 ).data 14360 14361 def _get_group_by_id_serialize( 14362 self, 14363 board_id, 14364 group_id, 14365 _request_auth, 14366 _content_type, 14367 _headers, 14368 _host_index, 14369 ) -> RequestSerialized: 14370 14371 _host = None 14372 14373 _collection_formats: Dict[str, str] = {} 14374 14375 _path_params: Dict[str, str] = {} 14376 _query_params: List[Tuple[str, str]] = [] 14377 _header_params: Dict[str, Optional[str]] = _headers or {} 14378 _form_params: List[Tuple[str, str]] = [] 14379 _files: Dict[str, str] = {} 14380 _body_params: Optional[bytes] = None 14381 14382 # process the path parameters 14383 if board_id is not None: 14384 _path_params["board_id"] = board_id 14385 if group_id is not None: 14386 _path_params["group_id"] = group_id 14387 # process the query parameters 14388 # process the header parameters 14389 # process the form parameters 14390 # process the body parameter 14391 14392 # set the HTTP header `Accept` 14393 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14394 14395 # authentication setting 14396 _auth_settings: List[str] = [] 14397 14398 return self.api_client.param_serialize( 14399 method="GET", 14400 resource_path="/v2/boards/{board_id}/groups/{group_id}", 14401 path_params=_path_params, 14402 query_params=_query_params, 14403 header_params=_header_params, 14404 body=_body_params, 14405 post_params=_form_params, 14406 files=_files, 14407 auth_settings=_auth_settings, 14408 collection_formats=_collection_formats, 14409 _host=_host, 14410 _request_auth=_request_auth, 14411 ) 14412 14413 @validate_call 14414 def get_items_by_group_id( 14415 self, 14416 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14417 group_item_id: Annotated[StrictStr, Field(description="The ID of the group item to retrieve.")], 14418 limit: Annotated[ 14419 Optional[Annotated[int, Field(le=50, strict=True, ge=10)]], 14420 Field(description="The maximum number of items to return at one time, default is 10, maximum is 50."), 14421 ] = None, 14422 cursor: Optional[StrictStr] = None, 14423 _request_timeout: Union[ 14424 None, 14425 Annotated[StrictFloat, Field(gt=0)], 14426 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14427 ] = None, 14428 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14429 _content_type: Optional[StrictStr] = None, 14430 _headers: Optional[Dict[StrictStr, Any]] = None, 14431 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14432 ) -> GetItemsByGroupId200Response: 14433 """Get items of a group by ID 14434 14435 Returns a list of items that are a part of any group, within a specific board.<br/> This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request.<br/> For example, if you set the `limit` query parameter to `10` and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items (not 10 groups) in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14436 14437 :param board_id: Unique identifier (ID) of the board. (required) 14438 :type board_id: str 14439 :param group_item_id: The ID of the group item to retrieve. (required) 14440 :type group_item_id: str 14441 :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. 14442 :type limit: int 14443 :param cursor: 14444 :type cursor: str 14445 :param _request_timeout: timeout setting for this request. If one 14446 number provided, it will be total request 14447 timeout. It can also be a pair (tuple) of 14448 (connection, read) timeouts. 14449 :type _request_timeout: int, tuple(int, int), optional 14450 :param _request_auth: set to override the auth_settings for an a single 14451 request; this effectively ignores the 14452 authentication in the spec for a single request. 14453 :type _request_auth: dict, optional 14454 :param _content_type: force content-type for the request. 14455 :type _content_type: str, Optional 14456 :param _headers: set to override the headers for a single 14457 request; this effectively ignores the headers 14458 in the spec for a single request. 14459 :type _headers: dict, optional 14460 :param _host_index: set to override the host_index for a single 14461 request; this effectively ignores the host_index 14462 in the spec for a single request. 14463 :type _host_index: int, optional 14464 :return: Returns the result object. 14465 """ # noqa: E501 14466 14467 _param = self._get_items_by_group_id_serialize( 14468 board_id=board_id, 14469 group_item_id=group_item_id, 14470 limit=limit, 14471 cursor=cursor, 14472 _request_auth=_request_auth, 14473 _content_type=_content_type, 14474 _headers=_headers, 14475 _host_index=_host_index, 14476 ) 14477 14478 _response_types_map: Dict[str, Optional[str]] = { 14479 "200": "GetItemsByGroupId200Response", 14480 "400": "GetAllGroups400Response", 14481 "404": "GetAllGroups404Response", 14482 "429": "GetAllGroups429Response", 14483 } 14484 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14485 response_data.read() 14486 return self.api_client.response_deserialize( 14487 response_data=response_data, 14488 response_types_map=_response_types_map, 14489 ).data 14490 14491 def _get_items_by_group_id_serialize( 14492 self, 14493 board_id, 14494 group_item_id, 14495 limit, 14496 cursor, 14497 _request_auth, 14498 _content_type, 14499 _headers, 14500 _host_index, 14501 ) -> RequestSerialized: 14502 14503 _host = None 14504 14505 _collection_formats: Dict[str, str] = {} 14506 14507 _path_params: Dict[str, str] = {} 14508 _query_params: List[Tuple[str, str]] = [] 14509 _header_params: Dict[str, Optional[str]] = _headers or {} 14510 _form_params: List[Tuple[str, str]] = [] 14511 _files: Dict[str, str] = {} 14512 _body_params: Optional[bytes] = None 14513 14514 # process the path parameters 14515 if board_id is not None: 14516 _path_params["board_id"] = board_id 14517 # process the query parameters 14518 if limit is not None: 14519 14520 _query_params.append(("limit", limit)) 14521 14522 if cursor is not None: 14523 14524 _query_params.append(("cursor", cursor)) 14525 14526 if group_item_id is not None: 14527 14528 _query_params.append(("group_item_id", group_item_id)) 14529 14530 # process the header parameters 14531 # process the form parameters 14532 # process the body parameter 14533 14534 # set the HTTP header `Accept` 14535 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14536 14537 # authentication setting 14538 _auth_settings: List[str] = [] 14539 14540 return self.api_client.param_serialize( 14541 method="GET", 14542 resource_path="/v2/boards/{board_id}/groups/items", 14543 path_params=_path_params, 14544 query_params=_query_params, 14545 header_params=_header_params, 14546 body=_body_params, 14547 post_params=_form_params, 14548 files=_files, 14549 auth_settings=_auth_settings, 14550 collection_formats=_collection_formats, 14551 _host=_host, 14552 _request_auth=_request_auth, 14553 ) 14554 14555 @validate_call 14556 def un_group( 14557 self, 14558 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14559 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14560 delete_items: Annotated[ 14561 Optional[StrictBool], Field(description="Indicates whether the items should be removed. By default, false.") 14562 ] = None, 14563 _request_timeout: Union[ 14564 None, 14565 Annotated[StrictFloat, Field(gt=0)], 14566 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14567 ] = None, 14568 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14569 _content_type: Optional[StrictStr] = None, 14570 _headers: Optional[Dict[StrictStr, Any]] = None, 14571 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14572 ) -> object: 14573 """Ungroup items 14574 14575 Ungroups items from a group.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 14576 14577 :param board_id: Unique identifier (ID) of the board. (required) 14578 :type board_id: str 14579 :param group_id: Unique identifier (ID) of the group. (required) 14580 :type group_id: str 14581 :param delete_items: Indicates whether the items should be removed. By default, false. 14582 :type delete_items: bool 14583 :param _request_timeout: timeout setting for this request. If one 14584 number provided, it will be total request 14585 timeout. It can also be a pair (tuple) of 14586 (connection, read) timeouts. 14587 :type _request_timeout: int, tuple(int, int), optional 14588 :param _request_auth: set to override the auth_settings for an a single 14589 request; this effectively ignores the 14590 authentication in the spec for a single request. 14591 :type _request_auth: dict, optional 14592 :param _content_type: force content-type for the request. 14593 :type _content_type: str, Optional 14594 :param _headers: set to override the headers for a single 14595 request; this effectively ignores the headers 14596 in the spec for a single request. 14597 :type _headers: dict, optional 14598 :param _host_index: set to override the host_index for a single 14599 request; this effectively ignores the host_index 14600 in the spec for a single request. 14601 :type _host_index: int, optional 14602 :return: Returns the result object. 14603 """ # noqa: E501 14604 14605 _param = self._un_group_serialize( 14606 board_id=board_id, 14607 group_id=group_id, 14608 delete_items=delete_items, 14609 _request_auth=_request_auth, 14610 _content_type=_content_type, 14611 _headers=_headers, 14612 _host_index=_host_index, 14613 ) 14614 14615 _response_types_map: Dict[str, Optional[str]] = { 14616 "204": "object", 14617 "400": "UnGroup400Response", 14618 "404": "UnGroup404Response", 14619 "429": "UnGroup429Response", 14620 } 14621 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14622 response_data.read() 14623 return self.api_client.response_deserialize( 14624 response_data=response_data, 14625 response_types_map=_response_types_map, 14626 ).data 14627 14628 def _un_group_serialize( 14629 self, 14630 board_id, 14631 group_id, 14632 delete_items, 14633 _request_auth, 14634 _content_type, 14635 _headers, 14636 _host_index, 14637 ) -> RequestSerialized: 14638 14639 _host = None 14640 14641 _collection_formats: Dict[str, str] = {} 14642 14643 _path_params: Dict[str, str] = {} 14644 _query_params: List[Tuple[str, str]] = [] 14645 _header_params: Dict[str, Optional[str]] = _headers or {} 14646 _form_params: List[Tuple[str, str]] = [] 14647 _files: Dict[str, str] = {} 14648 _body_params: Optional[bytes] = None 14649 14650 # process the path parameters 14651 if board_id is not None: 14652 _path_params["board_id"] = board_id 14653 if group_id is not None: 14654 _path_params["group_id"] = group_id 14655 # process the query parameters 14656 if delete_items is not None: 14657 14658 _query_params.append(("delete_items", delete_items)) 14659 14660 # process the header parameters 14661 # process the form parameters 14662 # process the body parameter 14663 14664 # set the HTTP header `Accept` 14665 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14666 14667 # authentication setting 14668 _auth_settings: List[str] = [] 14669 14670 return self.api_client.param_serialize( 14671 method="DELETE", 14672 resource_path="/v2/boards/{board_id}/groups/{group_id}", 14673 path_params=_path_params, 14674 query_params=_query_params, 14675 header_params=_header_params, 14676 body=_body_params, 14677 post_params=_form_params, 14678 files=_files, 14679 auth_settings=_auth_settings, 14680 collection_formats=_collection_formats, 14681 _host=_host, 14682 _request_auth=_request_auth, 14683 ) 14684 14685 @validate_call 14686 def update_group( 14687 self, 14688 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14689 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14690 group: Group, 14691 _request_timeout: Union[ 14692 None, 14693 Annotated[StrictFloat, Field(gt=0)], 14694 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14695 ] = None, 14696 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14697 _content_type: Optional[StrictStr] = None, 14698 _headers: Optional[Dict[StrictStr, Any]] = None, 14699 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14700 ) -> GroupResponseShort: 14701 """Updates a group with new items 14702 14703 This endpoint updates an existing group by replacing it entirely with a new group. When the update is made, the original group is completely replaced, and a new group ID is assigned. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14704 14705 :param board_id: Unique identifier (ID) of the board. (required) 14706 :type board_id: str 14707 :param group_id: Unique identifier (ID) of the group. (required) 14708 :type group_id: str 14709 :param group: (required) 14710 :type group: Group 14711 :param _request_timeout: timeout setting for this request. If one 14712 number provided, it will be total request 14713 timeout. It can also be a pair (tuple) of 14714 (connection, read) timeouts. 14715 :type _request_timeout: int, tuple(int, int), optional 14716 :param _request_auth: set to override the auth_settings for an a single 14717 request; this effectively ignores the 14718 authentication in the spec for a single request. 14719 :type _request_auth: dict, optional 14720 :param _content_type: force content-type for the request. 14721 :type _content_type: str, Optional 14722 :param _headers: set to override the headers for a single 14723 request; this effectively ignores the headers 14724 in the spec for a single request. 14725 :type _headers: dict, optional 14726 :param _host_index: set to override the host_index for a single 14727 request; this effectively ignores the host_index 14728 in the spec for a single request. 14729 :type _host_index: int, optional 14730 :return: Returns the result object. 14731 """ # noqa: E501 14732 14733 _param = self._update_group_serialize( 14734 board_id=board_id, 14735 group_id=group_id, 14736 group=group, 14737 _request_auth=_request_auth, 14738 _content_type=_content_type, 14739 _headers=_headers, 14740 _host_index=_host_index, 14741 ) 14742 14743 _response_types_map: Dict[str, Optional[str]] = { 14744 "200": "GroupResponseShort", 14745 "400": "GetAllGroups400Response", 14746 "404": "GetAllGroups404Response", 14747 "429": "GetAllGroups429Response", 14748 } 14749 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14750 response_data.read() 14751 return self.api_client.response_deserialize( 14752 response_data=response_data, 14753 response_types_map=_response_types_map, 14754 ).data 14755 14756 def _update_group_serialize( 14757 self, 14758 board_id, 14759 group_id, 14760 group, 14761 _request_auth, 14762 _content_type, 14763 _headers, 14764 _host_index, 14765 ) -> RequestSerialized: 14766 14767 _host = None 14768 14769 _collection_formats: Dict[str, str] = {} 14770 14771 _path_params: Dict[str, str] = {} 14772 _query_params: List[Tuple[str, str]] = [] 14773 _header_params: Dict[str, Optional[str]] = _headers or {} 14774 _form_params: List[Tuple[str, str]] = [] 14775 _files: Dict[str, str] = {} 14776 _body_params: Optional[bytes] = None 14777 14778 # process the path parameters 14779 if board_id is not None: 14780 _path_params["board_id"] = board_id 14781 if group_id is not None: 14782 _path_params["group_id"] = group_id 14783 # process the query parameters 14784 # process the header parameters 14785 # process the form parameters 14786 # process the body parameter 14787 if group is not None: 14788 _body_params = group 14789 14790 # set the HTTP header `Accept` 14791 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14792 14793 # set the HTTP header `Content-Type` 14794 if _content_type: 14795 _header_params["Content-Type"] = _content_type 14796 else: 14797 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 14798 if _default_content_type is not None: 14799 _header_params["Content-Type"] = _default_content_type 14800 14801 # authentication setting 14802 _auth_settings: List[str] = [] 14803 14804 return self.api_client.param_serialize( 14805 method="PUT", 14806 resource_path="/v2/boards/{board_id}/groups/{group_id}", 14807 path_params=_path_params, 14808 query_params=_query_params, 14809 header_params=_header_params, 14810 body=_body_params, 14811 post_params=_form_params, 14812 files=_files, 14813 auth_settings=_auth_settings, 14814 collection_formats=_collection_formats, 14815 _host=_host, 14816 _request_auth=_request_auth, 14817 ) 14818 14819 @validate_call 14820 def create_image_item_using_local_file( 14821 self, 14822 board_id_platform_file_upload: Annotated[ 14823 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 14824 ], 14825 resource: Annotated[ 14826 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 14827 ], 14828 data: Optional[UploadFileFromDeviceData] = None, 14829 _request_timeout: Union[ 14830 None, 14831 Annotated[StrictFloat, Field(gt=0)], 14832 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14833 ] = None, 14834 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14835 _content_type: Optional[StrictStr] = None, 14836 _headers: Optional[Dict[StrictStr, Any]] = None, 14837 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14838 ) -> ImageItem: 14839 """Create image item using file from device 14840 14841 Adds an image item to a board by specifying a file from device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14842 14843 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) 14844 :type board_id_platform_file_upload: str 14845 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 14846 :type resource: bytearray 14847 :param data: 14848 :type data: UploadFileFromDeviceData 14849 :param _request_timeout: timeout setting for this request. If one 14850 number provided, it will be total request 14851 timeout. It can also be a pair (tuple) of 14852 (connection, read) timeouts. 14853 :type _request_timeout: int, tuple(int, int), optional 14854 :param _request_auth: set to override the auth_settings for an a single 14855 request; this effectively ignores the 14856 authentication in the spec for a single request. 14857 :type _request_auth: dict, optional 14858 :param _content_type: force content-type for the request. 14859 :type _content_type: str, Optional 14860 :param _headers: set to override the headers for a single 14861 request; this effectively ignores the headers 14862 in the spec for a single request. 14863 :type _headers: dict, optional 14864 :param _host_index: set to override the host_index for a single 14865 request; this effectively ignores the host_index 14866 in the spec for a single request. 14867 :type _host_index: int, optional 14868 :return: Returns the result object. 14869 """ # noqa: E501 14870 14871 _param = self._create_image_item_using_local_file_serialize( 14872 board_id_platform_file_upload=board_id_platform_file_upload, 14873 resource=resource, 14874 data=data, 14875 _request_auth=_request_auth, 14876 _content_type=_content_type, 14877 _headers=_headers, 14878 _host_index=_host_index, 14879 ) 14880 14881 _response_types_map: Dict[str, Optional[str]] = { 14882 "201": "ImageItem", 14883 } 14884 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14885 response_data.read() 14886 return self.api_client.response_deserialize( 14887 response_data=response_data, 14888 response_types_map=_response_types_map, 14889 ).data 14890 14891 def _create_image_item_using_local_file_serialize( 14892 self, 14893 board_id_platform_file_upload, 14894 resource, 14895 data, 14896 _request_auth, 14897 _content_type, 14898 _headers, 14899 _host_index, 14900 ) -> RequestSerialized: 14901 14902 _host = None 14903 14904 _collection_formats: Dict[str, str] = {} 14905 14906 _path_params: Dict[str, str] = {} 14907 _query_params: List[Tuple[str, str]] = [] 14908 _header_params: Dict[str, Optional[str]] = _headers or {} 14909 _form_params: List[Tuple[str, str]] = [] 14910 _files: Dict[str, str] = {} 14911 _body_params: Optional[bytes] = None 14912 14913 # process the path parameters 14914 if board_id_platform_file_upload is not None: 14915 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 14916 # process the query parameters 14917 # process the header parameters 14918 # process the form parameters 14919 if data is not None: 14920 _form_params.append(("data", data)) 14921 if resource is not None: 14922 _files["resource"] = resource 14923 # process the body parameter 14924 14925 # set the HTTP header `Accept` 14926 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 14927 14928 # set the HTTP header `Content-Type` 14929 if _content_type: 14930 _header_params["Content-Type"] = _content_type 14931 else: 14932 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 14933 if _default_content_type is not None: 14934 _header_params["Content-Type"] = _default_content_type 14935 14936 # authentication setting 14937 _auth_settings: List[str] = [] 14938 14939 return self.api_client.param_serialize( 14940 method="POST", 14941 resource_path="/v2/boards/{board_id_PlatformFileUpload}/images", 14942 path_params=_path_params, 14943 query_params=_query_params, 14944 header_params=_header_params, 14945 body=_body_params, 14946 post_params=_form_params, 14947 files=_files, 14948 auth_settings=_auth_settings, 14949 collection_formats=_collection_formats, 14950 _host=_host, 14951 _request_auth=_request_auth, 14952 ) 14953 14954 @validate_call 14955 def create_image_item_using_url( 14956 self, 14957 board_id: Annotated[ 14958 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 14959 ], 14960 image_create_request: ImageCreateRequest, 14961 _request_timeout: Union[ 14962 None, 14963 Annotated[StrictFloat, Field(gt=0)], 14964 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14965 ] = None, 14966 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14967 _content_type: Optional[StrictStr] = None, 14968 _headers: Optional[Dict[StrictStr, Any]] = None, 14969 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14970 ) -> ImageItem: 14971 """Create image item using URL 14972 14973 Adds an image item to a board by specifying an image URL.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14974 14975 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 14976 :type board_id: str 14977 :param image_create_request: (required) 14978 :type image_create_request: ImageCreateRequest 14979 :param _request_timeout: timeout setting for this request. If one 14980 number provided, it will be total request 14981 timeout. It can also be a pair (tuple) of 14982 (connection, read) timeouts. 14983 :type _request_timeout: int, tuple(int, int), optional 14984 :param _request_auth: set to override the auth_settings for an a single 14985 request; this effectively ignores the 14986 authentication in the spec for a single request. 14987 :type _request_auth: dict, optional 14988 :param _content_type: force content-type for the request. 14989 :type _content_type: str, Optional 14990 :param _headers: set to override the headers for a single 14991 request; this effectively ignores the headers 14992 in the spec for a single request. 14993 :type _headers: dict, optional 14994 :param _host_index: set to override the host_index for a single 14995 request; this effectively ignores the host_index 14996 in the spec for a single request. 14997 :type _host_index: int, optional 14998 :return: Returns the result object. 14999 """ # noqa: E501 15000 15001 _param = self._create_image_item_using_url_serialize( 15002 board_id=board_id, 15003 image_create_request=image_create_request, 15004 _request_auth=_request_auth, 15005 _content_type=_content_type, 15006 _headers=_headers, 15007 _host_index=_host_index, 15008 ) 15009 15010 _response_types_map: Dict[str, Optional[str]] = { 15011 "201": "ImageItem", 15012 "400": None, 15013 "404": None, 15014 "429": None, 15015 } 15016 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15017 response_data.read() 15018 return self.api_client.response_deserialize( 15019 response_data=response_data, 15020 response_types_map=_response_types_map, 15021 ).data 15022 15023 def _create_image_item_using_url_serialize( 15024 self, 15025 board_id, 15026 image_create_request, 15027 _request_auth, 15028 _content_type, 15029 _headers, 15030 _host_index, 15031 ) -> RequestSerialized: 15032 15033 _host = None 15034 15035 _collection_formats: Dict[str, str] = {} 15036 15037 _path_params: Dict[str, str] = {} 15038 _query_params: List[Tuple[str, str]] = [] 15039 _header_params: Dict[str, Optional[str]] = _headers or {} 15040 _form_params: List[Tuple[str, str]] = [] 15041 _files: Dict[str, str] = {} 15042 _body_params: Optional[bytes] = None 15043 15044 # process the path parameters 15045 if board_id is not None: 15046 _path_params["board_id"] = board_id 15047 # process the query parameters 15048 # process the header parameters 15049 # process the form parameters 15050 # process the body parameter 15051 if image_create_request is not None: 15052 _body_params = image_create_request 15053 15054 # set the HTTP header `Accept` 15055 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15056 15057 # set the HTTP header `Content-Type` 15058 if _content_type: 15059 _header_params["Content-Type"] = _content_type 15060 else: 15061 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 15062 if _default_content_type is not None: 15063 _header_params["Content-Type"] = _default_content_type 15064 15065 # authentication setting 15066 _auth_settings: List[str] = [] 15067 15068 return self.api_client.param_serialize( 15069 method="POST", 15070 resource_path="/v2/boards/{board_id}/images", 15071 path_params=_path_params, 15072 query_params=_query_params, 15073 header_params=_header_params, 15074 body=_body_params, 15075 post_params=_form_params, 15076 files=_files, 15077 auth_settings=_auth_settings, 15078 collection_formats=_collection_formats, 15079 _host=_host, 15080 _request_auth=_request_auth, 15081 ) 15082 15083 @validate_call 15084 def delete_image_item( 15085 self, 15086 board_id: Annotated[ 15087 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15088 ], 15089 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15090 _request_timeout: Union[ 15091 None, 15092 Annotated[StrictFloat, Field(gt=0)], 15093 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15094 ] = None, 15095 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15096 _content_type: Optional[StrictStr] = None, 15097 _headers: Optional[Dict[StrictStr, Any]] = None, 15098 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15099 ) -> object: 15100 """Delete image item 15101 15102 Deletes an image item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15103 15104 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15105 :type board_id: str 15106 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15107 :type item_id: str 15108 :param _request_timeout: timeout setting for this request. If one 15109 number provided, it will be total request 15110 timeout. It can also be a pair (tuple) of 15111 (connection, read) timeouts. 15112 :type _request_timeout: int, tuple(int, int), optional 15113 :param _request_auth: set to override the auth_settings for an a single 15114 request; this effectively ignores the 15115 authentication in the spec for a single request. 15116 :type _request_auth: dict, optional 15117 :param _content_type: force content-type for the request. 15118 :type _content_type: str, Optional 15119 :param _headers: set to override the headers for a single 15120 request; this effectively ignores the headers 15121 in the spec for a single request. 15122 :type _headers: dict, optional 15123 :param _host_index: set to override the host_index for a single 15124 request; this effectively ignores the host_index 15125 in the spec for a single request. 15126 :type _host_index: int, optional 15127 :return: Returns the result object. 15128 """ # noqa: E501 15129 15130 _param = self._delete_image_item_serialize( 15131 board_id=board_id, 15132 item_id=item_id, 15133 _request_auth=_request_auth, 15134 _content_type=_content_type, 15135 _headers=_headers, 15136 _host_index=_host_index, 15137 ) 15138 15139 _response_types_map: Dict[str, Optional[str]] = { 15140 "204": "object", 15141 "400": None, 15142 "404": None, 15143 "429": None, 15144 } 15145 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15146 response_data.read() 15147 return self.api_client.response_deserialize( 15148 response_data=response_data, 15149 response_types_map=_response_types_map, 15150 ).data 15151 15152 def _delete_image_item_serialize( 15153 self, 15154 board_id, 15155 item_id, 15156 _request_auth, 15157 _content_type, 15158 _headers, 15159 _host_index, 15160 ) -> RequestSerialized: 15161 15162 _host = None 15163 15164 _collection_formats: Dict[str, str] = {} 15165 15166 _path_params: Dict[str, str] = {} 15167 _query_params: List[Tuple[str, str]] = [] 15168 _header_params: Dict[str, Optional[str]] = _headers or {} 15169 _form_params: List[Tuple[str, str]] = [] 15170 _files: Dict[str, str] = {} 15171 _body_params: Optional[bytes] = None 15172 15173 # process the path parameters 15174 if board_id is not None: 15175 _path_params["board_id"] = board_id 15176 if item_id is not None: 15177 _path_params["item_id"] = item_id 15178 # process the query parameters 15179 # process the header parameters 15180 # process the form parameters 15181 # process the body parameter 15182 15183 # set the HTTP header `Accept` 15184 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15185 15186 # authentication setting 15187 _auth_settings: List[str] = [] 15188 15189 return self.api_client.param_serialize( 15190 method="DELETE", 15191 resource_path="/v2/boards/{board_id}/images/{item_id}", 15192 path_params=_path_params, 15193 query_params=_query_params, 15194 header_params=_header_params, 15195 body=_body_params, 15196 post_params=_form_params, 15197 files=_files, 15198 auth_settings=_auth_settings, 15199 collection_formats=_collection_formats, 15200 _host=_host, 15201 _request_auth=_request_auth, 15202 ) 15203 15204 @validate_call 15205 def get_image_item( 15206 self, 15207 board_id: Annotated[ 15208 StrictStr, 15209 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 15210 ], 15211 item_id: Annotated[ 15212 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 15213 ], 15214 _request_timeout: Union[ 15215 None, 15216 Annotated[StrictFloat, Field(gt=0)], 15217 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15218 ] = None, 15219 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15220 _content_type: Optional[StrictStr] = None, 15221 _headers: Optional[Dict[StrictStr, Any]] = None, 15222 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15223 ) -> ImageItem: 15224 """Get image item 15225 15226 Retrieves information for a specific image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 15227 15228 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 15229 :type board_id: str 15230 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 15231 :type item_id: str 15232 :param _request_timeout: timeout setting for this request. If one 15233 number provided, it will be total request 15234 timeout. It can also be a pair (tuple) of 15235 (connection, read) timeouts. 15236 :type _request_timeout: int, tuple(int, int), optional 15237 :param _request_auth: set to override the auth_settings for an a single 15238 request; this effectively ignores the 15239 authentication in the spec for a single request. 15240 :type _request_auth: dict, optional 15241 :param _content_type: force content-type for the request. 15242 :type _content_type: str, Optional 15243 :param _headers: set to override the headers for a single 15244 request; this effectively ignores the headers 15245 in the spec for a single request. 15246 :type _headers: dict, optional 15247 :param _host_index: set to override the host_index for a single 15248 request; this effectively ignores the host_index 15249 in the spec for a single request. 15250 :type _host_index: int, optional 15251 :return: Returns the result object. 15252 """ # noqa: E501 15253 15254 _param = self._get_image_item_serialize( 15255 board_id=board_id, 15256 item_id=item_id, 15257 _request_auth=_request_auth, 15258 _content_type=_content_type, 15259 _headers=_headers, 15260 _host_index=_host_index, 15261 ) 15262 15263 _response_types_map: Dict[str, Optional[str]] = { 15264 "200": "ImageItem", 15265 "400": None, 15266 "404": None, 15267 "429": None, 15268 } 15269 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15270 response_data.read() 15271 return self.api_client.response_deserialize( 15272 response_data=response_data, 15273 response_types_map=_response_types_map, 15274 ).data 15275 15276 def _get_image_item_serialize( 15277 self, 15278 board_id, 15279 item_id, 15280 _request_auth, 15281 _content_type, 15282 _headers, 15283 _host_index, 15284 ) -> RequestSerialized: 15285 15286 _host = None 15287 15288 _collection_formats: Dict[str, str] = {} 15289 15290 _path_params: Dict[str, str] = {} 15291 _query_params: List[Tuple[str, str]] = [] 15292 _header_params: Dict[str, Optional[str]] = _headers or {} 15293 _form_params: List[Tuple[str, str]] = [] 15294 _files: Dict[str, str] = {} 15295 _body_params: Optional[bytes] = None 15296 15297 # process the path parameters 15298 if board_id is not None: 15299 _path_params["board_id"] = board_id 15300 if item_id is not None: 15301 _path_params["item_id"] = item_id 15302 # process the query parameters 15303 # process the header parameters 15304 # process the form parameters 15305 # process the body parameter 15306 15307 # set the HTTP header `Accept` 15308 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15309 15310 # authentication setting 15311 _auth_settings: List[str] = [] 15312 15313 return self.api_client.param_serialize( 15314 method="GET", 15315 resource_path="/v2/boards/{board_id}/images/{item_id}", 15316 path_params=_path_params, 15317 query_params=_query_params, 15318 header_params=_header_params, 15319 body=_body_params, 15320 post_params=_form_params, 15321 files=_files, 15322 auth_settings=_auth_settings, 15323 collection_formats=_collection_formats, 15324 _host=_host, 15325 _request_auth=_request_auth, 15326 ) 15327 15328 @validate_call 15329 def update_image_item_using_file_from_device( 15330 self, 15331 board_id_platform_file_upload: Annotated[ 15332 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 15333 ], 15334 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 15335 resource: Annotated[ 15336 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 15337 ], 15338 data: Optional[UploadFileFromDeviceData] = None, 15339 _request_timeout: Union[ 15340 None, 15341 Annotated[StrictFloat, Field(gt=0)], 15342 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15343 ] = None, 15344 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15345 _content_type: Optional[StrictStr] = None, 15346 _headers: Optional[Dict[StrictStr, Any]] = None, 15347 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15348 ) -> ImageItem: 15349 """Update image item using file from device 15350 15351 Updates an image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15352 15353 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) 15354 :type board_id_platform_file_upload: str 15355 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 15356 :type item_id: str 15357 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 15358 :type resource: bytearray 15359 :param data: 15360 :type data: UploadFileFromDeviceData 15361 :param _request_timeout: timeout setting for this request. If one 15362 number provided, it will be total request 15363 timeout. It can also be a pair (tuple) of 15364 (connection, read) timeouts. 15365 :type _request_timeout: int, tuple(int, int), optional 15366 :param _request_auth: set to override the auth_settings for an a single 15367 request; this effectively ignores the 15368 authentication in the spec for a single request. 15369 :type _request_auth: dict, optional 15370 :param _content_type: force content-type for the request. 15371 :type _content_type: str, Optional 15372 :param _headers: set to override the headers for a single 15373 request; this effectively ignores the headers 15374 in the spec for a single request. 15375 :type _headers: dict, optional 15376 :param _host_index: set to override the host_index for a single 15377 request; this effectively ignores the host_index 15378 in the spec for a single request. 15379 :type _host_index: int, optional 15380 :return: Returns the result object. 15381 """ # noqa: E501 15382 15383 _param = self._update_image_item_using_file_from_device_serialize( 15384 board_id_platform_file_upload=board_id_platform_file_upload, 15385 item_id=item_id, 15386 resource=resource, 15387 data=data, 15388 _request_auth=_request_auth, 15389 _content_type=_content_type, 15390 _headers=_headers, 15391 _host_index=_host_index, 15392 ) 15393 15394 _response_types_map: Dict[str, Optional[str]] = { 15395 "200": "ImageItem", 15396 } 15397 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15398 response_data.read() 15399 return self.api_client.response_deserialize( 15400 response_data=response_data, 15401 response_types_map=_response_types_map, 15402 ).data 15403 15404 def _update_image_item_using_file_from_device_serialize( 15405 self, 15406 board_id_platform_file_upload, 15407 item_id, 15408 resource, 15409 data, 15410 _request_auth, 15411 _content_type, 15412 _headers, 15413 _host_index, 15414 ) -> RequestSerialized: 15415 15416 _host = None 15417 15418 _collection_formats: Dict[str, str] = {} 15419 15420 _path_params: Dict[str, str] = {} 15421 _query_params: List[Tuple[str, str]] = [] 15422 _header_params: Dict[str, Optional[str]] = _headers or {} 15423 _form_params: List[Tuple[str, str]] = [] 15424 _files: Dict[str, str] = {} 15425 _body_params: Optional[bytes] = None 15426 15427 # process the path parameters 15428 if board_id_platform_file_upload is not None: 15429 _path_params["board_id_PlatformFileUpload"] = board_id_platform_file_upload 15430 if item_id is not None: 15431 _path_params["item_id"] = item_id 15432 # process the query parameters 15433 # process the header parameters 15434 # process the form parameters 15435 if data is not None: 15436 _form_params.append(("data", data)) 15437 if resource is not None: 15438 _files["resource"] = resource 15439 # process the body parameter 15440 15441 # set the HTTP header `Accept` 15442 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15443 15444 # set the HTTP header `Content-Type` 15445 if _content_type: 15446 _header_params["Content-Type"] = _content_type 15447 else: 15448 _default_content_type = self.api_client.select_header_content_type(["multipart/form-data"]) 15449 if _default_content_type is not None: 15450 _header_params["Content-Type"] = _default_content_type 15451 15452 # authentication setting 15453 _auth_settings: List[str] = [] 15454 15455 return self.api_client.param_serialize( 15456 method="PATCH", 15457 resource_path="/v2/boards/{board_id_PlatformFileUpload}/images/{item_id}", 15458 path_params=_path_params, 15459 query_params=_query_params, 15460 header_params=_header_params, 15461 body=_body_params, 15462 post_params=_form_params, 15463 files=_files, 15464 auth_settings=_auth_settings, 15465 collection_formats=_collection_formats, 15466 _host=_host, 15467 _request_auth=_request_auth, 15468 ) 15469 15470 @validate_call 15471 def update_image_item_using_url( 15472 self, 15473 board_id: Annotated[ 15474 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 15475 ], 15476 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 15477 image_update_request: ImageUpdateRequest, 15478 _request_timeout: Union[ 15479 None, 15480 Annotated[StrictFloat, Field(gt=0)], 15481 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15482 ] = None, 15483 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15484 _content_type: Optional[StrictStr] = None, 15485 _headers: Optional[Dict[StrictStr, Any]] = None, 15486 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15487 ) -> ImageItem: 15488 """Update image item using URL 15489 15490 Updates an image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15491 15492 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 15493 :type board_id: str 15494 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 15495 :type item_id: str 15496 :param image_update_request: (required) 15497 :type image_update_request: ImageUpdateRequest 15498 :param _request_timeout: timeout setting for this request. If one 15499 number provided, it will be total request 15500 timeout. It can also be a pair (tuple) of 15501 (connection, read) timeouts. 15502 :type _request_timeout: int, tuple(int, int), optional 15503 :param _request_auth: set to override the auth_settings for an a single 15504 request; this effectively ignores the 15505 authentication in the spec for a single request. 15506 :type _request_auth: dict, optional 15507 :param _content_type: force content-type for the request. 15508 :type _content_type: str, Optional 15509 :param _headers: set to override the headers for a single 15510 request; this effectively ignores the headers 15511 in the spec for a single request. 15512 :type _headers: dict, optional 15513 :param _host_index: set to override the host_index for a single 15514 request; this effectively ignores the host_index 15515 in the spec for a single request. 15516 :type _host_index: int, optional 15517 :return: Returns the result object. 15518 """ # noqa: E501 15519 15520 _param = self._update_image_item_using_url_serialize( 15521 board_id=board_id, 15522 item_id=item_id, 15523 image_update_request=image_update_request, 15524 _request_auth=_request_auth, 15525 _content_type=_content_type, 15526 _headers=_headers, 15527 _host_index=_host_index, 15528 ) 15529 15530 _response_types_map: Dict[str, Optional[str]] = { 15531 "200": "ImageItem", 15532 "400": None, 15533 "404": None, 15534 "409": None, 15535 "429": None, 15536 } 15537 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15538 response_data.read() 15539 return self.api_client.response_deserialize( 15540 response_data=response_data, 15541 response_types_map=_response_types_map, 15542 ).data 15543 15544 def _update_image_item_using_url_serialize( 15545 self, 15546 board_id, 15547 item_id, 15548 image_update_request, 15549 _request_auth, 15550 _content_type, 15551 _headers, 15552 _host_index, 15553 ) -> RequestSerialized: 15554 15555 _host = None 15556 15557 _collection_formats: Dict[str, str] = {} 15558 15559 _path_params: Dict[str, str] = {} 15560 _query_params: List[Tuple[str, str]] = [] 15561 _header_params: Dict[str, Optional[str]] = _headers or {} 15562 _form_params: List[Tuple[str, str]] = [] 15563 _files: Dict[str, str] = {} 15564 _body_params: Optional[bytes] = None 15565 15566 # process the path parameters 15567 if board_id is not None: 15568 _path_params["board_id"] = board_id 15569 if item_id is not None: 15570 _path_params["item_id"] = item_id 15571 # process the query parameters 15572 # process the header parameters 15573 # process the form parameters 15574 # process the body parameter 15575 if image_update_request is not None: 15576 _body_params = image_update_request 15577 15578 # set the HTTP header `Accept` 15579 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15580 15581 # set the HTTP header `Content-Type` 15582 if _content_type: 15583 _header_params["Content-Type"] = _content_type 15584 else: 15585 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 15586 if _default_content_type is not None: 15587 _header_params["Content-Type"] = _default_content_type 15588 15589 # authentication setting 15590 _auth_settings: List[str] = [] 15591 15592 return self.api_client.param_serialize( 15593 method="PATCH", 15594 resource_path="/v2/boards/{board_id}/images/{item_id}", 15595 path_params=_path_params, 15596 query_params=_query_params, 15597 header_params=_header_params, 15598 body=_body_params, 15599 post_params=_form_params, 15600 files=_files, 15601 auth_settings=_auth_settings, 15602 collection_formats=_collection_formats, 15603 _host=_host, 15604 _request_auth=_request_auth, 15605 ) 15606 15607 @validate_call 15608 def delete_item( 15609 self, 15610 board_id: Annotated[ 15611 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15612 ], 15613 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15614 _request_timeout: Union[ 15615 None, 15616 Annotated[StrictFloat, Field(gt=0)], 15617 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15618 ] = None, 15619 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15620 _content_type: Optional[StrictStr] = None, 15621 _headers: Optional[Dict[StrictStr, Any]] = None, 15622 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15623 ) -> object: 15624 """Delete item 15625 15626 Deletes an item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15627 15628 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15629 :type board_id: str 15630 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15631 :type item_id: str 15632 :param _request_timeout: timeout setting for this request. If one 15633 number provided, it will be total request 15634 timeout. It can also be a pair (tuple) of 15635 (connection, read) timeouts. 15636 :type _request_timeout: int, tuple(int, int), optional 15637 :param _request_auth: set to override the auth_settings for an a single 15638 request; this effectively ignores the 15639 authentication in the spec for a single request. 15640 :type _request_auth: dict, optional 15641 :param _content_type: force content-type for the request. 15642 :type _content_type: str, Optional 15643 :param _headers: set to override the headers for a single 15644 request; this effectively ignores the headers 15645 in the spec for a single request. 15646 :type _headers: dict, optional 15647 :param _host_index: set to override the host_index for a single 15648 request; this effectively ignores the host_index 15649 in the spec for a single request. 15650 :type _host_index: int, optional 15651 :return: Returns the result object. 15652 """ # noqa: E501 15653 15654 _param = self._delete_item_serialize( 15655 board_id=board_id, 15656 item_id=item_id, 15657 _request_auth=_request_auth, 15658 _content_type=_content_type, 15659 _headers=_headers, 15660 _host_index=_host_index, 15661 ) 15662 15663 _response_types_map: Dict[str, Optional[str]] = { 15664 "204": "object", 15665 "400": None, 15666 "404": None, 15667 "429": None, 15668 } 15669 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15670 response_data.read() 15671 return self.api_client.response_deserialize( 15672 response_data=response_data, 15673 response_types_map=_response_types_map, 15674 ).data 15675 15676 def _delete_item_serialize( 15677 self, 15678 board_id, 15679 item_id, 15680 _request_auth, 15681 _content_type, 15682 _headers, 15683 _host_index, 15684 ) -> RequestSerialized: 15685 15686 _host = None 15687 15688 _collection_formats: Dict[str, str] = {} 15689 15690 _path_params: Dict[str, str] = {} 15691 _query_params: List[Tuple[str, str]] = [] 15692 _header_params: Dict[str, Optional[str]] = _headers or {} 15693 _form_params: List[Tuple[str, str]] = [] 15694 _files: Dict[str, str] = {} 15695 _body_params: Optional[bytes] = None 15696 15697 # process the path parameters 15698 if board_id is not None: 15699 _path_params["board_id"] = board_id 15700 if item_id is not None: 15701 _path_params["item_id"] = item_id 15702 # process the query parameters 15703 # process the header parameters 15704 # process the form parameters 15705 # process the body parameter 15706 15707 # set the HTTP header `Accept` 15708 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15709 15710 # authentication setting 15711 _auth_settings: List[str] = [] 15712 15713 return self.api_client.param_serialize( 15714 method="DELETE", 15715 resource_path="/v2/boards/{board_id}/items/{item_id}", 15716 path_params=_path_params, 15717 query_params=_query_params, 15718 header_params=_header_params, 15719 body=_body_params, 15720 post_params=_form_params, 15721 files=_files, 15722 auth_settings=_auth_settings, 15723 collection_formats=_collection_formats, 15724 _host=_host, 15725 _request_auth=_request_auth, 15726 ) 15727 15728 @validate_call 15729 def delete_item_experimental( 15730 self, 15731 board_id: Annotated[ 15732 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15733 ], 15734 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15735 _request_timeout: Union[ 15736 None, 15737 Annotated[StrictFloat, Field(gt=0)], 15738 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15739 ] = None, 15740 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15741 _content_type: Optional[StrictStr] = None, 15742 _headers: Optional[Dict[StrictStr, Any]] = None, 15743 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15744 ) -> object: 15745 """Delete item 15746 15747 Deletes an item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15748 15749 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15750 :type board_id: str 15751 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15752 :type item_id: str 15753 :param _request_timeout: timeout setting for this request. If one 15754 number provided, it will be total request 15755 timeout. It can also be a pair (tuple) of 15756 (connection, read) timeouts. 15757 :type _request_timeout: int, tuple(int, int), optional 15758 :param _request_auth: set to override the auth_settings for an a single 15759 request; this effectively ignores the 15760 authentication in the spec for a single request. 15761 :type _request_auth: dict, optional 15762 :param _content_type: force content-type for the request. 15763 :type _content_type: str, Optional 15764 :param _headers: set to override the headers for a single 15765 request; this effectively ignores the headers 15766 in the spec for a single request. 15767 :type _headers: dict, optional 15768 :param _host_index: set to override the host_index for a single 15769 request; this effectively ignores the host_index 15770 in the spec for a single request. 15771 :type _host_index: int, optional 15772 :return: Returns the result object. 15773 """ # noqa: E501 15774 15775 _param = self._delete_item_experimental_serialize( 15776 board_id=board_id, 15777 item_id=item_id, 15778 _request_auth=_request_auth, 15779 _content_type=_content_type, 15780 _headers=_headers, 15781 _host_index=_host_index, 15782 ) 15783 15784 _response_types_map: Dict[str, Optional[str]] = { 15785 "204": "object", 15786 "400": "CreateFrameItem400Response", 15787 "404": "CreateFrameItem400Response", 15788 "429": "CreateFrameItem400Response", 15789 } 15790 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15791 response_data.read() 15792 return self.api_client.response_deserialize( 15793 response_data=response_data, 15794 response_types_map=_response_types_map, 15795 ).data 15796 15797 def _delete_item_experimental_serialize( 15798 self, 15799 board_id, 15800 item_id, 15801 _request_auth, 15802 _content_type, 15803 _headers, 15804 _host_index, 15805 ) -> RequestSerialized: 15806 15807 _host = None 15808 15809 _collection_formats: Dict[str, str] = {} 15810 15811 _path_params: Dict[str, str] = {} 15812 _query_params: List[Tuple[str, str]] = [] 15813 _header_params: Dict[str, Optional[str]] = _headers or {} 15814 _form_params: List[Tuple[str, str]] = [] 15815 _files: Dict[str, str] = {} 15816 _body_params: Optional[bytes] = None 15817 15818 # process the path parameters 15819 if board_id is not None: 15820 _path_params["board_id"] = board_id 15821 if item_id is not None: 15822 _path_params["item_id"] = item_id 15823 # process the query parameters 15824 # process the header parameters 15825 # process the form parameters 15826 # process the body parameter 15827 15828 # set the HTTP header `Accept` 15829 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15830 15831 # authentication setting 15832 _auth_settings: List[str] = [] 15833 15834 return self.api_client.param_serialize( 15835 method="DELETE", 15836 resource_path="/v2-experimental/boards/{board_id}/items/{item_id}", 15837 path_params=_path_params, 15838 query_params=_query_params, 15839 header_params=_header_params, 15840 body=_body_params, 15841 post_params=_form_params, 15842 files=_files, 15843 auth_settings=_auth_settings, 15844 collection_formats=_collection_formats, 15845 _host=_host, 15846 _request_auth=_request_auth, 15847 ) 15848 15849 @validate_call 15850 def get_items( 15851 self, 15852 board_id: Annotated[ 15853 StrictStr, 15854 Field( 15855 description="Unique identifier (ID) of the board for which you want to retrieve the list of available items." 15856 ), 15857 ], 15858 limit: Optional[Annotated[str, Field(strict=True)]] = None, 15859 type: Optional[StrictStr] = None, 15860 cursor: Optional[StrictStr] = None, 15861 _request_timeout: Union[ 15862 None, 15863 Annotated[StrictFloat, Field(gt=0)], 15864 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15865 ] = None, 15866 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15867 _content_type: Optional[StrictStr] = None, 15868 _headers: Optional[Dict[StrictStr, Any]] = None, 15869 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15870 ) -> GenericItemCursorPaged: 15871 """Get items on board 15872 15873 Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15874 15875 :param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) 15876 :type board_id: str 15877 :param limit: 15878 :type limit: str 15879 :param type: 15880 :type type: str 15881 :param cursor: 15882 :type cursor: str 15883 :param _request_timeout: timeout setting for this request. If one 15884 number provided, it will be total request 15885 timeout. It can also be a pair (tuple) of 15886 (connection, read) timeouts. 15887 :type _request_timeout: int, tuple(int, int), optional 15888 :param _request_auth: set to override the auth_settings for an a single 15889 request; this effectively ignores the 15890 authentication in the spec for a single request. 15891 :type _request_auth: dict, optional 15892 :param _content_type: force content-type for the request. 15893 :type _content_type: str, Optional 15894 :param _headers: set to override the headers for a single 15895 request; this effectively ignores the headers 15896 in the spec for a single request. 15897 :type _headers: dict, optional 15898 :param _host_index: set to override the host_index for a single 15899 request; this effectively ignores the host_index 15900 in the spec for a single request. 15901 :type _host_index: int, optional 15902 :return: Returns the result object. 15903 """ # noqa: E501 15904 15905 _param = self._get_items_serialize( 15906 board_id=board_id, 15907 limit=limit, 15908 type=type, 15909 cursor=cursor, 15910 _request_auth=_request_auth, 15911 _content_type=_content_type, 15912 _headers=_headers, 15913 _host_index=_host_index, 15914 ) 15915 15916 _response_types_map: Dict[str, Optional[str]] = { 15917 "200": "GenericItemCursorPaged", 15918 "400": None, 15919 "404": None, 15920 "429": None, 15921 } 15922 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15923 response_data.read() 15924 return self.api_client.response_deserialize( 15925 response_data=response_data, 15926 response_types_map=_response_types_map, 15927 ).data 15928 15929 def _get_items_serialize( 15930 self, 15931 board_id, 15932 limit, 15933 type, 15934 cursor, 15935 _request_auth, 15936 _content_type, 15937 _headers, 15938 _host_index, 15939 ) -> RequestSerialized: 15940 15941 _host = None 15942 15943 _collection_formats: Dict[str, str] = {} 15944 15945 _path_params: Dict[str, str] = {} 15946 _query_params: List[Tuple[str, str]] = [] 15947 _header_params: Dict[str, Optional[str]] = _headers or {} 15948 _form_params: List[Tuple[str, str]] = [] 15949 _files: Dict[str, str] = {} 15950 _body_params: Optional[bytes] = None 15951 15952 # process the path parameters 15953 if board_id is not None: 15954 _path_params["board_id"] = board_id 15955 # process the query parameters 15956 if limit is not None: 15957 15958 _query_params.append(("limit", limit)) 15959 15960 if type is not None: 15961 15962 _query_params.append(("type", type)) 15963 15964 if cursor is not None: 15965 15966 _query_params.append(("cursor", cursor)) 15967 15968 # process the header parameters 15969 # process the form parameters 15970 # process the body parameter 15971 15972 # set the HTTP header `Accept` 15973 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 15974 15975 # authentication setting 15976 _auth_settings: List[str] = [] 15977 15978 return self.api_client.param_serialize( 15979 method="GET", 15980 resource_path="/v2/boards/{board_id}/items", 15981 path_params=_path_params, 15982 query_params=_query_params, 15983 header_params=_header_params, 15984 body=_body_params, 15985 post_params=_form_params, 15986 files=_files, 15987 auth_settings=_auth_settings, 15988 collection_formats=_collection_formats, 15989 _host=_host, 15990 _request_auth=_request_auth, 15991 ) 15992 15993 @validate_call 15994 def get_items_within_frame( 15995 self, 15996 board_id_platform_containers: Annotated[ 15997 StrictStr, 15998 Field( 15999 description="Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items." 16000 ), 16001 ], 16002 parent_item_id: Annotated[ 16003 str, 16004 Field( 16005 strict=True, description="ID of the frame for which you want to retrieve the list of available items." 16006 ), 16007 ], 16008 limit: Optional[Annotated[str, Field(strict=True)]] = None, 16009 type: Optional[StrictStr] = None, 16010 cursor: Optional[StrictStr] = None, 16011 _request_timeout: Union[ 16012 None, 16013 Annotated[StrictFloat, Field(gt=0)], 16014 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16015 ] = None, 16016 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16017 _content_type: Optional[StrictStr] = None, 16018 _headers: Optional[Dict[StrictStr, Any]] = None, 16019 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16020 ) -> GenericItemCursorPaged: 16021 """Get items within frame 16022 16023 Retrieves a list of items within a specific frame. A frame is a parent item and all items within a frame are child items. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16024 16025 :param board_id_platform_containers: Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items. (required) 16026 :type board_id_platform_containers: str 16027 :param parent_item_id: ID of the frame for which you want to retrieve the list of available items. (required) 16028 :type parent_item_id: str 16029 :param limit: 16030 :type limit: str 16031 :param type: 16032 :type type: str 16033 :param cursor: 16034 :type cursor: str 16035 :param _request_timeout: timeout setting for this request. If one 16036 number provided, it will be total request 16037 timeout. It can also be a pair (tuple) of 16038 (connection, read) timeouts. 16039 :type _request_timeout: int, tuple(int, int), optional 16040 :param _request_auth: set to override the auth_settings for an a single 16041 request; this effectively ignores the 16042 authentication in the spec for a single request. 16043 :type _request_auth: dict, optional 16044 :param _content_type: force content-type for the request. 16045 :type _content_type: str, Optional 16046 :param _headers: set to override the headers for a single 16047 request; this effectively ignores the headers 16048 in the spec for a single request. 16049 :type _headers: dict, optional 16050 :param _host_index: set to override the host_index for a single 16051 request; this effectively ignores the host_index 16052 in the spec for a single request. 16053 :type _host_index: int, optional 16054 :return: Returns the result object. 16055 """ # noqa: E501 16056 16057 _param = self._get_items_within_frame_serialize( 16058 board_id_platform_containers=board_id_platform_containers, 16059 parent_item_id=parent_item_id, 16060 limit=limit, 16061 type=type, 16062 cursor=cursor, 16063 _request_auth=_request_auth, 16064 _content_type=_content_type, 16065 _headers=_headers, 16066 _host_index=_host_index, 16067 ) 16068 16069 _response_types_map: Dict[str, Optional[str]] = { 16070 "200": "GenericItemCursorPaged", 16071 "400": "CreateFrameItem400Response", 16072 "404": "CreateFrameItem400Response", 16073 "429": "CreateFrameItem400Response", 16074 } 16075 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16076 response_data.read() 16077 return self.api_client.response_deserialize( 16078 response_data=response_data, 16079 response_types_map=_response_types_map, 16080 ).data 16081 16082 def _get_items_within_frame_serialize( 16083 self, 16084 board_id_platform_containers, 16085 parent_item_id, 16086 limit, 16087 type, 16088 cursor, 16089 _request_auth, 16090 _content_type, 16091 _headers, 16092 _host_index, 16093 ) -> RequestSerialized: 16094 16095 _host = None 16096 16097 _collection_formats: Dict[str, str] = {} 16098 16099 _path_params: Dict[str, str] = {} 16100 _query_params: List[Tuple[str, str]] = [] 16101 _header_params: Dict[str, Optional[str]] = _headers or {} 16102 _form_params: List[Tuple[str, str]] = [] 16103 _files: Dict[str, str] = {} 16104 _body_params: Optional[bytes] = None 16105 16106 # process the path parameters 16107 if board_id_platform_containers is not None: 16108 _path_params["board_id_PlatformContainers"] = board_id_platform_containers 16109 # process the query parameters 16110 if parent_item_id is not None: 16111 16112 _query_params.append(("parent_item_id", parent_item_id)) 16113 16114 if limit is not None: 16115 16116 _query_params.append(("limit", limit)) 16117 16118 if type is not None: 16119 16120 _query_params.append(("type", type)) 16121 16122 if cursor is not None: 16123 16124 _query_params.append(("cursor", cursor)) 16125 16126 # process the header parameters 16127 # process the form parameters 16128 # process the body parameter 16129 16130 # set the HTTP header `Accept` 16131 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16132 16133 # authentication setting 16134 _auth_settings: List[str] = [] 16135 16136 return self.api_client.param_serialize( 16137 method="GET", 16138 resource_path="/v2/boards/{board_id_PlatformContainers}/items", 16139 path_params=_path_params, 16140 query_params=_query_params, 16141 header_params=_header_params, 16142 body=_body_params, 16143 post_params=_form_params, 16144 files=_files, 16145 auth_settings=_auth_settings, 16146 collection_formats=_collection_formats, 16147 _host=_host, 16148 _request_auth=_request_auth, 16149 ) 16150 16151 @validate_call 16152 def get_specific_item( 16153 self, 16154 board_id: Annotated[ 16155 StrictStr, 16156 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 16157 ], 16158 item_id: Annotated[ 16159 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 16160 ], 16161 _request_timeout: Union[ 16162 None, 16163 Annotated[StrictFloat, Field(gt=0)], 16164 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16165 ] = None, 16166 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16167 _content_type: Optional[StrictStr] = None, 16168 _headers: Optional[Dict[StrictStr, Any]] = None, 16169 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16170 ) -> GenericItem: 16171 """Get specific item on board 16172 16173 Retrieves information for a specific item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 16174 16175 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 16176 :type board_id: str 16177 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 16178 :type item_id: str 16179 :param _request_timeout: timeout setting for this request. If one 16180 number provided, it will be total request 16181 timeout. It can also be a pair (tuple) of 16182 (connection, read) timeouts. 16183 :type _request_timeout: int, tuple(int, int), optional 16184 :param _request_auth: set to override the auth_settings for an a single 16185 request; this effectively ignores the 16186 authentication in the spec for a single request. 16187 :type _request_auth: dict, optional 16188 :param _content_type: force content-type for the request. 16189 :type _content_type: str, Optional 16190 :param _headers: set to override the headers for a single 16191 request; this effectively ignores the headers 16192 in the spec for a single request. 16193 :type _headers: dict, optional 16194 :param _host_index: set to override the host_index for a single 16195 request; this effectively ignores the host_index 16196 in the spec for a single request. 16197 :type _host_index: int, optional 16198 :return: Returns the result object. 16199 """ # noqa: E501 16200 16201 _param = self._get_specific_item_serialize( 16202 board_id=board_id, 16203 item_id=item_id, 16204 _request_auth=_request_auth, 16205 _content_type=_content_type, 16206 _headers=_headers, 16207 _host_index=_host_index, 16208 ) 16209 16210 _response_types_map: Dict[str, Optional[str]] = { 16211 "200": "GenericItem", 16212 "400": None, 16213 "404": None, 16214 "429": None, 16215 } 16216 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16217 response_data.read() 16218 return self.api_client.response_deserialize( 16219 response_data=response_data, 16220 response_types_map=_response_types_map, 16221 ).data 16222 16223 def _get_specific_item_serialize( 16224 self, 16225 board_id, 16226 item_id, 16227 _request_auth, 16228 _content_type, 16229 _headers, 16230 _host_index, 16231 ) -> RequestSerialized: 16232 16233 _host = None 16234 16235 _collection_formats: Dict[str, str] = {} 16236 16237 _path_params: Dict[str, str] = {} 16238 _query_params: List[Tuple[str, str]] = [] 16239 _header_params: Dict[str, Optional[str]] = _headers or {} 16240 _form_params: List[Tuple[str, str]] = [] 16241 _files: Dict[str, str] = {} 16242 _body_params: Optional[bytes] = None 16243 16244 # process the path parameters 16245 if board_id is not None: 16246 _path_params["board_id"] = board_id 16247 if item_id is not None: 16248 _path_params["item_id"] = item_id 16249 # process the query parameters 16250 # process the header parameters 16251 # process the form parameters 16252 # process the body parameter 16253 16254 # set the HTTP header `Accept` 16255 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16256 16257 # authentication setting 16258 _auth_settings: List[str] = [] 16259 16260 return self.api_client.param_serialize( 16261 method="GET", 16262 resource_path="/v2/boards/{board_id}/items/{item_id}", 16263 path_params=_path_params, 16264 query_params=_query_params, 16265 header_params=_header_params, 16266 body=_body_params, 16267 post_params=_form_params, 16268 files=_files, 16269 auth_settings=_auth_settings, 16270 collection_formats=_collection_formats, 16271 _host=_host, 16272 _request_auth=_request_auth, 16273 ) 16274 16275 @validate_call 16276 def update_item_position_or_parent( 16277 self, 16278 board_id: Annotated[ 16279 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 16280 ], 16281 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 16282 generic_item_update: GenericItemUpdate, 16283 _request_timeout: Union[ 16284 None, 16285 Annotated[StrictFloat, Field(gt=0)], 16286 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16287 ] = None, 16288 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16289 _content_type: Optional[StrictStr] = None, 16290 _headers: Optional[Dict[StrictStr, Any]] = None, 16291 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16292 ) -> GenericItem: 16293 """Update item position or parent 16294 16295 Updates the position or the parent of an item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16296 16297 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 16298 :type board_id: str 16299 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 16300 :type item_id: str 16301 :param generic_item_update: (required) 16302 :type generic_item_update: GenericItemUpdate 16303 :param _request_timeout: timeout setting for this request. If one 16304 number provided, it will be total request 16305 timeout. It can also be a pair (tuple) of 16306 (connection, read) timeouts. 16307 :type _request_timeout: int, tuple(int, int), optional 16308 :param _request_auth: set to override the auth_settings for an a single 16309 request; this effectively ignores the 16310 authentication in the spec for a single request. 16311 :type _request_auth: dict, optional 16312 :param _content_type: force content-type for the request. 16313 :type _content_type: str, Optional 16314 :param _headers: set to override the headers for a single 16315 request; this effectively ignores the headers 16316 in the spec for a single request. 16317 :type _headers: dict, optional 16318 :param _host_index: set to override the host_index for a single 16319 request; this effectively ignores the host_index 16320 in the spec for a single request. 16321 :type _host_index: int, optional 16322 :return: Returns the result object. 16323 """ # noqa: E501 16324 16325 _param = self._update_item_position_or_parent_serialize( 16326 board_id=board_id, 16327 item_id=item_id, 16328 generic_item_update=generic_item_update, 16329 _request_auth=_request_auth, 16330 _content_type=_content_type, 16331 _headers=_headers, 16332 _host_index=_host_index, 16333 ) 16334 16335 _response_types_map: Dict[str, Optional[str]] = { 16336 "200": "GenericItem", 16337 "400": None, 16338 "404": None, 16339 "429": None, 16340 } 16341 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16342 response_data.read() 16343 return self.api_client.response_deserialize( 16344 response_data=response_data, 16345 response_types_map=_response_types_map, 16346 ).data 16347 16348 def _update_item_position_or_parent_serialize( 16349 self, 16350 board_id, 16351 item_id, 16352 generic_item_update, 16353 _request_auth, 16354 _content_type, 16355 _headers, 16356 _host_index, 16357 ) -> RequestSerialized: 16358 16359 _host = None 16360 16361 _collection_formats: Dict[str, str] = {} 16362 16363 _path_params: Dict[str, str] = {} 16364 _query_params: List[Tuple[str, str]] = [] 16365 _header_params: Dict[str, Optional[str]] = _headers or {} 16366 _form_params: List[Tuple[str, str]] = [] 16367 _files: Dict[str, str] = {} 16368 _body_params: Optional[bytes] = None 16369 16370 # process the path parameters 16371 if board_id is not None: 16372 _path_params["board_id"] = board_id 16373 if item_id is not None: 16374 _path_params["item_id"] = item_id 16375 # process the query parameters 16376 # process the header parameters 16377 # process the form parameters 16378 # process the body parameter 16379 if generic_item_update is not None: 16380 _body_params = generic_item_update 16381 16382 # set the HTTP header `Accept` 16383 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16384 16385 # set the HTTP header `Content-Type` 16386 if _content_type: 16387 _header_params["Content-Type"] = _content_type 16388 else: 16389 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 16390 if _default_content_type is not None: 16391 _header_params["Content-Type"] = _default_content_type 16392 16393 # authentication setting 16394 _auth_settings: List[str] = [] 16395 16396 return self.api_client.param_serialize( 16397 method="PATCH", 16398 resource_path="/v2/boards/{board_id}/items/{item_id}", 16399 path_params=_path_params, 16400 query_params=_query_params, 16401 header_params=_header_params, 16402 body=_body_params, 16403 post_params=_form_params, 16404 files=_files, 16405 auth_settings=_auth_settings, 16406 collection_formats=_collection_formats, 16407 _host=_host, 16408 _request_auth=_request_auth, 16409 ) 16410 16411 @validate_call 16412 def create_shape_item( 16413 self, 16414 board_id: Annotated[ 16415 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 16416 ], 16417 shape_create_request: ShapeCreateRequest, 16418 _request_timeout: Union[ 16419 None, 16420 Annotated[StrictFloat, Field(gt=0)], 16421 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16422 ] = None, 16423 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16424 _content_type: Optional[StrictStr] = None, 16425 _headers: Optional[Dict[StrictStr, Any]] = None, 16426 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16427 ) -> ShapeItem: 16428 """Create shape item 16429 16430 Adds a shape item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16431 16432 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 16433 :type board_id: str 16434 :param shape_create_request: (required) 16435 :type shape_create_request: ShapeCreateRequest 16436 :param _request_timeout: timeout setting for this request. If one 16437 number provided, it will be total request 16438 timeout. It can also be a pair (tuple) of 16439 (connection, read) timeouts. 16440 :type _request_timeout: int, tuple(int, int), optional 16441 :param _request_auth: set to override the auth_settings for an a single 16442 request; this effectively ignores the 16443 authentication in the spec for a single request. 16444 :type _request_auth: dict, optional 16445 :param _content_type: force content-type for the request. 16446 :type _content_type: str, Optional 16447 :param _headers: set to override the headers for a single 16448 request; this effectively ignores the headers 16449 in the spec for a single request. 16450 :type _headers: dict, optional 16451 :param _host_index: set to override the host_index for a single 16452 request; this effectively ignores the host_index 16453 in the spec for a single request. 16454 :type _host_index: int, optional 16455 :return: Returns the result object. 16456 """ # noqa: E501 16457 16458 _param = self._create_shape_item_serialize( 16459 board_id=board_id, 16460 shape_create_request=shape_create_request, 16461 _request_auth=_request_auth, 16462 _content_type=_content_type, 16463 _headers=_headers, 16464 _host_index=_host_index, 16465 ) 16466 16467 _response_types_map: Dict[str, Optional[str]] = { 16468 "201": "ShapeItem", 16469 "400": None, 16470 "404": None, 16471 "429": None, 16472 } 16473 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16474 response_data.read() 16475 return self.api_client.response_deserialize( 16476 response_data=response_data, 16477 response_types_map=_response_types_map, 16478 ).data 16479 16480 def _create_shape_item_serialize( 16481 self, 16482 board_id, 16483 shape_create_request, 16484 _request_auth, 16485 _content_type, 16486 _headers, 16487 _host_index, 16488 ) -> RequestSerialized: 16489 16490 _host = None 16491 16492 _collection_formats: Dict[str, str] = {} 16493 16494 _path_params: Dict[str, str] = {} 16495 _query_params: List[Tuple[str, str]] = [] 16496 _header_params: Dict[str, Optional[str]] = _headers or {} 16497 _form_params: List[Tuple[str, str]] = [] 16498 _files: Dict[str, str] = {} 16499 _body_params: Optional[bytes] = None 16500 16501 # process the path parameters 16502 if board_id is not None: 16503 _path_params["board_id"] = board_id 16504 # process the query parameters 16505 # process the header parameters 16506 # process the form parameters 16507 # process the body parameter 16508 if shape_create_request is not None: 16509 _body_params = shape_create_request 16510 16511 # set the HTTP header `Accept` 16512 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16513 16514 # set the HTTP header `Content-Type` 16515 if _content_type: 16516 _header_params["Content-Type"] = _content_type 16517 else: 16518 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 16519 if _default_content_type is not None: 16520 _header_params["Content-Type"] = _default_content_type 16521 16522 # authentication setting 16523 _auth_settings: List[str] = [] 16524 16525 return self.api_client.param_serialize( 16526 method="POST", 16527 resource_path="/v2/boards/{board_id}/shapes", 16528 path_params=_path_params, 16529 query_params=_query_params, 16530 header_params=_header_params, 16531 body=_body_params, 16532 post_params=_form_params, 16533 files=_files, 16534 auth_settings=_auth_settings, 16535 collection_formats=_collection_formats, 16536 _host=_host, 16537 _request_auth=_request_auth, 16538 ) 16539 16540 @validate_call 16541 def delete_shape_item( 16542 self, 16543 board_id: Annotated[ 16544 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 16545 ], 16546 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 16547 _request_timeout: Union[ 16548 None, 16549 Annotated[StrictFloat, Field(gt=0)], 16550 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16551 ] = None, 16552 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16553 _content_type: Optional[StrictStr] = None, 16554 _headers: Optional[Dict[StrictStr, Any]] = None, 16555 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16556 ) -> object: 16557 """Delete shape item 16558 16559 Deletes a shape item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 16560 16561 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 16562 :type board_id: str 16563 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 16564 :type item_id: str 16565 :param _request_timeout: timeout setting for this request. If one 16566 number provided, it will be total request 16567 timeout. It can also be a pair (tuple) of 16568 (connection, read) timeouts. 16569 :type _request_timeout: int, tuple(int, int), optional 16570 :param _request_auth: set to override the auth_settings for an a single 16571 request; this effectively ignores the 16572 authentication in the spec for a single request. 16573 :type _request_auth: dict, optional 16574 :param _content_type: force content-type for the request. 16575 :type _content_type: str, Optional 16576 :param _headers: set to override the headers for a single 16577 request; this effectively ignores the headers 16578 in the spec for a single request. 16579 :type _headers: dict, optional 16580 :param _host_index: set to override the host_index for a single 16581 request; this effectively ignores the host_index 16582 in the spec for a single request. 16583 :type _host_index: int, optional 16584 :return: Returns the result object. 16585 """ # noqa: E501 16586 16587 _param = self._delete_shape_item_serialize( 16588 board_id=board_id, 16589 item_id=item_id, 16590 _request_auth=_request_auth, 16591 _content_type=_content_type, 16592 _headers=_headers, 16593 _host_index=_host_index, 16594 ) 16595 16596 _response_types_map: Dict[str, Optional[str]] = { 16597 "204": "object", 16598 "400": None, 16599 "404": None, 16600 "429": None, 16601 } 16602 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16603 response_data.read() 16604 return self.api_client.response_deserialize( 16605 response_data=response_data, 16606 response_types_map=_response_types_map, 16607 ).data 16608 16609 def _delete_shape_item_serialize( 16610 self, 16611 board_id, 16612 item_id, 16613 _request_auth, 16614 _content_type, 16615 _headers, 16616 _host_index, 16617 ) -> RequestSerialized: 16618 16619 _host = None 16620 16621 _collection_formats: Dict[str, str] = {} 16622 16623 _path_params: Dict[str, str] = {} 16624 _query_params: List[Tuple[str, str]] = [] 16625 _header_params: Dict[str, Optional[str]] = _headers or {} 16626 _form_params: List[Tuple[str, str]] = [] 16627 _files: Dict[str, str] = {} 16628 _body_params: Optional[bytes] = None 16629 16630 # process the path parameters 16631 if board_id is not None: 16632 _path_params["board_id"] = board_id 16633 if item_id is not None: 16634 _path_params["item_id"] = item_id 16635 # process the query parameters 16636 # process the header parameters 16637 # process the form parameters 16638 # process the body parameter 16639 16640 # set the HTTP header `Accept` 16641 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16642 16643 # authentication setting 16644 _auth_settings: List[str] = [] 16645 16646 return self.api_client.param_serialize( 16647 method="DELETE", 16648 resource_path="/v2/boards/{board_id}/shapes/{item_id}", 16649 path_params=_path_params, 16650 query_params=_query_params, 16651 header_params=_header_params, 16652 body=_body_params, 16653 post_params=_form_params, 16654 files=_files, 16655 auth_settings=_auth_settings, 16656 collection_formats=_collection_formats, 16657 _host=_host, 16658 _request_auth=_request_auth, 16659 ) 16660 16661 @validate_call 16662 def get_shape_item( 16663 self, 16664 board_id: Annotated[ 16665 StrictStr, 16666 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 16667 ], 16668 item_id: Annotated[ 16669 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 16670 ], 16671 _request_timeout: Union[ 16672 None, 16673 Annotated[StrictFloat, Field(gt=0)], 16674 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16675 ] = None, 16676 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16677 _content_type: Optional[StrictStr] = None, 16678 _headers: Optional[Dict[StrictStr, Any]] = None, 16679 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16680 ) -> ShapeItem: 16681 """Get shape item 16682 16683 Retrieves information for a specific shape item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 16684 16685 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 16686 :type board_id: str 16687 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 16688 :type item_id: str 16689 :param _request_timeout: timeout setting for this request. If one 16690 number provided, it will be total request 16691 timeout. It can also be a pair (tuple) of 16692 (connection, read) timeouts. 16693 :type _request_timeout: int, tuple(int, int), optional 16694 :param _request_auth: set to override the auth_settings for an a single 16695 request; this effectively ignores the 16696 authentication in the spec for a single request. 16697 :type _request_auth: dict, optional 16698 :param _content_type: force content-type for the request. 16699 :type _content_type: str, Optional 16700 :param _headers: set to override the headers for a single 16701 request; this effectively ignores the headers 16702 in the spec for a single request. 16703 :type _headers: dict, optional 16704 :param _host_index: set to override the host_index for a single 16705 request; this effectively ignores the host_index 16706 in the spec for a single request. 16707 :type _host_index: int, optional 16708 :return: Returns the result object. 16709 """ # noqa: E501 16710 16711 _param = self._get_shape_item_serialize( 16712 board_id=board_id, 16713 item_id=item_id, 16714 _request_auth=_request_auth, 16715 _content_type=_content_type, 16716 _headers=_headers, 16717 _host_index=_host_index, 16718 ) 16719 16720 _response_types_map: Dict[str, Optional[str]] = { 16721 "200": "ShapeItem", 16722 "400": None, 16723 "404": None, 16724 "429": None, 16725 } 16726 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16727 response_data.read() 16728 return self.api_client.response_deserialize( 16729 response_data=response_data, 16730 response_types_map=_response_types_map, 16731 ).data 16732 16733 def _get_shape_item_serialize( 16734 self, 16735 board_id, 16736 item_id, 16737 _request_auth, 16738 _content_type, 16739 _headers, 16740 _host_index, 16741 ) -> RequestSerialized: 16742 16743 _host = None 16744 16745 _collection_formats: Dict[str, str] = {} 16746 16747 _path_params: Dict[str, str] = {} 16748 _query_params: List[Tuple[str, str]] = [] 16749 _header_params: Dict[str, Optional[str]] = _headers or {} 16750 _form_params: List[Tuple[str, str]] = [] 16751 _files: Dict[str, str] = {} 16752 _body_params: Optional[bytes] = None 16753 16754 # process the path parameters 16755 if board_id is not None: 16756 _path_params["board_id"] = board_id 16757 if item_id is not None: 16758 _path_params["item_id"] = item_id 16759 # process the query parameters 16760 # process the header parameters 16761 # process the form parameters 16762 # process the body parameter 16763 16764 # set the HTTP header `Accept` 16765 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16766 16767 # authentication setting 16768 _auth_settings: List[str] = [] 16769 16770 return self.api_client.param_serialize( 16771 method="GET", 16772 resource_path="/v2/boards/{board_id}/shapes/{item_id}", 16773 path_params=_path_params, 16774 query_params=_query_params, 16775 header_params=_header_params, 16776 body=_body_params, 16777 post_params=_form_params, 16778 files=_files, 16779 auth_settings=_auth_settings, 16780 collection_formats=_collection_formats, 16781 _host=_host, 16782 _request_auth=_request_auth, 16783 ) 16784 16785 @validate_call 16786 def update_shape_item( 16787 self, 16788 board_id: Annotated[ 16789 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 16790 ], 16791 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 16792 shape_update_request: ShapeUpdateRequest, 16793 _request_timeout: Union[ 16794 None, 16795 Annotated[StrictFloat, Field(gt=0)], 16796 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16797 ] = None, 16798 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16799 _content_type: Optional[StrictStr] = None, 16800 _headers: Optional[Dict[StrictStr, Any]] = None, 16801 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16802 ) -> ShapeItem: 16803 """Update shape item 16804 16805 Updates a shape item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16806 16807 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 16808 :type board_id: str 16809 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 16810 :type item_id: str 16811 :param shape_update_request: (required) 16812 :type shape_update_request: ShapeUpdateRequest 16813 :param _request_timeout: timeout setting for this request. If one 16814 number provided, it will be total request 16815 timeout. It can also be a pair (tuple) of 16816 (connection, read) timeouts. 16817 :type _request_timeout: int, tuple(int, int), optional 16818 :param _request_auth: set to override the auth_settings for an a single 16819 request; this effectively ignores the 16820 authentication in the spec for a single request. 16821 :type _request_auth: dict, optional 16822 :param _content_type: force content-type for the request. 16823 :type _content_type: str, Optional 16824 :param _headers: set to override the headers for a single 16825 request; this effectively ignores the headers 16826 in the spec for a single request. 16827 :type _headers: dict, optional 16828 :param _host_index: set to override the host_index for a single 16829 request; this effectively ignores the host_index 16830 in the spec for a single request. 16831 :type _host_index: int, optional 16832 :return: Returns the result object. 16833 """ # noqa: E501 16834 16835 _param = self._update_shape_item_serialize( 16836 board_id=board_id, 16837 item_id=item_id, 16838 shape_update_request=shape_update_request, 16839 _request_auth=_request_auth, 16840 _content_type=_content_type, 16841 _headers=_headers, 16842 _host_index=_host_index, 16843 ) 16844 16845 _response_types_map: Dict[str, Optional[str]] = { 16846 "200": "ShapeItem", 16847 "400": None, 16848 "404": None, 16849 "409": None, 16850 "429": None, 16851 } 16852 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16853 response_data.read() 16854 return self.api_client.response_deserialize( 16855 response_data=response_data, 16856 response_types_map=_response_types_map, 16857 ).data 16858 16859 def _update_shape_item_serialize( 16860 self, 16861 board_id, 16862 item_id, 16863 shape_update_request, 16864 _request_auth, 16865 _content_type, 16866 _headers, 16867 _host_index, 16868 ) -> RequestSerialized: 16869 16870 _host = None 16871 16872 _collection_formats: Dict[str, str] = {} 16873 16874 _path_params: Dict[str, str] = {} 16875 _query_params: List[Tuple[str, str]] = [] 16876 _header_params: Dict[str, Optional[str]] = _headers or {} 16877 _form_params: List[Tuple[str, str]] = [] 16878 _files: Dict[str, str] = {} 16879 _body_params: Optional[bytes] = None 16880 16881 # process the path parameters 16882 if board_id is not None: 16883 _path_params["board_id"] = board_id 16884 if item_id is not None: 16885 _path_params["item_id"] = item_id 16886 # process the query parameters 16887 # process the header parameters 16888 # process the form parameters 16889 # process the body parameter 16890 if shape_update_request is not None: 16891 _body_params = shape_update_request 16892 16893 # set the HTTP header `Accept` 16894 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 16895 16896 # set the HTTP header `Content-Type` 16897 if _content_type: 16898 _header_params["Content-Type"] = _content_type 16899 else: 16900 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 16901 if _default_content_type is not None: 16902 _header_params["Content-Type"] = _default_content_type 16903 16904 # authentication setting 16905 _auth_settings: List[str] = [] 16906 16907 return self.api_client.param_serialize( 16908 method="PATCH", 16909 resource_path="/v2/boards/{board_id}/shapes/{item_id}", 16910 path_params=_path_params, 16911 query_params=_query_params, 16912 header_params=_header_params, 16913 body=_body_params, 16914 post_params=_form_params, 16915 files=_files, 16916 auth_settings=_auth_settings, 16917 collection_formats=_collection_formats, 16918 _host=_host, 16919 _request_auth=_request_auth, 16920 ) 16921 16922 @validate_call 16923 def create_sticky_note_item( 16924 self, 16925 board_id: Annotated[ 16926 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 16927 ], 16928 sticky_note_create_request: StickyNoteCreateRequest, 16929 _request_timeout: Union[ 16930 None, 16931 Annotated[StrictFloat, Field(gt=0)], 16932 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16933 ] = None, 16934 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16935 _content_type: Optional[StrictStr] = None, 16936 _headers: Optional[Dict[StrictStr, Any]] = None, 16937 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16938 ) -> StickyNoteItem: 16939 """Create sticky note item 16940 16941 Adds a sticky note item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16942 16943 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 16944 :type board_id: str 16945 :param sticky_note_create_request: (required) 16946 :type sticky_note_create_request: StickyNoteCreateRequest 16947 :param _request_timeout: timeout setting for this request. If one 16948 number provided, it will be total request 16949 timeout. It can also be a pair (tuple) of 16950 (connection, read) timeouts. 16951 :type _request_timeout: int, tuple(int, int), optional 16952 :param _request_auth: set to override the auth_settings for an a single 16953 request; this effectively ignores the 16954 authentication in the spec for a single request. 16955 :type _request_auth: dict, optional 16956 :param _content_type: force content-type for the request. 16957 :type _content_type: str, Optional 16958 :param _headers: set to override the headers for a single 16959 request; this effectively ignores the headers 16960 in the spec for a single request. 16961 :type _headers: dict, optional 16962 :param _host_index: set to override the host_index for a single 16963 request; this effectively ignores the host_index 16964 in the spec for a single request. 16965 :type _host_index: int, optional 16966 :return: Returns the result object. 16967 """ # noqa: E501 16968 16969 _param = self._create_sticky_note_item_serialize( 16970 board_id=board_id, 16971 sticky_note_create_request=sticky_note_create_request, 16972 _request_auth=_request_auth, 16973 _content_type=_content_type, 16974 _headers=_headers, 16975 _host_index=_host_index, 16976 ) 16977 16978 _response_types_map: Dict[str, Optional[str]] = { 16979 "201": "StickyNoteItem", 16980 "400": None, 16981 "404": None, 16982 "429": None, 16983 } 16984 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16985 response_data.read() 16986 return self.api_client.response_deserialize( 16987 response_data=response_data, 16988 response_types_map=_response_types_map, 16989 ).data 16990 16991 def _create_sticky_note_item_serialize( 16992 self, 16993 board_id, 16994 sticky_note_create_request, 16995 _request_auth, 16996 _content_type, 16997 _headers, 16998 _host_index, 16999 ) -> RequestSerialized: 17000 17001 _host = None 17002 17003 _collection_formats: Dict[str, str] = {} 17004 17005 _path_params: Dict[str, str] = {} 17006 _query_params: List[Tuple[str, str]] = [] 17007 _header_params: Dict[str, Optional[str]] = _headers or {} 17008 _form_params: List[Tuple[str, str]] = [] 17009 _files: Dict[str, str] = {} 17010 _body_params: Optional[bytes] = None 17011 17012 # process the path parameters 17013 if board_id is not None: 17014 _path_params["board_id"] = board_id 17015 # process the query parameters 17016 # process the header parameters 17017 # process the form parameters 17018 # process the body parameter 17019 if sticky_note_create_request is not None: 17020 _body_params = sticky_note_create_request 17021 17022 # set the HTTP header `Accept` 17023 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17024 17025 # set the HTTP header `Content-Type` 17026 if _content_type: 17027 _header_params["Content-Type"] = _content_type 17028 else: 17029 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 17030 if _default_content_type is not None: 17031 _header_params["Content-Type"] = _default_content_type 17032 17033 # authentication setting 17034 _auth_settings: List[str] = [] 17035 17036 return self.api_client.param_serialize( 17037 method="POST", 17038 resource_path="/v2/boards/{board_id}/sticky_notes", 17039 path_params=_path_params, 17040 query_params=_query_params, 17041 header_params=_header_params, 17042 body=_body_params, 17043 post_params=_form_params, 17044 files=_files, 17045 auth_settings=_auth_settings, 17046 collection_formats=_collection_formats, 17047 _host=_host, 17048 _request_auth=_request_auth, 17049 ) 17050 17051 @validate_call 17052 def delete_sticky_note_item( 17053 self, 17054 board_id: Annotated[ 17055 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 17056 ], 17057 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 17058 _request_timeout: Union[ 17059 None, 17060 Annotated[StrictFloat, Field(gt=0)], 17061 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17062 ] = None, 17063 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17064 _content_type: Optional[StrictStr] = None, 17065 _headers: Optional[Dict[StrictStr, Any]] = None, 17066 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17067 ) -> object: 17068 """Delete sticky note item 17069 17070 Deletes a sticky note item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 17071 17072 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 17073 :type board_id: str 17074 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 17075 :type item_id: str 17076 :param _request_timeout: timeout setting for this request. If one 17077 number provided, it will be total request 17078 timeout. It can also be a pair (tuple) of 17079 (connection, read) timeouts. 17080 :type _request_timeout: int, tuple(int, int), optional 17081 :param _request_auth: set to override the auth_settings for an a single 17082 request; this effectively ignores the 17083 authentication in the spec for a single request. 17084 :type _request_auth: dict, optional 17085 :param _content_type: force content-type for the request. 17086 :type _content_type: str, Optional 17087 :param _headers: set to override the headers for a single 17088 request; this effectively ignores the headers 17089 in the spec for a single request. 17090 :type _headers: dict, optional 17091 :param _host_index: set to override the host_index for a single 17092 request; this effectively ignores the host_index 17093 in the spec for a single request. 17094 :type _host_index: int, optional 17095 :return: Returns the result object. 17096 """ # noqa: E501 17097 17098 _param = self._delete_sticky_note_item_serialize( 17099 board_id=board_id, 17100 item_id=item_id, 17101 _request_auth=_request_auth, 17102 _content_type=_content_type, 17103 _headers=_headers, 17104 _host_index=_host_index, 17105 ) 17106 17107 _response_types_map: Dict[str, Optional[str]] = { 17108 "204": "object", 17109 "400": None, 17110 "404": None, 17111 "429": None, 17112 } 17113 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17114 response_data.read() 17115 return self.api_client.response_deserialize( 17116 response_data=response_data, 17117 response_types_map=_response_types_map, 17118 ).data 17119 17120 def _delete_sticky_note_item_serialize( 17121 self, 17122 board_id, 17123 item_id, 17124 _request_auth, 17125 _content_type, 17126 _headers, 17127 _host_index, 17128 ) -> RequestSerialized: 17129 17130 _host = None 17131 17132 _collection_formats: Dict[str, str] = {} 17133 17134 _path_params: Dict[str, str] = {} 17135 _query_params: List[Tuple[str, str]] = [] 17136 _header_params: Dict[str, Optional[str]] = _headers or {} 17137 _form_params: List[Tuple[str, str]] = [] 17138 _files: Dict[str, str] = {} 17139 _body_params: Optional[bytes] = None 17140 17141 # process the path parameters 17142 if board_id is not None: 17143 _path_params["board_id"] = board_id 17144 if item_id is not None: 17145 _path_params["item_id"] = item_id 17146 # process the query parameters 17147 # process the header parameters 17148 # process the form parameters 17149 # process the body parameter 17150 17151 # set the HTTP header `Accept` 17152 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17153 17154 # authentication setting 17155 _auth_settings: List[str] = [] 17156 17157 return self.api_client.param_serialize( 17158 method="DELETE", 17159 resource_path="/v2/boards/{board_id}/sticky_notes/{item_id}", 17160 path_params=_path_params, 17161 query_params=_query_params, 17162 header_params=_header_params, 17163 body=_body_params, 17164 post_params=_form_params, 17165 files=_files, 17166 auth_settings=_auth_settings, 17167 collection_formats=_collection_formats, 17168 _host=_host, 17169 _request_auth=_request_auth, 17170 ) 17171 17172 @validate_call 17173 def get_sticky_note_item( 17174 self, 17175 board_id: Annotated[ 17176 StrictStr, 17177 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 17178 ], 17179 item_id: Annotated[ 17180 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 17181 ], 17182 _request_timeout: Union[ 17183 None, 17184 Annotated[StrictFloat, Field(gt=0)], 17185 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17186 ] = None, 17187 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17188 _content_type: Optional[StrictStr] = None, 17189 _headers: Optional[Dict[StrictStr, Any]] = None, 17190 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17191 ) -> StickyNoteItem: 17192 """Get sticky note item 17193 17194 Retrieves information for a specific sticky note item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17195 17196 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 17197 :type board_id: str 17198 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 17199 :type item_id: str 17200 :param _request_timeout: timeout setting for this request. If one 17201 number provided, it will be total request 17202 timeout. It can also be a pair (tuple) of 17203 (connection, read) timeouts. 17204 :type _request_timeout: int, tuple(int, int), optional 17205 :param _request_auth: set to override the auth_settings for an a single 17206 request; this effectively ignores the 17207 authentication in the spec for a single request. 17208 :type _request_auth: dict, optional 17209 :param _content_type: force content-type for the request. 17210 :type _content_type: str, Optional 17211 :param _headers: set to override the headers for a single 17212 request; this effectively ignores the headers 17213 in the spec for a single request. 17214 :type _headers: dict, optional 17215 :param _host_index: set to override the host_index for a single 17216 request; this effectively ignores the host_index 17217 in the spec for a single request. 17218 :type _host_index: int, optional 17219 :return: Returns the result object. 17220 """ # noqa: E501 17221 17222 _param = self._get_sticky_note_item_serialize( 17223 board_id=board_id, 17224 item_id=item_id, 17225 _request_auth=_request_auth, 17226 _content_type=_content_type, 17227 _headers=_headers, 17228 _host_index=_host_index, 17229 ) 17230 17231 _response_types_map: Dict[str, Optional[str]] = { 17232 "200": "StickyNoteItem", 17233 "400": None, 17234 "404": None, 17235 "429": None, 17236 } 17237 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17238 response_data.read() 17239 return self.api_client.response_deserialize( 17240 response_data=response_data, 17241 response_types_map=_response_types_map, 17242 ).data 17243 17244 def _get_sticky_note_item_serialize( 17245 self, 17246 board_id, 17247 item_id, 17248 _request_auth, 17249 _content_type, 17250 _headers, 17251 _host_index, 17252 ) -> RequestSerialized: 17253 17254 _host = None 17255 17256 _collection_formats: Dict[str, str] = {} 17257 17258 _path_params: Dict[str, str] = {} 17259 _query_params: List[Tuple[str, str]] = [] 17260 _header_params: Dict[str, Optional[str]] = _headers or {} 17261 _form_params: List[Tuple[str, str]] = [] 17262 _files: Dict[str, str] = {} 17263 _body_params: Optional[bytes] = None 17264 17265 # process the path parameters 17266 if board_id is not None: 17267 _path_params["board_id"] = board_id 17268 if item_id is not None: 17269 _path_params["item_id"] = item_id 17270 # process the query parameters 17271 # process the header parameters 17272 # process the form parameters 17273 # process the body parameter 17274 17275 # set the HTTP header `Accept` 17276 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17277 17278 # authentication setting 17279 _auth_settings: List[str] = [] 17280 17281 return self.api_client.param_serialize( 17282 method="GET", 17283 resource_path="/v2/boards/{board_id}/sticky_notes/{item_id}", 17284 path_params=_path_params, 17285 query_params=_query_params, 17286 header_params=_header_params, 17287 body=_body_params, 17288 post_params=_form_params, 17289 files=_files, 17290 auth_settings=_auth_settings, 17291 collection_formats=_collection_formats, 17292 _host=_host, 17293 _request_auth=_request_auth, 17294 ) 17295 17296 @validate_call 17297 def update_sticky_note_item( 17298 self, 17299 board_id: Annotated[ 17300 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 17301 ], 17302 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 17303 sticky_note_update_request: StickyNoteUpdateRequest, 17304 _request_timeout: Union[ 17305 None, 17306 Annotated[StrictFloat, Field(gt=0)], 17307 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17308 ] = None, 17309 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17310 _content_type: Optional[StrictStr] = None, 17311 _headers: Optional[Dict[StrictStr, Any]] = None, 17312 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17313 ) -> StickyNoteItem: 17314 """Update sticky note item 17315 17316 Updates a sticky note item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 17317 17318 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 17319 :type board_id: str 17320 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 17321 :type item_id: str 17322 :param sticky_note_update_request: (required) 17323 :type sticky_note_update_request: StickyNoteUpdateRequest 17324 :param _request_timeout: timeout setting for this request. If one 17325 number provided, it will be total request 17326 timeout. It can also be a pair (tuple) of 17327 (connection, read) timeouts. 17328 :type _request_timeout: int, tuple(int, int), optional 17329 :param _request_auth: set to override the auth_settings for an a single 17330 request; this effectively ignores the 17331 authentication in the spec for a single request. 17332 :type _request_auth: dict, optional 17333 :param _content_type: force content-type for the request. 17334 :type _content_type: str, Optional 17335 :param _headers: set to override the headers for a single 17336 request; this effectively ignores the headers 17337 in the spec for a single request. 17338 :type _headers: dict, optional 17339 :param _host_index: set to override the host_index for a single 17340 request; this effectively ignores the host_index 17341 in the spec for a single request. 17342 :type _host_index: int, optional 17343 :return: Returns the result object. 17344 """ # noqa: E501 17345 17346 _param = self._update_sticky_note_item_serialize( 17347 board_id=board_id, 17348 item_id=item_id, 17349 sticky_note_update_request=sticky_note_update_request, 17350 _request_auth=_request_auth, 17351 _content_type=_content_type, 17352 _headers=_headers, 17353 _host_index=_host_index, 17354 ) 17355 17356 _response_types_map: Dict[str, Optional[str]] = { 17357 "200": "StickyNoteItem", 17358 "400": None, 17359 "404": None, 17360 "409": None, 17361 "429": None, 17362 } 17363 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17364 response_data.read() 17365 return self.api_client.response_deserialize( 17366 response_data=response_data, 17367 response_types_map=_response_types_map, 17368 ).data 17369 17370 def _update_sticky_note_item_serialize( 17371 self, 17372 board_id, 17373 item_id, 17374 sticky_note_update_request, 17375 _request_auth, 17376 _content_type, 17377 _headers, 17378 _host_index, 17379 ) -> RequestSerialized: 17380 17381 _host = None 17382 17383 _collection_formats: Dict[str, str] = {} 17384 17385 _path_params: Dict[str, str] = {} 17386 _query_params: List[Tuple[str, str]] = [] 17387 _header_params: Dict[str, Optional[str]] = _headers or {} 17388 _form_params: List[Tuple[str, str]] = [] 17389 _files: Dict[str, str] = {} 17390 _body_params: Optional[bytes] = None 17391 17392 # process the path parameters 17393 if board_id is not None: 17394 _path_params["board_id"] = board_id 17395 if item_id is not None: 17396 _path_params["item_id"] = item_id 17397 # process the query parameters 17398 # process the header parameters 17399 # process the form parameters 17400 # process the body parameter 17401 if sticky_note_update_request is not None: 17402 _body_params = sticky_note_update_request 17403 17404 # set the HTTP header `Accept` 17405 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17406 17407 # set the HTTP header `Content-Type` 17408 if _content_type: 17409 _header_params["Content-Type"] = _content_type 17410 else: 17411 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 17412 if _default_content_type is not None: 17413 _header_params["Content-Type"] = _default_content_type 17414 17415 # authentication setting 17416 _auth_settings: List[str] = [] 17417 17418 return self.api_client.param_serialize( 17419 method="PATCH", 17420 resource_path="/v2/boards/{board_id}/sticky_notes/{item_id}", 17421 path_params=_path_params, 17422 query_params=_query_params, 17423 header_params=_header_params, 17424 body=_body_params, 17425 post_params=_form_params, 17426 files=_files, 17427 auth_settings=_auth_settings, 17428 collection_formats=_collection_formats, 17429 _host=_host, 17430 _request_auth=_request_auth, 17431 ) 17432 17433 @validate_call 17434 def attach_tag_to_item( 17435 self, 17436 board_id_platform_tags: Annotated[ 17437 StrictStr, 17438 Field(description="Unique identifier (ID) of the board with the item that you want to add a tag to."), 17439 ], 17440 item_id: Annotated[ 17441 StrictStr, Field(description="Unique identifier (ID) of the item to which you want to add a tag.") 17442 ], 17443 tag_id: Annotated[ 17444 StrictStr, Field(description="Unique identifier (ID) of the tag you want to add to the item.") 17445 ], 17446 _request_timeout: Union[ 17447 None, 17448 Annotated[StrictFloat, Field(gt=0)], 17449 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17450 ] = None, 17451 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17452 _content_type: Optional[StrictStr] = None, 17453 _headers: Optional[Dict[StrictStr, Any]] = None, 17454 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17455 ) -> object: 17456 """Attach tag to item 17457 17458 Attach an existing tag to the specified item. Card and sticky note items can have up to 8 tags. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17459 17460 :param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to add a tag to. (required) 17461 :type board_id_platform_tags: str 17462 :param item_id: Unique identifier (ID) of the item to which you want to add a tag. (required) 17463 :type item_id: str 17464 :param tag_id: Unique identifier (ID) of the tag you want to add to the item. (required) 17465 :type tag_id: str 17466 :param _request_timeout: timeout setting for this request. If one 17467 number provided, it will be total request 17468 timeout. It can also be a pair (tuple) of 17469 (connection, read) timeouts. 17470 :type _request_timeout: int, tuple(int, int), optional 17471 :param _request_auth: set to override the auth_settings for an a single 17472 request; this effectively ignores the 17473 authentication in the spec for a single request. 17474 :type _request_auth: dict, optional 17475 :param _content_type: force content-type for the request. 17476 :type _content_type: str, Optional 17477 :param _headers: set to override the headers for a single 17478 request; this effectively ignores the headers 17479 in the spec for a single request. 17480 :type _headers: dict, optional 17481 :param _host_index: set to override the host_index for a single 17482 request; this effectively ignores the host_index 17483 in the spec for a single request. 17484 :type _host_index: int, optional 17485 :return: Returns the result object. 17486 """ # noqa: E501 17487 17488 _param = self._attach_tag_to_item_serialize( 17489 board_id_platform_tags=board_id_platform_tags, 17490 item_id=item_id, 17491 tag_id=tag_id, 17492 _request_auth=_request_auth, 17493 _content_type=_content_type, 17494 _headers=_headers, 17495 _host_index=_host_index, 17496 ) 17497 17498 _response_types_map: Dict[str, Optional[str]] = { 17499 "204": "object", 17500 "400": "GetTagsFromItem400Response", 17501 "404": "GetTagsFromItem400Response", 17502 "429": "GetTagsFromItem400Response", 17503 } 17504 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17505 response_data.read() 17506 return self.api_client.response_deserialize( 17507 response_data=response_data, 17508 response_types_map=_response_types_map, 17509 ).data 17510 17511 def _attach_tag_to_item_serialize( 17512 self, 17513 board_id_platform_tags, 17514 item_id, 17515 tag_id, 17516 _request_auth, 17517 _content_type, 17518 _headers, 17519 _host_index, 17520 ) -> RequestSerialized: 17521 17522 _host = None 17523 17524 _collection_formats: Dict[str, str] = {} 17525 17526 _path_params: Dict[str, str] = {} 17527 _query_params: List[Tuple[str, str]] = [] 17528 _header_params: Dict[str, Optional[str]] = _headers or {} 17529 _form_params: List[Tuple[str, str]] = [] 17530 _files: Dict[str, str] = {} 17531 _body_params: Optional[bytes] = None 17532 17533 # process the path parameters 17534 if board_id_platform_tags is not None: 17535 _path_params["board_id_PlatformTags"] = board_id_platform_tags 17536 if item_id is not None: 17537 _path_params["item_id"] = item_id 17538 # process the query parameters 17539 if tag_id is not None: 17540 17541 _query_params.append(("tag_id", tag_id)) 17542 17543 # process the header parameters 17544 # process the form parameters 17545 # process the body parameter 17546 17547 # set the HTTP header `Accept` 17548 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17549 17550 # authentication setting 17551 _auth_settings: List[str] = [] 17552 17553 return self.api_client.param_serialize( 17554 method="POST", 17555 resource_path="/v2/boards/{board_id_PlatformTags}/items/{item_id}", 17556 path_params=_path_params, 17557 query_params=_query_params, 17558 header_params=_header_params, 17559 body=_body_params, 17560 post_params=_form_params, 17561 files=_files, 17562 auth_settings=_auth_settings, 17563 collection_formats=_collection_formats, 17564 _host=_host, 17565 _request_auth=_request_auth, 17566 ) 17567 17568 @validate_call 17569 def create_tag( 17570 self, 17571 board_id: Annotated[ 17572 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the tag.") 17573 ], 17574 tag_create_request: TagCreateRequest, 17575 _request_timeout: Union[ 17576 None, 17577 Annotated[StrictFloat, Field(gt=0)], 17578 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17579 ] = None, 17580 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17581 _content_type: Optional[StrictStr] = None, 17582 _headers: Optional[Dict[StrictStr, Any]] = None, 17583 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17584 ) -> TagWithLinks: 17585 """Create tag 17586 17587 Creates a tag on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17588 17589 :param board_id: Unique identifier (ID) of the board where you want to create the tag. (required) 17590 :type board_id: str 17591 :param tag_create_request: (required) 17592 :type tag_create_request: TagCreateRequest 17593 :param _request_timeout: timeout setting for this request. If one 17594 number provided, it will be total request 17595 timeout. It can also be a pair (tuple) of 17596 (connection, read) timeouts. 17597 :type _request_timeout: int, tuple(int, int), optional 17598 :param _request_auth: set to override the auth_settings for an a single 17599 request; this effectively ignores the 17600 authentication in the spec for a single request. 17601 :type _request_auth: dict, optional 17602 :param _content_type: force content-type for the request. 17603 :type _content_type: str, Optional 17604 :param _headers: set to override the headers for a single 17605 request; this effectively ignores the headers 17606 in the spec for a single request. 17607 :type _headers: dict, optional 17608 :param _host_index: set to override the host_index for a single 17609 request; this effectively ignores the host_index 17610 in the spec for a single request. 17611 :type _host_index: int, optional 17612 :return: Returns the result object. 17613 """ # noqa: E501 17614 17615 _param = self._create_tag_serialize( 17616 board_id=board_id, 17617 tag_create_request=tag_create_request, 17618 _request_auth=_request_auth, 17619 _content_type=_content_type, 17620 _headers=_headers, 17621 _host_index=_host_index, 17622 ) 17623 17624 _response_types_map: Dict[str, Optional[str]] = { 17625 "201": "TagWithLinks", 17626 "400": "GetTagsFromItem400Response", 17627 "404": "GetTagsFromItem400Response", 17628 "429": "GetTagsFromItem400Response", 17629 } 17630 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17631 response_data.read() 17632 return self.api_client.response_deserialize( 17633 response_data=response_data, 17634 response_types_map=_response_types_map, 17635 ).data 17636 17637 def _create_tag_serialize( 17638 self, 17639 board_id, 17640 tag_create_request, 17641 _request_auth, 17642 _content_type, 17643 _headers, 17644 _host_index, 17645 ) -> RequestSerialized: 17646 17647 _host = None 17648 17649 _collection_formats: Dict[str, str] = {} 17650 17651 _path_params: Dict[str, str] = {} 17652 _query_params: List[Tuple[str, str]] = [] 17653 _header_params: Dict[str, Optional[str]] = _headers or {} 17654 _form_params: List[Tuple[str, str]] = [] 17655 _files: Dict[str, str] = {} 17656 _body_params: Optional[bytes] = None 17657 17658 # process the path parameters 17659 if board_id is not None: 17660 _path_params["board_id"] = board_id 17661 # process the query parameters 17662 # process the header parameters 17663 # process the form parameters 17664 # process the body parameter 17665 if tag_create_request is not None: 17666 _body_params = tag_create_request 17667 17668 # set the HTTP header `Accept` 17669 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17670 17671 # set the HTTP header `Content-Type` 17672 if _content_type: 17673 _header_params["Content-Type"] = _content_type 17674 else: 17675 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 17676 if _default_content_type is not None: 17677 _header_params["Content-Type"] = _default_content_type 17678 17679 # authentication setting 17680 _auth_settings: List[str] = [] 17681 17682 return self.api_client.param_serialize( 17683 method="POST", 17684 resource_path="/v2/boards/{board_id}/tags", 17685 path_params=_path_params, 17686 query_params=_query_params, 17687 header_params=_header_params, 17688 body=_body_params, 17689 post_params=_form_params, 17690 files=_files, 17691 auth_settings=_auth_settings, 17692 collection_formats=_collection_formats, 17693 _host=_host, 17694 _request_auth=_request_auth, 17695 ) 17696 17697 @validate_call 17698 def delete_tag( 17699 self, 17700 board_id: Annotated[ 17701 StrictStr, Field(description="Unique identifier (ID) of the board where you want to delete a specific tag.") 17702 ], 17703 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to delete.")], 17704 _request_timeout: Union[ 17705 None, 17706 Annotated[StrictFloat, Field(gt=0)], 17707 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17708 ] = None, 17709 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17710 _content_type: Optional[StrictStr] = None, 17711 _headers: Optional[Dict[StrictStr, Any]] = None, 17712 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17713 ) -> object: 17714 """Delete tag 17715 17716 Deletes the specified tag from the board. The tag is also removed from all cards and sticky notes on the board. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17717 17718 :param board_id: Unique identifier (ID) of the board where you want to delete a specific tag. (required) 17719 :type board_id: str 17720 :param tag_id: Unique identifier (ID) of the tag that you want to delete. (required) 17721 :type tag_id: str 17722 :param _request_timeout: timeout setting for this request. If one 17723 number provided, it will be total request 17724 timeout. It can also be a pair (tuple) of 17725 (connection, read) timeouts. 17726 :type _request_timeout: int, tuple(int, int), optional 17727 :param _request_auth: set to override the auth_settings for an a single 17728 request; this effectively ignores the 17729 authentication in the spec for a single request. 17730 :type _request_auth: dict, optional 17731 :param _content_type: force content-type for the request. 17732 :type _content_type: str, Optional 17733 :param _headers: set to override the headers for a single 17734 request; this effectively ignores the headers 17735 in the spec for a single request. 17736 :type _headers: dict, optional 17737 :param _host_index: set to override the host_index for a single 17738 request; this effectively ignores the host_index 17739 in the spec for a single request. 17740 :type _host_index: int, optional 17741 :return: Returns the result object. 17742 """ # noqa: E501 17743 17744 _param = self._delete_tag_serialize( 17745 board_id=board_id, 17746 tag_id=tag_id, 17747 _request_auth=_request_auth, 17748 _content_type=_content_type, 17749 _headers=_headers, 17750 _host_index=_host_index, 17751 ) 17752 17753 _response_types_map: Dict[str, Optional[str]] = { 17754 "204": "object", 17755 "400": "GetTagsFromItem400Response", 17756 "404": "GetTagsFromItem400Response", 17757 "429": "GetTagsFromItem400Response", 17758 } 17759 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17760 response_data.read() 17761 return self.api_client.response_deserialize( 17762 response_data=response_data, 17763 response_types_map=_response_types_map, 17764 ).data 17765 17766 def _delete_tag_serialize( 17767 self, 17768 board_id, 17769 tag_id, 17770 _request_auth, 17771 _content_type, 17772 _headers, 17773 _host_index, 17774 ) -> RequestSerialized: 17775 17776 _host = None 17777 17778 _collection_formats: Dict[str, str] = {} 17779 17780 _path_params: Dict[str, str] = {} 17781 _query_params: List[Tuple[str, str]] = [] 17782 _header_params: Dict[str, Optional[str]] = _headers or {} 17783 _form_params: List[Tuple[str, str]] = [] 17784 _files: Dict[str, str] = {} 17785 _body_params: Optional[bytes] = None 17786 17787 # process the path parameters 17788 if board_id is not None: 17789 _path_params["board_id"] = board_id 17790 if tag_id is not None: 17791 _path_params["tag_id"] = tag_id 17792 # process the query parameters 17793 # process the header parameters 17794 # process the form parameters 17795 # process the body parameter 17796 17797 # set the HTTP header `Accept` 17798 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17799 17800 # authentication setting 17801 _auth_settings: List[str] = [] 17802 17803 return self.api_client.param_serialize( 17804 method="DELETE", 17805 resource_path="/v2/boards/{board_id}/tags/{tag_id}", 17806 path_params=_path_params, 17807 query_params=_query_params, 17808 header_params=_header_params, 17809 body=_body_params, 17810 post_params=_form_params, 17811 files=_files, 17812 auth_settings=_auth_settings, 17813 collection_formats=_collection_formats, 17814 _host=_host, 17815 _request_auth=_request_auth, 17816 ) 17817 17818 @validate_call 17819 def get_items_by_tag( 17820 self, 17821 board_id_platform_tags: Annotated[ 17822 StrictStr, 17823 Field(description="Unique identifier (ID) of the board where you want to retrieve a specific tag."), 17824 ], 17825 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to retrieve.")], 17826 limit: Optional[Annotated[str, Field(strict=True)]] = None, 17827 offset: Optional[StrictStr] = None, 17828 _request_timeout: Union[ 17829 None, 17830 Annotated[StrictFloat, Field(gt=0)], 17831 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17832 ] = None, 17833 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17834 _content_type: Optional[StrictStr] = None, 17835 _headers: Optional[Dict[StrictStr, Any]] = None, 17836 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17837 ) -> ItemPagedResponse: 17838 """Get items by tag 17839 17840 Retrieves all the items that have the specified tag.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17841 17842 :param board_id_platform_tags: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) 17843 :type board_id_platform_tags: str 17844 :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) 17845 :type tag_id: str 17846 :param limit: 17847 :type limit: str 17848 :param offset: 17849 :type offset: str 17850 :param _request_timeout: timeout setting for this request. If one 17851 number provided, it will be total request 17852 timeout. It can also be a pair (tuple) of 17853 (connection, read) timeouts. 17854 :type _request_timeout: int, tuple(int, int), optional 17855 :param _request_auth: set to override the auth_settings for an a single 17856 request; this effectively ignores the 17857 authentication in the spec for a single request. 17858 :type _request_auth: dict, optional 17859 :param _content_type: force content-type for the request. 17860 :type _content_type: str, Optional 17861 :param _headers: set to override the headers for a single 17862 request; this effectively ignores the headers 17863 in the spec for a single request. 17864 :type _headers: dict, optional 17865 :param _host_index: set to override the host_index for a single 17866 request; this effectively ignores the host_index 17867 in the spec for a single request. 17868 :type _host_index: int, optional 17869 :return: Returns the result object. 17870 """ # noqa: E501 17871 17872 _param = self._get_items_by_tag_serialize( 17873 board_id_platform_tags=board_id_platform_tags, 17874 tag_id=tag_id, 17875 limit=limit, 17876 offset=offset, 17877 _request_auth=_request_auth, 17878 _content_type=_content_type, 17879 _headers=_headers, 17880 _host_index=_host_index, 17881 ) 17882 17883 _response_types_map: Dict[str, Optional[str]] = { 17884 "200": "ItemPagedResponse", 17885 "400": "GetTagsFromItem400Response", 17886 "404": "GetTagsFromItem400Response", 17887 "429": "GetTagsFromItem400Response", 17888 } 17889 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17890 response_data.read() 17891 return self.api_client.response_deserialize( 17892 response_data=response_data, 17893 response_types_map=_response_types_map, 17894 ).data 17895 17896 def _get_items_by_tag_serialize( 17897 self, 17898 board_id_platform_tags, 17899 tag_id, 17900 limit, 17901 offset, 17902 _request_auth, 17903 _content_type, 17904 _headers, 17905 _host_index, 17906 ) -> RequestSerialized: 17907 17908 _host = None 17909 17910 _collection_formats: Dict[str, str] = {} 17911 17912 _path_params: Dict[str, str] = {} 17913 _query_params: List[Tuple[str, str]] = [] 17914 _header_params: Dict[str, Optional[str]] = _headers or {} 17915 _form_params: List[Tuple[str, str]] = [] 17916 _files: Dict[str, str] = {} 17917 _body_params: Optional[bytes] = None 17918 17919 # process the path parameters 17920 if board_id_platform_tags is not None: 17921 _path_params["board_id_PlatformTags"] = board_id_platform_tags 17922 # process the query parameters 17923 if limit is not None: 17924 17925 _query_params.append(("limit", limit)) 17926 17927 if offset is not None: 17928 17929 _query_params.append(("offset", offset)) 17930 17931 if tag_id is not None: 17932 17933 _query_params.append(("tag_id", tag_id)) 17934 17935 # process the header parameters 17936 # process the form parameters 17937 # process the body parameter 17938 17939 # set the HTTP header `Accept` 17940 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 17941 17942 # authentication setting 17943 _auth_settings: List[str] = [] 17944 17945 return self.api_client.param_serialize( 17946 method="GET", 17947 resource_path="/v2/boards/{board_id_PlatformTags}/items", 17948 path_params=_path_params, 17949 query_params=_query_params, 17950 header_params=_header_params, 17951 body=_body_params, 17952 post_params=_form_params, 17953 files=_files, 17954 auth_settings=_auth_settings, 17955 collection_formats=_collection_formats, 17956 _host=_host, 17957 _request_auth=_request_auth, 17958 ) 17959 17960 @validate_call 17961 def get_tag( 17962 self, 17963 board_id: Annotated[ 17964 StrictStr, 17965 Field(description="Unique identifier (ID) of the board where you want to retrieve a specific tag."), 17966 ], 17967 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to retrieve.")], 17968 _request_timeout: Union[ 17969 None, 17970 Annotated[StrictFloat, Field(gt=0)], 17971 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17972 ] = None, 17973 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17974 _content_type: Optional[StrictStr] = None, 17975 _headers: Optional[Dict[StrictStr, Any]] = None, 17976 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17977 ) -> TagWithLinks: 17978 """Get tag 17979 17980 Retrieves information for a specific tag.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17981 17982 :param board_id: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) 17983 :type board_id: str 17984 :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) 17985 :type tag_id: str 17986 :param _request_timeout: timeout setting for this request. If one 17987 number provided, it will be total request 17988 timeout. It can also be a pair (tuple) of 17989 (connection, read) timeouts. 17990 :type _request_timeout: int, tuple(int, int), optional 17991 :param _request_auth: set to override the auth_settings for an a single 17992 request; this effectively ignores the 17993 authentication in the spec for a single request. 17994 :type _request_auth: dict, optional 17995 :param _content_type: force content-type for the request. 17996 :type _content_type: str, Optional 17997 :param _headers: set to override the headers for a single 17998 request; this effectively ignores the headers 17999 in the spec for a single request. 18000 :type _headers: dict, optional 18001 :param _host_index: set to override the host_index for a single 18002 request; this effectively ignores the host_index 18003 in the spec for a single request. 18004 :type _host_index: int, optional 18005 :return: Returns the result object. 18006 """ # noqa: E501 18007 18008 _param = self._get_tag_serialize( 18009 board_id=board_id, 18010 tag_id=tag_id, 18011 _request_auth=_request_auth, 18012 _content_type=_content_type, 18013 _headers=_headers, 18014 _host_index=_host_index, 18015 ) 18016 18017 _response_types_map: Dict[str, Optional[str]] = { 18018 "200": "TagWithLinks", 18019 "400": "GetTagsFromItem400Response", 18020 "404": "GetTagsFromItem400Response", 18021 "429": "GetTagsFromItem400Response", 18022 } 18023 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18024 response_data.read() 18025 return self.api_client.response_deserialize( 18026 response_data=response_data, 18027 response_types_map=_response_types_map, 18028 ).data 18029 18030 def _get_tag_serialize( 18031 self, 18032 board_id, 18033 tag_id, 18034 _request_auth, 18035 _content_type, 18036 _headers, 18037 _host_index, 18038 ) -> RequestSerialized: 18039 18040 _host = None 18041 18042 _collection_formats: Dict[str, str] = {} 18043 18044 _path_params: Dict[str, str] = {} 18045 _query_params: List[Tuple[str, str]] = [] 18046 _header_params: Dict[str, Optional[str]] = _headers or {} 18047 _form_params: List[Tuple[str, str]] = [] 18048 _files: Dict[str, str] = {} 18049 _body_params: Optional[bytes] = None 18050 18051 # process the path parameters 18052 if board_id is not None: 18053 _path_params["board_id"] = board_id 18054 if tag_id is not None: 18055 _path_params["tag_id"] = tag_id 18056 # process the query parameters 18057 # process the header parameters 18058 # process the form parameters 18059 # process the body parameter 18060 18061 # set the HTTP header `Accept` 18062 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18063 18064 # authentication setting 18065 _auth_settings: List[str] = [] 18066 18067 return self.api_client.param_serialize( 18068 method="GET", 18069 resource_path="/v2/boards/{board_id}/tags/{tag_id}", 18070 path_params=_path_params, 18071 query_params=_query_params, 18072 header_params=_header_params, 18073 body=_body_params, 18074 post_params=_form_params, 18075 files=_files, 18076 auth_settings=_auth_settings, 18077 collection_formats=_collection_formats, 18078 _host=_host, 18079 _request_auth=_request_auth, 18080 ) 18081 18082 @validate_call 18083 def get_tags_from_board( 18084 self, 18085 board_id: Annotated[ 18086 StrictStr, Field(description="Unique identifier (ID) of the board whose tags you want to retrieve.") 18087 ], 18088 limit: Optional[Annotated[str, Field(strict=True)]] = None, 18089 offset: Optional[StrictStr] = None, 18090 _request_timeout: Union[ 18091 None, 18092 Annotated[StrictFloat, Field(gt=0)], 18093 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18094 ] = None, 18095 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18096 _content_type: Optional[StrictStr] = None, 18097 _headers: Optional[Dict[StrictStr, Any]] = None, 18098 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18099 ) -> TagsPagedResponse: 18100 """Get tags from board 18101 18102 Retrieves all the tags from the specified board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18103 18104 :param board_id: Unique identifier (ID) of the board whose tags you want to retrieve. (required) 18105 :type board_id: str 18106 :param limit: 18107 :type limit: str 18108 :param offset: 18109 :type offset: str 18110 :param _request_timeout: timeout setting for this request. If one 18111 number provided, it will be total request 18112 timeout. It can also be a pair (tuple) of 18113 (connection, read) timeouts. 18114 :type _request_timeout: int, tuple(int, int), optional 18115 :param _request_auth: set to override the auth_settings for an a single 18116 request; this effectively ignores the 18117 authentication in the spec for a single request. 18118 :type _request_auth: dict, optional 18119 :param _content_type: force content-type for the request. 18120 :type _content_type: str, Optional 18121 :param _headers: set to override the headers for a single 18122 request; this effectively ignores the headers 18123 in the spec for a single request. 18124 :type _headers: dict, optional 18125 :param _host_index: set to override the host_index for a single 18126 request; this effectively ignores the host_index 18127 in the spec for a single request. 18128 :type _host_index: int, optional 18129 :return: Returns the result object. 18130 """ # noqa: E501 18131 18132 _param = self._get_tags_from_board_serialize( 18133 board_id=board_id, 18134 limit=limit, 18135 offset=offset, 18136 _request_auth=_request_auth, 18137 _content_type=_content_type, 18138 _headers=_headers, 18139 _host_index=_host_index, 18140 ) 18141 18142 _response_types_map: Dict[str, Optional[str]] = { 18143 "200": "TagsPagedResponse", 18144 "400": "GetTagsFromItem400Response", 18145 "404": "GetTagsFromItem400Response", 18146 "429": "GetTagsFromItem400Response", 18147 } 18148 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18149 response_data.read() 18150 return self.api_client.response_deserialize( 18151 response_data=response_data, 18152 response_types_map=_response_types_map, 18153 ).data 18154 18155 def _get_tags_from_board_serialize( 18156 self, 18157 board_id, 18158 limit, 18159 offset, 18160 _request_auth, 18161 _content_type, 18162 _headers, 18163 _host_index, 18164 ) -> RequestSerialized: 18165 18166 _host = None 18167 18168 _collection_formats: Dict[str, str] = {} 18169 18170 _path_params: Dict[str, str] = {} 18171 _query_params: List[Tuple[str, str]] = [] 18172 _header_params: Dict[str, Optional[str]] = _headers or {} 18173 _form_params: List[Tuple[str, str]] = [] 18174 _files: Dict[str, str] = {} 18175 _body_params: Optional[bytes] = None 18176 18177 # process the path parameters 18178 if board_id is not None: 18179 _path_params["board_id"] = board_id 18180 # process the query parameters 18181 if limit is not None: 18182 18183 _query_params.append(("limit", limit)) 18184 18185 if offset is not None: 18186 18187 _query_params.append(("offset", offset)) 18188 18189 # process the header parameters 18190 # process the form parameters 18191 # process the body parameter 18192 18193 # set the HTTP header `Accept` 18194 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18195 18196 # authentication setting 18197 _auth_settings: List[str] = [] 18198 18199 return self.api_client.param_serialize( 18200 method="GET", 18201 resource_path="/v2/boards/{board_id}/tags", 18202 path_params=_path_params, 18203 query_params=_query_params, 18204 header_params=_header_params, 18205 body=_body_params, 18206 post_params=_form_params, 18207 files=_files, 18208 auth_settings=_auth_settings, 18209 collection_formats=_collection_formats, 18210 _host=_host, 18211 _request_auth=_request_auth, 18212 ) 18213 18214 @validate_call 18215 def get_tags_from_item( 18216 self, 18217 board_id: Annotated[ 18218 StrictStr, 18219 Field(description="Unique identifier (ID) of the board with the item whose tags you want to retrieve."), 18220 ], 18221 item_id: Annotated[ 18222 StrictStr, Field(description="Unique identifier (ID) of the item whose tags you want to retrieve.") 18223 ], 18224 _request_timeout: Union[ 18225 None, 18226 Annotated[StrictFloat, Field(gt=0)], 18227 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18228 ] = None, 18229 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18230 _content_type: Optional[StrictStr] = None, 18231 _headers: Optional[Dict[StrictStr, Any]] = None, 18232 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18233 ) -> GetTagsResponse: 18234 """Get tags from item 18235 18236 Retrieves all the tags from the specified item.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18237 18238 :param board_id: Unique identifier (ID) of the board with the item whose tags you want to retrieve. (required) 18239 :type board_id: str 18240 :param item_id: Unique identifier (ID) of the item whose tags you want to retrieve. (required) 18241 :type item_id: str 18242 :param _request_timeout: timeout setting for this request. If one 18243 number provided, it will be total request 18244 timeout. It can also be a pair (tuple) of 18245 (connection, read) timeouts. 18246 :type _request_timeout: int, tuple(int, int), optional 18247 :param _request_auth: set to override the auth_settings for an a single 18248 request; this effectively ignores the 18249 authentication in the spec for a single request. 18250 :type _request_auth: dict, optional 18251 :param _content_type: force content-type for the request. 18252 :type _content_type: str, Optional 18253 :param _headers: set to override the headers for a single 18254 request; this effectively ignores the headers 18255 in the spec for a single request. 18256 :type _headers: dict, optional 18257 :param _host_index: set to override the host_index for a single 18258 request; this effectively ignores the host_index 18259 in the spec for a single request. 18260 :type _host_index: int, optional 18261 :return: Returns the result object. 18262 """ # noqa: E501 18263 18264 _param = self._get_tags_from_item_serialize( 18265 board_id=board_id, 18266 item_id=item_id, 18267 _request_auth=_request_auth, 18268 _content_type=_content_type, 18269 _headers=_headers, 18270 _host_index=_host_index, 18271 ) 18272 18273 _response_types_map: Dict[str, Optional[str]] = { 18274 "200": "GetTagsResponse", 18275 "400": "GetTagsFromItem400Response", 18276 "404": "GetTagsFromItem400Response", 18277 "429": "GetTagsFromItem400Response", 18278 } 18279 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18280 response_data.read() 18281 return self.api_client.response_deserialize( 18282 response_data=response_data, 18283 response_types_map=_response_types_map, 18284 ).data 18285 18286 def _get_tags_from_item_serialize( 18287 self, 18288 board_id, 18289 item_id, 18290 _request_auth, 18291 _content_type, 18292 _headers, 18293 _host_index, 18294 ) -> RequestSerialized: 18295 18296 _host = None 18297 18298 _collection_formats: Dict[str, str] = {} 18299 18300 _path_params: Dict[str, str] = {} 18301 _query_params: List[Tuple[str, str]] = [] 18302 _header_params: Dict[str, Optional[str]] = _headers or {} 18303 _form_params: List[Tuple[str, str]] = [] 18304 _files: Dict[str, str] = {} 18305 _body_params: Optional[bytes] = None 18306 18307 # process the path parameters 18308 if board_id is not None: 18309 _path_params["board_id"] = board_id 18310 if item_id is not None: 18311 _path_params["item_id"] = item_id 18312 # process the query parameters 18313 # process the header parameters 18314 # process the form parameters 18315 # process the body parameter 18316 18317 # set the HTTP header `Accept` 18318 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18319 18320 # authentication setting 18321 _auth_settings: List[str] = [] 18322 18323 return self.api_client.param_serialize( 18324 method="GET", 18325 resource_path="/v2/boards/{board_id}/items/{item_id}/tags", 18326 path_params=_path_params, 18327 query_params=_query_params, 18328 header_params=_header_params, 18329 body=_body_params, 18330 post_params=_form_params, 18331 files=_files, 18332 auth_settings=_auth_settings, 18333 collection_formats=_collection_formats, 18334 _host=_host, 18335 _request_auth=_request_auth, 18336 ) 18337 18338 @validate_call 18339 def remove_tag_from_item( 18340 self, 18341 board_id_platform_tags: Annotated[ 18342 StrictStr, 18343 Field(description="Unique identifier (ID) of the board with the item that you want to remove a tag from."), 18344 ], 18345 item_id: Annotated[ 18346 StrictStr, Field(description="Unique identifier (ID) of the item that you want to remove the tag from.") 18347 ], 18348 tag_id: Annotated[ 18349 StrictStr, Field(description="Unique identifier (ID) of the tag that you want to remove from the item.") 18350 ], 18351 _request_timeout: Union[ 18352 None, 18353 Annotated[StrictFloat, Field(gt=0)], 18354 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18355 ] = None, 18356 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18357 _content_type: Optional[StrictStr] = None, 18358 _headers: Optional[Dict[StrictStr, Any]] = None, 18359 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18360 ) -> object: 18361 """Remove tag from item 18362 18363 Removes the specified tag from the specified item. The tag still exists on the board. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18364 18365 :param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to remove a tag from. (required) 18366 :type board_id_platform_tags: str 18367 :param item_id: Unique identifier (ID) of the item that you want to remove the tag from. (required) 18368 :type item_id: str 18369 :param tag_id: Unique identifier (ID) of the tag that you want to remove from the item. (required) 18370 :type tag_id: str 18371 :param _request_timeout: timeout setting for this request. If one 18372 number provided, it will be total request 18373 timeout. It can also be a pair (tuple) of 18374 (connection, read) timeouts. 18375 :type _request_timeout: int, tuple(int, int), optional 18376 :param _request_auth: set to override the auth_settings for an a single 18377 request; this effectively ignores the 18378 authentication in the spec for a single request. 18379 :type _request_auth: dict, optional 18380 :param _content_type: force content-type for the request. 18381 :type _content_type: str, Optional 18382 :param _headers: set to override the headers for a single 18383 request; this effectively ignores the headers 18384 in the spec for a single request. 18385 :type _headers: dict, optional 18386 :param _host_index: set to override the host_index for a single 18387 request; this effectively ignores the host_index 18388 in the spec for a single request. 18389 :type _host_index: int, optional 18390 :return: Returns the result object. 18391 """ # noqa: E501 18392 18393 _param = self._remove_tag_from_item_serialize( 18394 board_id_platform_tags=board_id_platform_tags, 18395 item_id=item_id, 18396 tag_id=tag_id, 18397 _request_auth=_request_auth, 18398 _content_type=_content_type, 18399 _headers=_headers, 18400 _host_index=_host_index, 18401 ) 18402 18403 _response_types_map: Dict[str, Optional[str]] = { 18404 "204": "object", 18405 "400": "GetTagsFromItem400Response", 18406 "404": "GetTagsFromItem400Response", 18407 "429": "GetTagsFromItem400Response", 18408 } 18409 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18410 response_data.read() 18411 return self.api_client.response_deserialize( 18412 response_data=response_data, 18413 response_types_map=_response_types_map, 18414 ).data 18415 18416 def _remove_tag_from_item_serialize( 18417 self, 18418 board_id_platform_tags, 18419 item_id, 18420 tag_id, 18421 _request_auth, 18422 _content_type, 18423 _headers, 18424 _host_index, 18425 ) -> RequestSerialized: 18426 18427 _host = None 18428 18429 _collection_formats: Dict[str, str] = {} 18430 18431 _path_params: Dict[str, str] = {} 18432 _query_params: List[Tuple[str, str]] = [] 18433 _header_params: Dict[str, Optional[str]] = _headers or {} 18434 _form_params: List[Tuple[str, str]] = [] 18435 _files: Dict[str, str] = {} 18436 _body_params: Optional[bytes] = None 18437 18438 # process the path parameters 18439 if board_id_platform_tags is not None: 18440 _path_params["board_id_PlatformTags"] = board_id_platform_tags 18441 if item_id is not None: 18442 _path_params["item_id"] = item_id 18443 # process the query parameters 18444 if tag_id is not None: 18445 18446 _query_params.append(("tag_id", tag_id)) 18447 18448 # process the header parameters 18449 # process the form parameters 18450 # process the body parameter 18451 18452 # set the HTTP header `Accept` 18453 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18454 18455 # authentication setting 18456 _auth_settings: List[str] = [] 18457 18458 return self.api_client.param_serialize( 18459 method="DELETE", 18460 resource_path="/v2/boards/{board_id_PlatformTags}/items/{item_id}", 18461 path_params=_path_params, 18462 query_params=_query_params, 18463 header_params=_header_params, 18464 body=_body_params, 18465 post_params=_form_params, 18466 files=_files, 18467 auth_settings=_auth_settings, 18468 collection_formats=_collection_formats, 18469 _host=_host, 18470 _request_auth=_request_auth, 18471 ) 18472 18473 @validate_call 18474 def update_tag( 18475 self, 18476 board_id: Annotated[ 18477 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update a specific tag.") 18478 ], 18479 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to update.")], 18480 tag_update_request: TagUpdateRequest, 18481 _request_timeout: Union[ 18482 None, 18483 Annotated[StrictFloat, Field(gt=0)], 18484 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18485 ] = None, 18486 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18487 _content_type: Optional[StrictStr] = None, 18488 _headers: Optional[Dict[StrictStr, Any]] = None, 18489 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18490 ) -> TagWithLinks: 18491 """Update tag 18492 18493 Updates a tag based on the data properties provided in the request body. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18494 18495 :param board_id: Unique identifier (ID) of the board where you want to update a specific tag. (required) 18496 :type board_id: str 18497 :param tag_id: Unique identifier (ID) of the tag that you want to update. (required) 18498 :type tag_id: str 18499 :param tag_update_request: (required) 18500 :type tag_update_request: TagUpdateRequest 18501 :param _request_timeout: timeout setting for this request. If one 18502 number provided, it will be total request 18503 timeout. It can also be a pair (tuple) of 18504 (connection, read) timeouts. 18505 :type _request_timeout: int, tuple(int, int), optional 18506 :param _request_auth: set to override the auth_settings for an a single 18507 request; this effectively ignores the 18508 authentication in the spec for a single request. 18509 :type _request_auth: dict, optional 18510 :param _content_type: force content-type for the request. 18511 :type _content_type: str, Optional 18512 :param _headers: set to override the headers for a single 18513 request; this effectively ignores the headers 18514 in the spec for a single request. 18515 :type _headers: dict, optional 18516 :param _host_index: set to override the host_index for a single 18517 request; this effectively ignores the host_index 18518 in the spec for a single request. 18519 :type _host_index: int, optional 18520 :return: Returns the result object. 18521 """ # noqa: E501 18522 18523 _param = self._update_tag_serialize( 18524 board_id=board_id, 18525 tag_id=tag_id, 18526 tag_update_request=tag_update_request, 18527 _request_auth=_request_auth, 18528 _content_type=_content_type, 18529 _headers=_headers, 18530 _host_index=_host_index, 18531 ) 18532 18533 _response_types_map: Dict[str, Optional[str]] = { 18534 "200": "TagWithLinks", 18535 "400": "GetTagsFromItem400Response", 18536 "404": "GetTagsFromItem400Response", 18537 "429": "GetTagsFromItem400Response", 18538 } 18539 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18540 response_data.read() 18541 return self.api_client.response_deserialize( 18542 response_data=response_data, 18543 response_types_map=_response_types_map, 18544 ).data 18545 18546 def _update_tag_serialize( 18547 self, 18548 board_id, 18549 tag_id, 18550 tag_update_request, 18551 _request_auth, 18552 _content_type, 18553 _headers, 18554 _host_index, 18555 ) -> RequestSerialized: 18556 18557 _host = None 18558 18559 _collection_formats: Dict[str, str] = {} 18560 18561 _path_params: Dict[str, str] = {} 18562 _query_params: List[Tuple[str, str]] = [] 18563 _header_params: Dict[str, Optional[str]] = _headers or {} 18564 _form_params: List[Tuple[str, str]] = [] 18565 _files: Dict[str, str] = {} 18566 _body_params: Optional[bytes] = None 18567 18568 # process the path parameters 18569 if board_id is not None: 18570 _path_params["board_id"] = board_id 18571 if tag_id is not None: 18572 _path_params["tag_id"] = tag_id 18573 # process the query parameters 18574 # process the header parameters 18575 # process the form parameters 18576 # process the body parameter 18577 if tag_update_request is not None: 18578 _body_params = tag_update_request 18579 18580 # set the HTTP header `Accept` 18581 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18582 18583 # set the HTTP header `Content-Type` 18584 if _content_type: 18585 _header_params["Content-Type"] = _content_type 18586 else: 18587 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 18588 if _default_content_type is not None: 18589 _header_params["Content-Type"] = _default_content_type 18590 18591 # authentication setting 18592 _auth_settings: List[str] = [] 18593 18594 return self.api_client.param_serialize( 18595 method="PATCH", 18596 resource_path="/v2/boards/{board_id}/tags/{tag_id}", 18597 path_params=_path_params, 18598 query_params=_query_params, 18599 header_params=_header_params, 18600 body=_body_params, 18601 post_params=_form_params, 18602 files=_files, 18603 auth_settings=_auth_settings, 18604 collection_formats=_collection_formats, 18605 _host=_host, 18606 _request_auth=_request_auth, 18607 ) 18608 18609 @validate_call 18610 def create_text_item( 18611 self, 18612 board_id: Annotated[ 18613 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 18614 ], 18615 text_create_request: TextCreateRequest, 18616 _request_timeout: Union[ 18617 None, 18618 Annotated[StrictFloat, Field(gt=0)], 18619 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18620 ] = None, 18621 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18622 _content_type: Optional[StrictStr] = None, 18623 _headers: Optional[Dict[StrictStr, Any]] = None, 18624 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18625 ) -> TextItem: 18626 """Create text item 18627 18628 Adds a text item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 18629 18630 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 18631 :type board_id: str 18632 :param text_create_request: (required) 18633 :type text_create_request: TextCreateRequest 18634 :param _request_timeout: timeout setting for this request. If one 18635 number provided, it will be total request 18636 timeout. It can also be a pair (tuple) of 18637 (connection, read) timeouts. 18638 :type _request_timeout: int, tuple(int, int), optional 18639 :param _request_auth: set to override the auth_settings for an a single 18640 request; this effectively ignores the 18641 authentication in the spec for a single request. 18642 :type _request_auth: dict, optional 18643 :param _content_type: force content-type for the request. 18644 :type _content_type: str, Optional 18645 :param _headers: set to override the headers for a single 18646 request; this effectively ignores the headers 18647 in the spec for a single request. 18648 :type _headers: dict, optional 18649 :param _host_index: set to override the host_index for a single 18650 request; this effectively ignores the host_index 18651 in the spec for a single request. 18652 :type _host_index: int, optional 18653 :return: Returns the result object. 18654 """ # noqa: E501 18655 18656 _param = self._create_text_item_serialize( 18657 board_id=board_id, 18658 text_create_request=text_create_request, 18659 _request_auth=_request_auth, 18660 _content_type=_content_type, 18661 _headers=_headers, 18662 _host_index=_host_index, 18663 ) 18664 18665 _response_types_map: Dict[str, Optional[str]] = { 18666 "201": "TextItem", 18667 "400": None, 18668 "404": None, 18669 "429": None, 18670 } 18671 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18672 response_data.read() 18673 return self.api_client.response_deserialize( 18674 response_data=response_data, 18675 response_types_map=_response_types_map, 18676 ).data 18677 18678 def _create_text_item_serialize( 18679 self, 18680 board_id, 18681 text_create_request, 18682 _request_auth, 18683 _content_type, 18684 _headers, 18685 _host_index, 18686 ) -> RequestSerialized: 18687 18688 _host = None 18689 18690 _collection_formats: Dict[str, str] = {} 18691 18692 _path_params: Dict[str, str] = {} 18693 _query_params: List[Tuple[str, str]] = [] 18694 _header_params: Dict[str, Optional[str]] = _headers or {} 18695 _form_params: List[Tuple[str, str]] = [] 18696 _files: Dict[str, str] = {} 18697 _body_params: Optional[bytes] = None 18698 18699 # process the path parameters 18700 if board_id is not None: 18701 _path_params["board_id"] = board_id 18702 # process the query parameters 18703 # process the header parameters 18704 # process the form parameters 18705 # process the body parameter 18706 if text_create_request is not None: 18707 _body_params = text_create_request 18708 18709 # set the HTTP header `Accept` 18710 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18711 18712 # set the HTTP header `Content-Type` 18713 if _content_type: 18714 _header_params["Content-Type"] = _content_type 18715 else: 18716 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 18717 if _default_content_type is not None: 18718 _header_params["Content-Type"] = _default_content_type 18719 18720 # authentication setting 18721 _auth_settings: List[str] = [] 18722 18723 return self.api_client.param_serialize( 18724 method="POST", 18725 resource_path="/v2/boards/{board_id}/texts", 18726 path_params=_path_params, 18727 query_params=_query_params, 18728 header_params=_header_params, 18729 body=_body_params, 18730 post_params=_form_params, 18731 files=_files, 18732 auth_settings=_auth_settings, 18733 collection_formats=_collection_formats, 18734 _host=_host, 18735 _request_auth=_request_auth, 18736 ) 18737 18738 @validate_call 18739 def delete_text_item( 18740 self, 18741 board_id: Annotated[ 18742 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 18743 ], 18744 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 18745 _request_timeout: Union[ 18746 None, 18747 Annotated[StrictFloat, Field(gt=0)], 18748 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18749 ] = None, 18750 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18751 _content_type: Optional[StrictStr] = None, 18752 _headers: Optional[Dict[StrictStr, Any]] = None, 18753 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18754 ) -> object: 18755 """Delete text item 18756 18757 Deletes a text item from the board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 18758 18759 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 18760 :type board_id: str 18761 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 18762 :type item_id: str 18763 :param _request_timeout: timeout setting for this request. If one 18764 number provided, it will be total request 18765 timeout. It can also be a pair (tuple) of 18766 (connection, read) timeouts. 18767 :type _request_timeout: int, tuple(int, int), optional 18768 :param _request_auth: set to override the auth_settings for an a single 18769 request; this effectively ignores the 18770 authentication in the spec for a single request. 18771 :type _request_auth: dict, optional 18772 :param _content_type: force content-type for the request. 18773 :type _content_type: str, Optional 18774 :param _headers: set to override the headers for a single 18775 request; this effectively ignores the headers 18776 in the spec for a single request. 18777 :type _headers: dict, optional 18778 :param _host_index: set to override the host_index for a single 18779 request; this effectively ignores the host_index 18780 in the spec for a single request. 18781 :type _host_index: int, optional 18782 :return: Returns the result object. 18783 """ # noqa: E501 18784 18785 _param = self._delete_text_item_serialize( 18786 board_id=board_id, 18787 item_id=item_id, 18788 _request_auth=_request_auth, 18789 _content_type=_content_type, 18790 _headers=_headers, 18791 _host_index=_host_index, 18792 ) 18793 18794 _response_types_map: Dict[str, Optional[str]] = { 18795 "204": "object", 18796 "400": None, 18797 "404": None, 18798 "429": None, 18799 } 18800 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18801 response_data.read() 18802 return self.api_client.response_deserialize( 18803 response_data=response_data, 18804 response_types_map=_response_types_map, 18805 ).data 18806 18807 def _delete_text_item_serialize( 18808 self, 18809 board_id, 18810 item_id, 18811 _request_auth, 18812 _content_type, 18813 _headers, 18814 _host_index, 18815 ) -> RequestSerialized: 18816 18817 _host = None 18818 18819 _collection_formats: Dict[str, str] = {} 18820 18821 _path_params: Dict[str, str] = {} 18822 _query_params: List[Tuple[str, str]] = [] 18823 _header_params: Dict[str, Optional[str]] = _headers or {} 18824 _form_params: List[Tuple[str, str]] = [] 18825 _files: Dict[str, str] = {} 18826 _body_params: Optional[bytes] = None 18827 18828 # process the path parameters 18829 if board_id is not None: 18830 _path_params["board_id"] = board_id 18831 if item_id is not None: 18832 _path_params["item_id"] = item_id 18833 # process the query parameters 18834 # process the header parameters 18835 # process the form parameters 18836 # process the body parameter 18837 18838 # set the HTTP header `Accept` 18839 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18840 18841 # authentication setting 18842 _auth_settings: List[str] = [] 18843 18844 return self.api_client.param_serialize( 18845 method="DELETE", 18846 resource_path="/v2/boards/{board_id}/texts/{item_id}", 18847 path_params=_path_params, 18848 query_params=_query_params, 18849 header_params=_header_params, 18850 body=_body_params, 18851 post_params=_form_params, 18852 files=_files, 18853 auth_settings=_auth_settings, 18854 collection_formats=_collection_formats, 18855 _host=_host, 18856 _request_auth=_request_auth, 18857 ) 18858 18859 @validate_call 18860 def get_text_item( 18861 self, 18862 board_id: Annotated[ 18863 StrictStr, 18864 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 18865 ], 18866 item_id: Annotated[ 18867 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 18868 ], 18869 _request_timeout: Union[ 18870 None, 18871 Annotated[StrictFloat, Field(gt=0)], 18872 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18873 ] = None, 18874 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18875 _content_type: Optional[StrictStr] = None, 18876 _headers: Optional[Dict[StrictStr, Any]] = None, 18877 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18878 ) -> TextItem: 18879 """Get text item 18880 18881 Retrieves information for a specific text item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18882 18883 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 18884 :type board_id: str 18885 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 18886 :type item_id: str 18887 :param _request_timeout: timeout setting for this request. If one 18888 number provided, it will be total request 18889 timeout. It can also be a pair (tuple) of 18890 (connection, read) timeouts. 18891 :type _request_timeout: int, tuple(int, int), optional 18892 :param _request_auth: set to override the auth_settings for an a single 18893 request; this effectively ignores the 18894 authentication in the spec for a single request. 18895 :type _request_auth: dict, optional 18896 :param _content_type: force content-type for the request. 18897 :type _content_type: str, Optional 18898 :param _headers: set to override the headers for a single 18899 request; this effectively ignores the headers 18900 in the spec for a single request. 18901 :type _headers: dict, optional 18902 :param _host_index: set to override the host_index for a single 18903 request; this effectively ignores the host_index 18904 in the spec for a single request. 18905 :type _host_index: int, optional 18906 :return: Returns the result object. 18907 """ # noqa: E501 18908 18909 _param = self._get_text_item_serialize( 18910 board_id=board_id, 18911 item_id=item_id, 18912 _request_auth=_request_auth, 18913 _content_type=_content_type, 18914 _headers=_headers, 18915 _host_index=_host_index, 18916 ) 18917 18918 _response_types_map: Dict[str, Optional[str]] = { 18919 "200": "TextItem", 18920 "400": None, 18921 "404": None, 18922 "429": None, 18923 } 18924 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18925 response_data.read() 18926 return self.api_client.response_deserialize( 18927 response_data=response_data, 18928 response_types_map=_response_types_map, 18929 ).data 18930 18931 def _get_text_item_serialize( 18932 self, 18933 board_id, 18934 item_id, 18935 _request_auth, 18936 _content_type, 18937 _headers, 18938 _host_index, 18939 ) -> RequestSerialized: 18940 18941 _host = None 18942 18943 _collection_formats: Dict[str, str] = {} 18944 18945 _path_params: Dict[str, str] = {} 18946 _query_params: List[Tuple[str, str]] = [] 18947 _header_params: Dict[str, Optional[str]] = _headers or {} 18948 _form_params: List[Tuple[str, str]] = [] 18949 _files: Dict[str, str] = {} 18950 _body_params: Optional[bytes] = None 18951 18952 # process the path parameters 18953 if board_id is not None: 18954 _path_params["board_id"] = board_id 18955 if item_id is not None: 18956 _path_params["item_id"] = item_id 18957 # process the query parameters 18958 # process the header parameters 18959 # process the form parameters 18960 # process the body parameter 18961 18962 # set the HTTP header `Accept` 18963 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 18964 18965 # authentication setting 18966 _auth_settings: List[str] = [] 18967 18968 return self.api_client.param_serialize( 18969 method="GET", 18970 resource_path="/v2/boards/{board_id}/texts/{item_id}", 18971 path_params=_path_params, 18972 query_params=_query_params, 18973 header_params=_header_params, 18974 body=_body_params, 18975 post_params=_form_params, 18976 files=_files, 18977 auth_settings=_auth_settings, 18978 collection_formats=_collection_formats, 18979 _host=_host, 18980 _request_auth=_request_auth, 18981 ) 18982 18983 @validate_call 18984 def update_text_item( 18985 self, 18986 board_id: Annotated[ 18987 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 18988 ], 18989 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 18990 text_update_request: TextUpdateRequest, 18991 _request_timeout: Union[ 18992 None, 18993 Annotated[StrictFloat, Field(gt=0)], 18994 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18995 ] = None, 18996 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18997 _content_type: Optional[StrictStr] = None, 18998 _headers: Optional[Dict[StrictStr, Any]] = None, 18999 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19000 ) -> TextItem: 19001 """Update text item 19002 19003 Updates a text item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 19004 19005 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 19006 :type board_id: str 19007 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 19008 :type item_id: str 19009 :param text_update_request: (required) 19010 :type text_update_request: TextUpdateRequest 19011 :param _request_timeout: timeout setting for this request. If one 19012 number provided, it will be total request 19013 timeout. It can also be a pair (tuple) of 19014 (connection, read) timeouts. 19015 :type _request_timeout: int, tuple(int, int), optional 19016 :param _request_auth: set to override the auth_settings for an a single 19017 request; this effectively ignores the 19018 authentication in the spec for a single request. 19019 :type _request_auth: dict, optional 19020 :param _content_type: force content-type for the request. 19021 :type _content_type: str, Optional 19022 :param _headers: set to override the headers for a single 19023 request; this effectively ignores the headers 19024 in the spec for a single request. 19025 :type _headers: dict, optional 19026 :param _host_index: set to override the host_index for a single 19027 request; this effectively ignores the host_index 19028 in the spec for a single request. 19029 :type _host_index: int, optional 19030 :return: Returns the result object. 19031 """ # noqa: E501 19032 19033 _param = self._update_text_item_serialize( 19034 board_id=board_id, 19035 item_id=item_id, 19036 text_update_request=text_update_request, 19037 _request_auth=_request_auth, 19038 _content_type=_content_type, 19039 _headers=_headers, 19040 _host_index=_host_index, 19041 ) 19042 19043 _response_types_map: Dict[str, Optional[str]] = { 19044 "200": "TextItem", 19045 "400": None, 19046 "404": None, 19047 "409": None, 19048 "429": None, 19049 } 19050 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19051 response_data.read() 19052 return self.api_client.response_deserialize( 19053 response_data=response_data, 19054 response_types_map=_response_types_map, 19055 ).data 19056 19057 def _update_text_item_serialize( 19058 self, 19059 board_id, 19060 item_id, 19061 text_update_request, 19062 _request_auth, 19063 _content_type, 19064 _headers, 19065 _host_index, 19066 ) -> RequestSerialized: 19067 19068 _host = None 19069 19070 _collection_formats: Dict[str, str] = {} 19071 19072 _path_params: Dict[str, str] = {} 19073 _query_params: List[Tuple[str, str]] = [] 19074 _header_params: Dict[str, Optional[str]] = _headers or {} 19075 _form_params: List[Tuple[str, str]] = [] 19076 _files: Dict[str, str] = {} 19077 _body_params: Optional[bytes] = None 19078 19079 # process the path parameters 19080 if board_id is not None: 19081 _path_params["board_id"] = board_id 19082 if item_id is not None: 19083 _path_params["item_id"] = item_id 19084 # process the query parameters 19085 # process the header parameters 19086 # process the form parameters 19087 # process the body parameter 19088 if text_update_request is not None: 19089 _body_params = text_update_request 19090 19091 # set the HTTP header `Accept` 19092 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 19093 19094 # set the HTTP header `Content-Type` 19095 if _content_type: 19096 _header_params["Content-Type"] = _content_type 19097 else: 19098 _default_content_type = self.api_client.select_header_content_type(["application/json"]) 19099 if _default_content_type is not None: 19100 _header_params["Content-Type"] = _default_content_type 19101 19102 # authentication setting 19103 _auth_settings: List[str] = [] 19104 19105 return self.api_client.param_serialize( 19106 method="PATCH", 19107 resource_path="/v2/boards/{board_id}/texts/{item_id}", 19108 path_params=_path_params, 19109 query_params=_query_params, 19110 header_params=_header_params, 19111 body=_body_params, 19112 post_params=_form_params, 19113 files=_files, 19114 auth_settings=_auth_settings, 19115 collection_formats=_collection_formats, 19116 _host=_host, 19117 _request_auth=_request_auth, 19118 ) 19119 19120 @validate_call 19121 def revoke_token( 19122 self, 19123 access_token: Annotated[StrictStr, Field(description="Access token that you want to revoke")], 19124 _request_timeout: Union[ 19125 None, 19126 Annotated[StrictFloat, Field(gt=0)], 19127 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 19128 ] = None, 19129 _request_auth: Optional[Dict[StrictStr, Any]] = None, 19130 _content_type: Optional[StrictStr] = None, 19131 _headers: Optional[Dict[StrictStr, Any]] = None, 19132 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19133 ) -> None: 19134 """(Deprecated) Revoke token (v1) 19135 19136 <p><b>Please use the new revoke endpoint <code>/v2/oauth/revoke</code>. This endpoint is considered vulnerable and deprecated due to access token passed publicly in the URL.</b></p> Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user. 19137 19138 :param access_token: Access token that you want to revoke (required) 19139 :type access_token: str 19140 :param _request_timeout: timeout setting for this request. If one 19141 number provided, it will be total request 19142 timeout. It can also be a pair (tuple) of 19143 (connection, read) timeouts. 19144 :type _request_timeout: int, tuple(int, int), optional 19145 :param _request_auth: set to override the auth_settings for an a single 19146 request; this effectively ignores the 19147 authentication in the spec for a single request. 19148 :type _request_auth: dict, optional 19149 :param _content_type: force content-type for the request. 19150 :type _content_type: str, Optional 19151 :param _headers: set to override the headers for a single 19152 request; this effectively ignores the headers 19153 in the spec for a single request. 19154 :type _headers: dict, optional 19155 :param _host_index: set to override the host_index for a single 19156 request; this effectively ignores the host_index 19157 in the spec for a single request. 19158 :type _host_index: int, optional 19159 :return: Returns the result object. 19160 """ # noqa: E501 19161 warnings.warn("POST /v1/oauth/revoke is deprecated.", DeprecationWarning) 19162 19163 _param = self._revoke_token_serialize( 19164 access_token=access_token, 19165 _request_auth=_request_auth, 19166 _content_type=_content_type, 19167 _headers=_headers, 19168 _host_index=_host_index, 19169 ) 19170 19171 _response_types_map: Dict[str, Optional[str]] = { 19172 "204": None, 19173 "400": None, 19174 } 19175 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19176 response_data.read() 19177 return self.api_client.response_deserialize( 19178 response_data=response_data, 19179 response_types_map=_response_types_map, 19180 ).data 19181 19182 def _revoke_token_serialize( 19183 self, 19184 access_token, 19185 _request_auth, 19186 _content_type, 19187 _headers, 19188 _host_index, 19189 ) -> RequestSerialized: 19190 19191 _host = None 19192 19193 _collection_formats: Dict[str, str] = {} 19194 19195 _path_params: Dict[str, str] = {} 19196 _query_params: List[Tuple[str, str]] = [] 19197 _header_params: Dict[str, Optional[str]] = _headers or {} 19198 _form_params: List[Tuple[str, str]] = [] 19199 _files: Dict[str, str] = {} 19200 _body_params: Optional[bytes] = None 19201 19202 # process the path parameters 19203 # process the query parameters 19204 if access_token is not None: 19205 19206 _query_params.append(("access_token", access_token)) 19207 19208 # process the header parameters 19209 # process the form parameters 19210 # process the body parameter 19211 19212 # authentication setting 19213 _auth_settings: List[str] = [] 19214 19215 return self.api_client.param_serialize( 19216 method="POST", 19217 resource_path="/v1/oauth/revoke", 19218 path_params=_path_params, 19219 query_params=_query_params, 19220 header_params=_header_params, 19221 body=_body_params, 19222 post_params=_form_params, 19223 files=_files, 19224 auth_settings=_auth_settings, 19225 collection_formats=_collection_formats, 19226 _host=_host, 19227 _request_auth=_request_auth, 19228 ) 19229 19230 @validate_call 19231 def token_info( 19232 self, 19233 _request_timeout: Union[ 19234 None, 19235 Annotated[StrictFloat, Field(gt=0)], 19236 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 19237 ] = None, 19238 _request_auth: Optional[Dict[StrictStr, Any]] = None, 19239 _content_type: Optional[StrictStr] = None, 19240 _headers: Optional[Dict[StrictStr, Any]] = None, 19241 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19242 ) -> TokenInformation: 19243 """Get access token information 19244 19245 Get information about an access token, such as the token type, scopes, team, user, token creation date and time, and the user who created the token. 19246 19247 :param _request_timeout: timeout setting for this request. If one 19248 number provided, it will be total request 19249 timeout. It can also be a pair (tuple) of 19250 (connection, read) timeouts. 19251 :type _request_timeout: int, tuple(int, int), optional 19252 :param _request_auth: set to override the auth_settings for an a single 19253 request; this effectively ignores the 19254 authentication in the spec for a single request. 19255 :type _request_auth: dict, optional 19256 :param _content_type: force content-type for the request. 19257 :type _content_type: str, Optional 19258 :param _headers: set to override the headers for a single 19259 request; this effectively ignores the headers 19260 in the spec for a single request. 19261 :type _headers: dict, optional 19262 :param _host_index: set to override the host_index for a single 19263 request; this effectively ignores the host_index 19264 in the spec for a single request. 19265 :type _host_index: int, optional 19266 :return: Returns the result object. 19267 """ # noqa: E501 19268 19269 _param = self._token_info_serialize( 19270 _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index 19271 ) 19272 19273 _response_types_map: Dict[str, Optional[str]] = { 19274 "200": "TokenInformation", 19275 "400": None, 19276 } 19277 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19278 response_data.read() 19279 return self.api_client.response_deserialize( 19280 response_data=response_data, 19281 response_types_map=_response_types_map, 19282 ).data 19283 19284 def _token_info_serialize( 19285 self, 19286 _request_auth, 19287 _content_type, 19288 _headers, 19289 _host_index, 19290 ) -> RequestSerialized: 19291 19292 _host = None 19293 19294 _collection_formats: Dict[str, str] = {} 19295 19296 _path_params: Dict[str, str] = {} 19297 _query_params: List[Tuple[str, str]] = [] 19298 _header_params: Dict[str, Optional[str]] = _headers or {} 19299 _form_params: List[Tuple[str, str]] = [] 19300 _files: Dict[str, str] = {} 19301 _body_params: Optional[bytes] = None 19302 19303 # process the path parameters 19304 # process the query parameters 19305 # process the header parameters 19306 # process the form parameters 19307 # process the body parameter 19308 19309 # set the HTTP header `Accept` 19310 _header_params["Accept"] = self.api_client.select_header_accept(["application/json"]) 19311 19312 # authentication setting 19313 _auth_settings: List[str] = [] 19314 19315 return self.api_client.param_serialize( 19316 method="GET", 19317 resource_path="/v1/oauth-token", 19318 path_params=_path_params, 19319 query_params=_query_params, 19320 header_params=_header_params, 19321 body=_body_params, 19322 post_params=_form_params, 19323 files=_files, 19324 auth_settings=_auth_settings, 19325 collection_formats=_collection_formats, 19326 _host=_host, 19327 _request_auth=_request_auth, 19328 )
NOTE: This class is auto generated by OpenAPI Generator Ref: https://openapi-generator.tech
Do not edit the class manually.
201 @validate_call 202 def get_metrics( 203 self, 204 app_id: Annotated[StrictStr, Field(description="ID of the app to get metrics for.")], 205 start_date: Annotated[ 206 date, Field(description="Start date of the period in UTC format. For example, 2024-12-31.") 207 ], 208 end_date: Annotated[date, Field(description="End date of the period in UTC format. For example, 2024-12-31.")], 209 period: Annotated[Optional[StrictStr], Field(description="Group data by this time period.")] = None, 210 _request_timeout: Union[ 211 None, 212 Annotated[StrictFloat, Field(gt=0)], 213 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 214 ] = None, 215 _request_auth: Optional[Dict[StrictStr, Any]] = None, 216 _content_type: Optional[StrictStr] = None, 217 _headers: Optional[Dict[StrictStr, Any]] = None, 218 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 219 ) -> List[GetMetrics200ResponseInner]: 220 """Get app metrics 221 222 Returns a list of usage metrics for a specific app for a given time range, grouped by requested time period. This endpoint requires an app management API token. It can be generated in the <a href=\"https://developers.miro.com/?features=appMetricsToken#your-apps\">Your Apps</a> section of Developer Hub.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a><br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 223 224 :param app_id: ID of the app to get metrics for. (required) 225 :type app_id: str 226 :param start_date: Start date of the period in UTC format. For example, 2024-12-31. (required) 227 :type start_date: date 228 :param end_date: End date of the period in UTC format. For example, 2024-12-31. (required) 229 :type end_date: date 230 :param period: Group data by this time period. 231 :type period: str 232 :param _request_timeout: timeout setting for this request. If one 233 number provided, it will be total request 234 timeout. It can also be a pair (tuple) of 235 (connection, read) timeouts. 236 :type _request_timeout: int, tuple(int, int), optional 237 :param _request_auth: set to override the auth_settings for an a single 238 request; this effectively ignores the 239 authentication in the spec for a single request. 240 :type _request_auth: dict, optional 241 :param _content_type: force content-type for the request. 242 :type _content_type: str, Optional 243 :param _headers: set to override the headers for a single 244 request; this effectively ignores the headers 245 in the spec for a single request. 246 :type _headers: dict, optional 247 :param _host_index: set to override the host_index for a single 248 request; this effectively ignores the host_index 249 in the spec for a single request. 250 :type _host_index: int, optional 251 :return: Returns the result object. 252 """ # noqa: E501 253 254 _param = self._get_metrics_serialize( 255 app_id=app_id, 256 start_date=start_date, 257 end_date=end_date, 258 period=period, 259 _request_auth=_request_auth, 260 _content_type=_content_type, 261 _headers=_headers, 262 _host_index=_host_index, 263 ) 264 265 _response_types_map: Dict[str, Optional[str]] = { 266 "200": "List[GetMetrics200ResponseInner]", 267 "404": "GetMetrics404Response", 268 } 269 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 270 response_data.read() 271 return self.api_client.response_deserialize( 272 response_data=response_data, 273 response_types_map=_response_types_map, 274 ).data
Get app metrics
Returns a list of usage metrics for a specific app for a given time range, grouped by requested time period. This endpoint requires an app management API token. It can be generated in the Your Apps section of Developer Hub.
Required scope
boards:readRate limiting
Level 1:param app_id: ID of the app to get metrics for. (required) :type app_id: str :param start_date: Start date of the period in UTC format. For example, 2024-12-31. (required) :type start_date: date :param end_date: End date of the period in UTC format. For example, 2024-12-31. (required) :type end_date: date :param period: Group data by this time period. :type period: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
344 @validate_call 345 def get_metrics_total( 346 self, 347 app_id: Annotated[StrictStr, Field(description="ID of the app to get total metrics for.")], 348 _request_timeout: Union[ 349 None, 350 Annotated[StrictFloat, Field(gt=0)], 351 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 352 ] = None, 353 _request_auth: Optional[Dict[StrictStr, Any]] = None, 354 _content_type: Optional[StrictStr] = None, 355 _headers: Optional[Dict[StrictStr, Any]] = None, 356 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 357 ) -> GetMetricsTotal200Response: 358 """Get total app metrics 359 360 Returns total usage metrics for a specific app since the app was created. This endpoint requires an app management API token. It can be generated in <a href=\"https://developers.miro.com/?features=appMetricsToken#your-apps\">your apps</a> section of Developer Hub.<br/> <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a><br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 361 362 :param app_id: ID of the app to get total metrics for. (required) 363 :type app_id: str 364 :param _request_timeout: timeout setting for this request. If one 365 number provided, it will be total request 366 timeout. It can also be a pair (tuple) of 367 (connection, read) timeouts. 368 :type _request_timeout: int, tuple(int, int), optional 369 :param _request_auth: set to override the auth_settings for an a single 370 request; this effectively ignores the 371 authentication in the spec for a single request. 372 :type _request_auth: dict, optional 373 :param _content_type: force content-type for the request. 374 :type _content_type: str, Optional 375 :param _headers: set to override the headers for a single 376 request; this effectively ignores the headers 377 in the spec for a single request. 378 :type _headers: dict, optional 379 :param _host_index: set to override the host_index for a single 380 request; this effectively ignores the host_index 381 in the spec for a single request. 382 :type _host_index: int, optional 383 :return: Returns the result object. 384 """ # noqa: E501 385 386 _param = self._get_metrics_total_serialize( 387 app_id=app_id, 388 _request_auth=_request_auth, 389 _content_type=_content_type, 390 _headers=_headers, 391 _host_index=_host_index, 392 ) 393 394 _response_types_map: Dict[str, Optional[str]] = { 395 "200": "GetMetricsTotal200Response", 396 "404": "GetMetricsTotal404Response", 397 } 398 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 399 response_data.read() 400 return self.api_client.response_deserialize( 401 response_data=response_data, 402 response_types_map=_response_types_map, 403 ).data
Get total app metrics
Returns total usage metrics for a specific app since the app was created. This endpoint requires an app management API token. It can be generated in your apps section of Developer Hub.
Required scope
boards:readRate limiting
Level 1:param app_id: ID of the app to get total metrics for. (required) :type app_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
454 @validate_call 455 def enterprise_get_audit_logs( 456 self, 457 created_after: Annotated[ 458 StrictStr, 459 Field( 460 description='Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-03-30T17:26:50.000Z` as the value for the `createdAfter` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC))." ' 461 ), 462 ], 463 created_before: Annotated[ 464 StrictStr, 465 Field( 466 description="Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-04-30T17:26:50.000Z` as the value for the `createdBefore` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 467 ), 468 ], 469 cursor: Annotated[ 470 Optional[StrictStr], 471 Field( 472 description="A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the appropriate cursor value returned in the response." 473 ), 474 ] = None, 475 limit: Annotated[ 476 Optional[StrictInt], 477 Field( 478 description="Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.<br>Default: `100` " 479 ), 480 ] = None, 481 sorting: Annotated[ 482 Optional[StrictStr], 483 Field( 484 description="Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log `createdAt` parameter).<br>Default: `ASC` " 485 ), 486 ] = None, 487 _request_timeout: Union[ 488 None, 489 Annotated[StrictFloat, Field(gt=0)], 490 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 491 ] = None, 492 _request_auth: Optional[Dict[StrictStr, Any]] = None, 493 _content_type: Optional[StrictStr] = None, 494 _headers: Optional[Dict[StrictStr, Any]] = None, 495 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 496 ) -> AuditPage: 497 """Get audit logs 498 499 Retrieves a page of audit events from the last 90 days. If you want to retrieve data that is older than 90 days, you can use the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/360017571434-Audit-logs#h_01J7EY4E0F67EFTRQ7BT688HW0\">CSV export feature</a>.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>auditlogs:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> 500 501 :param created_after: Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-03-30T17:26:50.000Z` as the value for the `createdAfter` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)).\" (required) 502 :type created_after: str 503 :param created_before: Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between `2023-03-30T17:26:50.000Z` and `2023-04-30T17:26:50.000Z`, provide `2023-04-30T17:26:50.000Z` as the value for the `createdBefore` parameter.<br>Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), including milliseconds and a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 504 :type created_before: str 505 :param cursor: A cursor-paginated method returns a portion of the total set of results based on the `limit` specified and a `cursor` that points to the next portion of the results. To retrieve the next set of results of the collection, set the `cursor` parameter in your next request to the appropriate cursor value returned in the response. 506 :type cursor: str 507 :param limit: Maximum number of results returned based on the `limit` specified in the request. For example, if there are `30` results, the request has no `cursor` value, and the `limit` is set to `20`,the `size` of the results will be `20`. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the `cursor` parameter value that you obtained from the response.<br>Default: `100` 508 :type limit: int 509 :param sorting: Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log `createdAt` parameter).<br>Default: `ASC` 510 :type sorting: str 511 :param _request_timeout: timeout setting for this request. If one 512 number provided, it will be total request 513 timeout. It can also be a pair (tuple) of 514 (connection, read) timeouts. 515 :type _request_timeout: int, tuple(int, int), optional 516 :param _request_auth: set to override the auth_settings for an a single 517 request; this effectively ignores the 518 authentication in the spec for a single request. 519 :type _request_auth: dict, optional 520 :param _content_type: force content-type for the request. 521 :type _content_type: str, Optional 522 :param _headers: set to override the headers for a single 523 request; this effectively ignores the headers 524 in the spec for a single request. 525 :type _headers: dict, optional 526 :param _host_index: set to override the host_index for a single 527 request; this effectively ignores the host_index 528 in the spec for a single request. 529 :type _host_index: int, optional 530 :return: Returns the result object. 531 """ # noqa: E501 532 533 _param = self._enterprise_get_audit_logs_serialize( 534 created_after=created_after, 535 created_before=created_before, 536 cursor=cursor, 537 limit=limit, 538 sorting=sorting, 539 _request_auth=_request_auth, 540 _content_type=_content_type, 541 _headers=_headers, 542 _host_index=_host_index, 543 ) 544 545 _response_types_map: Dict[str, Optional[str]] = { 546 "200": "AuditPage", 547 "400": None, 548 "401": None, 549 "403": None, 550 "404": None, 551 "409": None, 552 "429": None, 553 } 554 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 555 response_data.read() 556 return self.api_client.response_deserialize( 557 response_data=response_data, 558 response_types_map=_response_types_map, 559 ).data
Get audit logs
Retrieves a page of audit events from the last 90 days. If you want to retrieve data that is older than 90 days, you can use the CSV export feature.
Required scope
auditlogs:readRate limiting
Level 2:param created_after: Retrieve audit logs created after the date and time provided. This is the start date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between 2023-03-30T17:26:50.000Z
and 2023-04-30T17:26:50.000Z
, provide 2023-03-30T17:26:50.000Z
as the value for the createdAfter
parameter.
Format: UTC, adheres to ISO 8601, including milliseconds and a trailing Z offset." (required)
:type created_after: str
:param created_before: Retrieve audit logs created before the date and time provided. This is the end date of the duration for which you want to retrieve audit logs. For example, if you want to retrieve audit logs between 2023-03-30T17:26:50.000Z
and 2023-04-30T17:26:50.000Z
, provide 2023-04-30T17:26:50.000Z
as the value for the createdBefore
parameter.
Format: UTC, adheres to ISO 8601, including milliseconds and a trailing Z offset. (required)
:type created_before: str
:param cursor: A cursor-paginated method returns a portion of the total set of results based on the limit
specified and a cursor
that points to the next portion of the results. To retrieve the next set of results of the collection, set the cursor
parameter in your next request to the appropriate cursor value returned in the response.
:type cursor: str
:param limit: Maximum number of results returned based on the limit
specified in the request. For example, if there are 30
results, the request has no cursor
value, and the limit
is set to 20
,the size
of the results will be 20
. The rest of the results will not be returned. To retrieve the rest of the results, you must make another request and set the appropriate value for the cursor
parameter value that you obtained from the response.
Default: 100
:type limit: int
:param sorting: Sort order in which you want to view the result set. Based on the value you provide, the results are sorted in an ascending or descending order of the audit log creation date (audit log createdAt
parameter).
Default: ASC
:type sorting: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
632 @validate_call 633 def enterprise_board_content_item_logs_fetch( 634 self, 635 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 636 var_from: Annotated[ 637 datetime, 638 Field( 639 description="Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 640 ), 641 ], 642 to: Annotated[ 643 datetime, 644 Field( 645 description="Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). " 646 ), 647 ], 648 board_ids: Annotated[ 649 Optional[Annotated[List[StrictStr], Field(max_length=15)]], 650 Field(description="List of board IDs for which you want to retrieve the content logs."), 651 ] = None, 652 emails: Annotated[ 653 Optional[Annotated[List[StrictStr], Field(max_length=15)]], 654 Field( 655 description="Filter content logs based on the list of emails of users who created, modified, or deleted the board item." 656 ), 657 ] = None, 658 cursor: Annotated[ 659 Optional[StrictStr], 660 Field( 661 description="A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request. " 662 ), 663 ] = None, 664 limit: Annotated[ 665 Optional[Annotated[int, Field(le=1000, strict=True, ge=1)]], 666 Field( 667 description="The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value. " 668 ), 669 ] = None, 670 sorting: Annotated[ 671 Optional[StrictStr], 672 Field( 673 description="Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify `asc`. To sort by a descending modified date, specify `desc`. " 674 ), 675 ] = None, 676 _request_timeout: Union[ 677 None, 678 Annotated[StrictFloat, Field(gt=0)], 679 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 680 ] = None, 681 _request_auth: Optional[Dict[StrictStr, Any]] = None, 682 _content_type: Optional[StrictStr] = None, 683 _headers: Optional[Dict[StrictStr, Any]] = None, 684 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 685 ) -> GetBoardItemContentLogsResponse: 686 """Retrieve content change logs of board items 687 688 Retrieves content changes for board items within your organization. Content changes are actions that users can perform on board items, such as updating a sticky note's text. You can retrieve results for a specific time period. You can also filter results based on the board IDs and the emails of users who created, modified, or deleted a board item. Additionally, results can be paginated for easier viewing and processing. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>contentlogs:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin.</p> 689 690 :param org_id: Unique identifier of the organization. (required) 691 :type org_id: str 692 :param var_from: Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 693 :type var_from: datetime 694 :param to: Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601), includes a [trailing Z offset](https://en.wikipedia.org/wiki/ISO_8601#Coordinated_Universal_Time_(UTC)). (required) 695 :type to: datetime 696 :param board_ids: List of board IDs for which you want to retrieve the content logs. 697 :type board_ids: List[str] 698 :param emails: Filter content logs based on the list of emails of users who created, modified, or deleted the board item. 699 :type emails: List[str] 700 :param cursor: A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request. 701 :type cursor: str 702 :param limit: The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value. 703 :type limit: int 704 :param sorting: Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify `asc`. To sort by a descending modified date, specify `desc`. 705 :type sorting: str 706 :param _request_timeout: timeout setting for this request. If one 707 number provided, it will be total request 708 timeout. It can also be a pair (tuple) of 709 (connection, read) timeouts. 710 :type _request_timeout: int, tuple(int, int), optional 711 :param _request_auth: set to override the auth_settings for an a single 712 request; this effectively ignores the 713 authentication in the spec for a single request. 714 :type _request_auth: dict, optional 715 :param _content_type: force content-type for the request. 716 :type _content_type: str, Optional 717 :param _headers: set to override the headers for a single 718 request; this effectively ignores the headers 719 in the spec for a single request. 720 :type _headers: dict, optional 721 :param _host_index: set to override the host_index for a single 722 request; this effectively ignores the host_index 723 in the spec for a single request. 724 :type _host_index: int, optional 725 :return: Returns the result object. 726 """ # noqa: E501 727 728 _param = self._enterprise_board_content_item_logs_fetch_serialize( 729 org_id=org_id, 730 var_from=var_from, 731 to=to, 732 board_ids=board_ids, 733 emails=emails, 734 cursor=cursor, 735 limit=limit, 736 sorting=sorting, 737 _request_auth=_request_auth, 738 _content_type=_content_type, 739 _headers=_headers, 740 _host_index=_host_index, 741 ) 742 743 _response_types_map: Dict[str, Optional[str]] = { 744 "200": "GetBoardItemContentLogsResponse", 745 "400": None, 746 "401": None, 747 "403": None, 748 "404": None, 749 "429": None, 750 } 751 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 752 response_data.read() 753 return self.api_client.response_deserialize( 754 response_data=response_data, 755 response_types_map=_response_types_map, 756 ).data
Retrieve content change logs of board items
Retrieves content changes for board items within your organization. Content changes are actions that users can perform on board items, such as updating a sticky note's text. You can retrieve results for a specific time period. You can also filter results based on the board IDs and the emails of users who created, modified, or deleted a board item. Additionally, results can be paginated for easier viewing and processing.
Required scope
contentlogs:exportRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin.
:param org_id: Unique identifier of the organization. (required)
:type org_id: str
:param var_from: Filter content logs based on the date and time when the board item was last modified. This is the start date and time for the modified date duration. Format: UTC, adheres to ISO 8601, includes a trailing Z offset. (required)
:type var_from: datetime
:param to: Filter content logs based on the date and time when the board item was last modified. This is the end date and time for the modified date duration. Format: UTC, adheres to ISO 8601, includes a trailing Z offset. (required)
:type to: datetime
:param board_ids: List of board IDs for which you want to retrieve the content logs.
:type board_ids: List[str]
:param emails: Filter content logs based on the list of emails of users who created, modified, or deleted the board item.
:type emails: List[str]
:param cursor: A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, set the cursor parameter equal to the cursor value you received in the response of the previous request.
:type cursor: str
:param limit: The maximum number of results to return per call. If the number of logs in the response is greater than the limit specified, the response returns the cursor parameter with a value.
:type limit: int
:param sorting: Sort order in which you want to view the result set based on the modified date. To sort by an ascending modified date, specify asc
. To sort by a descending modified date, specify desc
.
:type sorting: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
849 @validate_call 850 def enterprise_board_export_job_results( 851 self, 852 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 853 job_id: Annotated[StrictStr, Field(description="Unique identifier of the job.")], 854 _request_timeout: Union[ 855 None, 856 Annotated[StrictFloat, Field(gt=0)], 857 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 858 ] = None, 859 _request_auth: Optional[Dict[StrictStr, Any]] = None, 860 _content_type: Optional[StrictStr] = None, 861 _headers: Optional[Dict[StrictStr, Any]] = None, 862 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 863 ) -> BoardExportResult: 864 """Get results for board export job 865 866 Retrieves the result of the board export job. The response provides more information about the board export job, such as the S3 link to the files created.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 867 868 :param org_id: Unique identifier of the organization. (required) 869 :type org_id: str 870 :param job_id: Unique identifier of the job. (required) 871 :type job_id: str 872 :param _request_timeout: timeout setting for this request. If one 873 number provided, it will be total request 874 timeout. It can also be a pair (tuple) of 875 (connection, read) timeouts. 876 :type _request_timeout: int, tuple(int, int), optional 877 :param _request_auth: set to override the auth_settings for an a single 878 request; this effectively ignores the 879 authentication in the spec for a single request. 880 :type _request_auth: dict, optional 881 :param _content_type: force content-type for the request. 882 :type _content_type: str, Optional 883 :param _headers: set to override the headers for a single 884 request; this effectively ignores the headers 885 in the spec for a single request. 886 :type _headers: dict, optional 887 :param _host_index: set to override the host_index for a single 888 request; this effectively ignores the host_index 889 in the spec for a single request. 890 :type _host_index: int, optional 891 :return: Returns the result object. 892 """ # noqa: E501 893 894 _param = self._enterprise_board_export_job_results_serialize( 895 org_id=org_id, 896 job_id=job_id, 897 _request_auth=_request_auth, 898 _content_type=_content_type, 899 _headers=_headers, 900 _host_index=_host_index, 901 ) 902 903 _response_types_map: Dict[str, Optional[str]] = { 904 "200": "BoardExportResult", 905 "400": None, 906 "401": None, 907 "403": None, 908 "404": None, 909 "429": None, 910 } 911 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 912 response_data.read() 913 return self.api_client.response_deserialize( 914 response_data=response_data, 915 response_types_map=_response_types_map, 916 ).data
Get results for board export job
Retrieves the result of the board export job. The response provides more information about the board export job, such as the S3 link to the files created.
Required scope
boards:exportRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
:param org_id: Unique identifier of the organization. (required) :type org_id: str :param job_id: Unique identifier of the job. (required) :type job_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
970 @validate_call 971 def enterprise_board_export_job_status( 972 self, 973 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 974 job_id: Annotated[StrictStr, Field(description="Unique identifier of the board export job.")], 975 _request_timeout: Union[ 976 None, 977 Annotated[StrictFloat, Field(gt=0)], 978 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 979 ] = None, 980 _request_auth: Optional[Dict[StrictStr, Any]] = None, 981 _content_type: Optional[StrictStr] = None, 982 _headers: Optional[Dict[StrictStr, Any]] = None, 983 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 984 ) -> BoardExportJobStatus: 985 """Get board export job status 986 987 Retrieves the status of the board export job.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 988 989 :param org_id: Unique identifier of the organization. (required) 990 :type org_id: str 991 :param job_id: Unique identifier of the board export job. (required) 992 :type job_id: str 993 :param _request_timeout: timeout setting for this request. If one 994 number provided, it will be total request 995 timeout. It can also be a pair (tuple) of 996 (connection, read) timeouts. 997 :type _request_timeout: int, tuple(int, int), optional 998 :param _request_auth: set to override the auth_settings for an a single 999 request; this effectively ignores the 1000 authentication in the spec for a single request. 1001 :type _request_auth: dict, optional 1002 :param _content_type: force content-type for the request. 1003 :type _content_type: str, Optional 1004 :param _headers: set to override the headers for a single 1005 request; this effectively ignores the headers 1006 in the spec for a single request. 1007 :type _headers: dict, optional 1008 :param _host_index: set to override the host_index for a single 1009 request; this effectively ignores the host_index 1010 in the spec for a single request. 1011 :type _host_index: int, optional 1012 :return: Returns the result object. 1013 """ # noqa: E501 1014 1015 _param = self._enterprise_board_export_job_status_serialize( 1016 org_id=org_id, 1017 job_id=job_id, 1018 _request_auth=_request_auth, 1019 _content_type=_content_type, 1020 _headers=_headers, 1021 _host_index=_host_index, 1022 ) 1023 1024 _response_types_map: Dict[str, Optional[str]] = { 1025 "200": "BoardExportJobStatus", 1026 "400": None, 1027 "401": None, 1028 "403": None, 1029 "404": None, 1030 "429": None, 1031 } 1032 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1033 response_data.read() 1034 return self.api_client.response_deserialize( 1035 response_data=response_data, 1036 response_types_map=_response_types_map, 1037 ).data
Get board export job status
Retrieves the status of the board export job.
Required scope
boards:exportRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
:param org_id: Unique identifier of the organization. (required) :type org_id: str :param job_id: Unique identifier of the board export job. (required) :type job_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1091 @validate_call 1092 def enterprise_create_board_export( 1093 self, 1094 org_id: Annotated[StrictStr, Field(description="Unique identifier of the organization.")], 1095 request_id: Annotated[StrictStr, Field(description="Unique identifier of the board export job.")], 1096 create_board_export_request: CreateBoardExportRequest, 1097 _request_timeout: Union[ 1098 None, 1099 Annotated[StrictFloat, Field(gt=0)], 1100 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1101 ] = None, 1102 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1103 _content_type: Optional[StrictStr] = None, 1104 _headers: Optional[Dict[StrictStr, Any]] = None, 1105 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1106 ) -> BoardExportJobId: 1107 """Create board export job 1108 1109 Creates an export job for one or more boards.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:export</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1110 1111 :param org_id: Unique identifier of the organization. (required) 1112 :type org_id: str 1113 :param request_id: Unique identifier of the board export job. (required) 1114 :type request_id: str 1115 :param create_board_export_request: (required) 1116 :type create_board_export_request: CreateBoardExportRequest 1117 :param _request_timeout: timeout setting for this request. If one 1118 number provided, it will be total request 1119 timeout. It can also be a pair (tuple) of 1120 (connection, read) timeouts. 1121 :type _request_timeout: int, tuple(int, int), optional 1122 :param _request_auth: set to override the auth_settings for an a single 1123 request; this effectively ignores the 1124 authentication in the spec for a single request. 1125 :type _request_auth: dict, optional 1126 :param _content_type: force content-type for the request. 1127 :type _content_type: str, Optional 1128 :param _headers: set to override the headers for a single 1129 request; this effectively ignores the headers 1130 in the spec for a single request. 1131 :type _headers: dict, optional 1132 :param _host_index: set to override the host_index for a single 1133 request; this effectively ignores the host_index 1134 in the spec for a single request. 1135 :type _host_index: int, optional 1136 :return: Returns the result object. 1137 """ # noqa: E501 1138 1139 _param = self._enterprise_create_board_export_serialize( 1140 org_id=org_id, 1141 request_id=request_id, 1142 create_board_export_request=create_board_export_request, 1143 _request_auth=_request_auth, 1144 _content_type=_content_type, 1145 _headers=_headers, 1146 _host_index=_host_index, 1147 ) 1148 1149 _response_types_map: Dict[str, Optional[str]] = { 1150 "200": "BoardExportJobId", 1151 "400": None, 1152 "401": None, 1153 "403": None, 1154 "404": None, 1155 "429": None, 1156 } 1157 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1158 response_data.read() 1159 return self.api_client.response_deserialize( 1160 response_data=response_data, 1161 response_types_map=_response_types_map, 1162 ).data
Create board export job
Creates an export job for one or more boards.
Required scope
boards:exportRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin and eDiscovery is enabled in the Settings. You can request temporary access to Enterprise APIs using this form.
:param org_id: Unique identifier of the organization. (required) :type org_id: str :param request_id: Unique identifier of the board export job. (required) :type request_id: str :param create_board_export_request: (required) :type create_board_export_request: CreateBoardExportRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1229 @validate_call 1230 def enterprise_dataclassification_board_get( 1231 self, 1232 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1233 team_id: Annotated[StrictStr, Field(description="id of the team")], 1234 board_id: Annotated[StrictStr, Field(description="Unique identifier of the board that you want to retrieve.")], 1235 _request_timeout: Union[ 1236 None, 1237 Annotated[StrictFloat, Field(gt=0)], 1238 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1239 ] = None, 1240 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1241 _content_type: Optional[StrictStr] = None, 1242 _headers: Optional[Dict[StrictStr, Any]] = None, 1243 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1244 ) -> BoardDataClassificationLabel: 1245 """Get board classification 1246 1247 Retrieves board classification for a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1248 1249 :param org_id: id of the organization (required) 1250 :type org_id: str 1251 :param team_id: id of the team (required) 1252 :type team_id: str 1253 :param board_id: Unique identifier of the board that you want to retrieve. (required) 1254 :type board_id: str 1255 :param _request_timeout: timeout setting for this request. If one 1256 number provided, it will be total request 1257 timeout. It can also be a pair (tuple) of 1258 (connection, read) timeouts. 1259 :type _request_timeout: int, tuple(int, int), optional 1260 :param _request_auth: set to override the auth_settings for an a single 1261 request; this effectively ignores the 1262 authentication in the spec for a single request. 1263 :type _request_auth: dict, optional 1264 :param _content_type: force content-type for the request. 1265 :type _content_type: str, Optional 1266 :param _headers: set to override the headers for a single 1267 request; this effectively ignores the headers 1268 in the spec for a single request. 1269 :type _headers: dict, optional 1270 :param _host_index: set to override the host_index for a single 1271 request; this effectively ignores the host_index 1272 in the spec for a single request. 1273 :type _host_index: int, optional 1274 :return: Returns the result object. 1275 """ # noqa: E501 1276 1277 _param = self._enterprise_dataclassification_board_get_serialize( 1278 org_id=org_id, 1279 team_id=team_id, 1280 board_id=board_id, 1281 _request_auth=_request_auth, 1282 _content_type=_content_type, 1283 _headers=_headers, 1284 _host_index=_host_index, 1285 ) 1286 1287 _response_types_map: Dict[str, Optional[str]] = { 1288 "200": "BoardDataClassificationLabel", 1289 "400": None, 1290 "401": None, 1291 "403": None, 1292 "404": None, 1293 "429": None, 1294 } 1295 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1296 response_data.read() 1297 return self.api_client.response_deserialize( 1298 response_data=response_data, 1299 response_types_map=_response_types_map, 1300 ).data
Get board classification
Retrieves board classification for a board.
Required scope
boards:readRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param team_id: id of the team (required) :type team_id: str :param board_id: Unique identifier of the board that you want to retrieve. (required) :type board_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1357 @validate_call 1358 def enterprise_dataclassification_board_set( 1359 self, 1360 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1361 team_id: Annotated[StrictStr, Field(description="id of the team")], 1362 board_id: Annotated[StrictStr, Field(description="Unique identifier of the board that you want to update.")], 1363 data_classification_label_id: DataClassificationLabelId, 1364 _request_timeout: Union[ 1365 None, 1366 Annotated[StrictFloat, Field(gt=0)], 1367 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1368 ] = None, 1369 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1370 _content_type: Optional[StrictStr] = None, 1371 _headers: Optional[Dict[StrictStr, Any]] = None, 1372 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1373 ) -> BoardDataClassificationLabel: 1374 """Update board classification 1375 1376 Updates board classification for an existing board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1377 1378 :param org_id: id of the organization (required) 1379 :type org_id: str 1380 :param team_id: id of the team (required) 1381 :type team_id: str 1382 :param board_id: Unique identifier of the board that you want to update. (required) 1383 :type board_id: str 1384 :param data_classification_label_id: (required) 1385 :type data_classification_label_id: DataClassificationLabelId 1386 :param _request_timeout: timeout setting for this request. If one 1387 number provided, it will be total request 1388 timeout. It can also be a pair (tuple) of 1389 (connection, read) timeouts. 1390 :type _request_timeout: int, tuple(int, int), optional 1391 :param _request_auth: set to override the auth_settings for an a single 1392 request; this effectively ignores the 1393 authentication in the spec for a single request. 1394 :type _request_auth: dict, optional 1395 :param _content_type: force content-type for the request. 1396 :type _content_type: str, Optional 1397 :param _headers: set to override the headers for a single 1398 request; this effectively ignores the headers 1399 in the spec for a single request. 1400 :type _headers: dict, optional 1401 :param _host_index: set to override the host_index for a single 1402 request; this effectively ignores the host_index 1403 in the spec for a single request. 1404 :type _host_index: int, optional 1405 :return: Returns the result object. 1406 """ # noqa: E501 1407 1408 _param = self._enterprise_dataclassification_board_set_serialize( 1409 org_id=org_id, 1410 team_id=team_id, 1411 board_id=board_id, 1412 data_classification_label_id=data_classification_label_id, 1413 _request_auth=_request_auth, 1414 _content_type=_content_type, 1415 _headers=_headers, 1416 _host_index=_host_index, 1417 ) 1418 1419 _response_types_map: Dict[str, Optional[str]] = { 1420 "200": "BoardDataClassificationLabel", 1421 "400": None, 1422 "401": None, 1423 "403": None, 1424 "404": None, 1425 "429": None, 1426 } 1427 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1428 response_data.read() 1429 return self.api_client.response_deserialize( 1430 response_data=response_data, 1431 response_types_map=_response_types_map, 1432 ).data
Update board classification
Updates board classification for an existing board.
Required scope
boards:writeRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param team_id: id of the team (required) :type team_id: str :param board_id: Unique identifier of the board that you want to update. (required) :type board_id: str :param data_classification_label_id: (required) :type data_classification_label_id: DataClassificationLabelId :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1500 @validate_call 1501 def enterprise_dataclassification_organization_settings_get( 1502 self, 1503 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1504 _request_timeout: Union[ 1505 None, 1506 Annotated[StrictFloat, Field(gt=0)], 1507 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1508 ] = None, 1509 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1510 _content_type: Optional[StrictStr] = None, 1511 _headers: Optional[Dict[StrictStr, Any]] = None, 1512 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1513 ) -> DataClassificationOrganizationSettings: 1514 """Get organization settings 1515 1516 Retrieves board classification settings for an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1517 1518 :param org_id: id of the organization (required) 1519 :type org_id: str 1520 :param _request_timeout: timeout setting for this request. If one 1521 number provided, it will be total request 1522 timeout. It can also be a pair (tuple) of 1523 (connection, read) timeouts. 1524 :type _request_timeout: int, tuple(int, int), optional 1525 :param _request_auth: set to override the auth_settings for an a single 1526 request; this effectively ignores the 1527 authentication in the spec for a single request. 1528 :type _request_auth: dict, optional 1529 :param _content_type: force content-type for the request. 1530 :type _content_type: str, Optional 1531 :param _headers: set to override the headers for a single 1532 request; this effectively ignores the headers 1533 in the spec for a single request. 1534 :type _headers: dict, optional 1535 :param _host_index: set to override the host_index for a single 1536 request; this effectively ignores the host_index 1537 in the spec for a single request. 1538 :type _host_index: int, optional 1539 :return: Returns the result object. 1540 """ # noqa: E501 1541 1542 _param = self._enterprise_dataclassification_organization_settings_get_serialize( 1543 org_id=org_id, 1544 _request_auth=_request_auth, 1545 _content_type=_content_type, 1546 _headers=_headers, 1547 _host_index=_host_index, 1548 ) 1549 1550 _response_types_map: Dict[str, Optional[str]] = { 1551 "200": "DataClassificationOrganizationSettings", 1552 "400": None, 1553 "401": None, 1554 "403": None, 1555 "404": None, 1556 "429": None, 1557 } 1558 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1559 response_data.read() 1560 return self.api_client.response_deserialize( 1561 response_data=response_data, 1562 response_types_map=_response_types_map, 1563 ).data
Get organization settings
Retrieves board classification settings for an existing organization.
Required scope
organizations:readRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1614 @validate_call 1615 def enterprise_dataclassification_team_boards_bulk( 1616 self, 1617 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1618 team_id: Annotated[StrictStr, Field(description="id of the team")], 1619 update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest, 1620 _request_timeout: Union[ 1621 None, 1622 Annotated[StrictFloat, Field(gt=0)], 1623 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1624 ] = None, 1625 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1626 _content_type: Optional[StrictStr] = None, 1627 _headers: Optional[Dict[StrictStr, Any]] = None, 1628 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1629 ) -> UpdateBoardsDataClassificationLabel: 1630 """Bulk update boards classification 1631 1632 Updates board classification for not-classified only or all boards in an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1633 1634 :param org_id: id of the organization (required) 1635 :type org_id: str 1636 :param team_id: id of the team (required) 1637 :type team_id: str 1638 :param update_boards_data_classification_label_request: (required) 1639 :type update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest 1640 :param _request_timeout: timeout setting for this request. If one 1641 number provided, it will be total request 1642 timeout. It can also be a pair (tuple) of 1643 (connection, read) timeouts. 1644 :type _request_timeout: int, tuple(int, int), optional 1645 :param _request_auth: set to override the auth_settings for an a single 1646 request; this effectively ignores the 1647 authentication in the spec for a single request. 1648 :type _request_auth: dict, optional 1649 :param _content_type: force content-type for the request. 1650 :type _content_type: str, Optional 1651 :param _headers: set to override the headers for a single 1652 request; this effectively ignores the headers 1653 in the spec for a single request. 1654 :type _headers: dict, optional 1655 :param _host_index: set to override the host_index for a single 1656 request; this effectively ignores the host_index 1657 in the spec for a single request. 1658 :type _host_index: int, optional 1659 :return: Returns the result object. 1660 """ # noqa: E501 1661 1662 _param = self._enterprise_dataclassification_team_boards_bulk_serialize( 1663 org_id=org_id, 1664 team_id=team_id, 1665 update_boards_data_classification_label_request=update_boards_data_classification_label_request, 1666 _request_auth=_request_auth, 1667 _content_type=_content_type, 1668 _headers=_headers, 1669 _host_index=_host_index, 1670 ) 1671 1672 _response_types_map: Dict[str, Optional[str]] = { 1673 "200": "UpdateBoardsDataClassificationLabel", 1674 "400": None, 1675 "401": None, 1676 "403": None, 1677 "404": None, 1678 "429": None, 1679 } 1680 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1681 response_data.read() 1682 return self.api_client.response_deserialize( 1683 response_data=response_data, 1684 response_types_map=_response_types_map, 1685 ).data
Bulk update boards classification
Updates board classification for not-classified only or all boards in an existing team.
Required scope
boards:writeRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param team_id: id of the team (required) :type team_id: str :param update_boards_data_classification_label_request: (required) :type update_boards_data_classification_label_request: UpdateBoardsDataClassificationLabelRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1750 @validate_call 1751 def enterprise_dataclassification_team_settings_get( 1752 self, 1753 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1754 team_id: Annotated[StrictStr, Field(description="id of the team")], 1755 _request_timeout: Union[ 1756 None, 1757 Annotated[StrictFloat, Field(gt=0)], 1758 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1759 ] = None, 1760 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1761 _content_type: Optional[StrictStr] = None, 1762 _headers: Optional[Dict[StrictStr, Any]] = None, 1763 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1764 ) -> DataClassificationTeamSettings: 1765 """Get team settings 1766 1767 Retrieves board classification settings for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1768 1769 :param org_id: id of the organization (required) 1770 :type org_id: str 1771 :param team_id: id of the team (required) 1772 :type team_id: str 1773 :param _request_timeout: timeout setting for this request. If one 1774 number provided, it will be total request 1775 timeout. It can also be a pair (tuple) of 1776 (connection, read) timeouts. 1777 :type _request_timeout: int, tuple(int, int), optional 1778 :param _request_auth: set to override the auth_settings for an a single 1779 request; this effectively ignores the 1780 authentication in the spec for a single request. 1781 :type _request_auth: dict, optional 1782 :param _content_type: force content-type for the request. 1783 :type _content_type: str, Optional 1784 :param _headers: set to override the headers for a single 1785 request; this effectively ignores the headers 1786 in the spec for a single request. 1787 :type _headers: dict, optional 1788 :param _host_index: set to override the host_index for a single 1789 request; this effectively ignores the host_index 1790 in the spec for a single request. 1791 :type _host_index: int, optional 1792 :return: Returns the result object. 1793 """ # noqa: E501 1794 1795 _param = self._enterprise_dataclassification_team_settings_get_serialize( 1796 org_id=org_id, 1797 team_id=team_id, 1798 _request_auth=_request_auth, 1799 _content_type=_content_type, 1800 _headers=_headers, 1801 _host_index=_host_index, 1802 ) 1803 1804 _response_types_map: Dict[str, Optional[str]] = { 1805 "200": "DataClassificationTeamSettings", 1806 "400": None, 1807 "401": None, 1808 "403": None, 1809 "404": None, 1810 "429": None, 1811 } 1812 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1813 response_data.read() 1814 return self.api_client.response_deserialize( 1815 response_data=response_data, 1816 response_types_map=_response_types_map, 1817 ).data
Get team settings
Retrieves board classification settings for an existing team.
Required scope
organizations:teams:readRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param team_id: id of the team (required) :type team_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
1871 @validate_call 1872 def enterprise_dataclassification_team_settings_set( 1873 self, 1874 org_id: Annotated[StrictStr, Field(description="id of the organization")], 1875 team_id: Annotated[StrictStr, Field(description="id of the team")], 1876 update_team_settings_request: UpdateTeamSettingsRequest, 1877 _request_timeout: Union[ 1878 None, 1879 Annotated[StrictFloat, Field(gt=0)], 1880 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 1881 ] = None, 1882 _request_auth: Optional[Dict[StrictStr, Any]] = None, 1883 _content_type: Optional[StrictStr] = None, 1884 _headers: Optional[Dict[StrictStr, Any]] = None, 1885 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 1886 ) -> DataClassificationTeamSettings: 1887 """Update team settings 1888 1889 Updates board classification settings for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 1890 1891 :param org_id: id of the organization (required) 1892 :type org_id: str 1893 :param team_id: id of the team (required) 1894 :type team_id: str 1895 :param update_team_settings_request: (required) 1896 :type update_team_settings_request: UpdateTeamSettingsRequest 1897 :param _request_timeout: timeout setting for this request. If one 1898 number provided, it will be total request 1899 timeout. It can also be a pair (tuple) of 1900 (connection, read) timeouts. 1901 :type _request_timeout: int, tuple(int, int), optional 1902 :param _request_auth: set to override the auth_settings for an a single 1903 request; this effectively ignores the 1904 authentication in the spec for a single request. 1905 :type _request_auth: dict, optional 1906 :param _content_type: force content-type for the request. 1907 :type _content_type: str, Optional 1908 :param _headers: set to override the headers for a single 1909 request; this effectively ignores the headers 1910 in the spec for a single request. 1911 :type _headers: dict, optional 1912 :param _host_index: set to override the host_index for a single 1913 request; this effectively ignores the host_index 1914 in the spec for a single request. 1915 :type _host_index: int, optional 1916 :return: Returns the result object. 1917 """ # noqa: E501 1918 1919 _param = self._enterprise_dataclassification_team_settings_set_serialize( 1920 org_id=org_id, 1921 team_id=team_id, 1922 update_team_settings_request=update_team_settings_request, 1923 _request_auth=_request_auth, 1924 _content_type=_content_type, 1925 _headers=_headers, 1926 _host_index=_host_index, 1927 ) 1928 1929 _response_types_map: Dict[str, Optional[str]] = { 1930 "200": "DataClassificationTeamSettings", 1931 "400": None, 1932 "401": None, 1933 "403": None, 1934 "404": None, 1935 "429": None, 1936 } 1937 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 1938 response_data.read() 1939 return self.api_client.response_deserialize( 1940 response_data=response_data, 1941 response_types_map=_response_types_map, 1942 ).data
Update team settings
Updates board classification settings for an existing team.
Required scope
organizations:teams:writeRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param team_id: id of the team (required) :type team_id: str :param update_team_settings_request: (required) :type update_team_settings_request: UpdateTeamSettingsRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2007 @validate_call 2008 def create_items( 2009 self, 2010 board_id: Annotated[ 2011 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2012 ], 2013 item_create: Annotated[List[ItemCreate], Field(min_length=1, max_length=20)], 2014 _request_timeout: Union[ 2015 None, 2016 Annotated[StrictFloat, Field(gt=0)], 2017 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2018 ] = None, 2019 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2020 _content_type: Optional[StrictStr] = None, 2021 _headers: Optional[Dict[StrictStr, Any]] = None, 2022 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2023 ) -> Items: 2024 """Create items in bulk 2025 2026 Adds different types of items to a board. You can add up to 20 items of the same or different type per create call. For example, you can create 3 shape items, 4 card items, and 5 sticky notes in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. <br/><br>To try out this API in our documentation:<br/><br>1. In the **BODY PARAMS** section, scroll down until you see **ADD OBJECT** (Figure 1).<br><br><img alt=“add src=\"https://files.readme.io/570dac1-small-add_object.png\"><br>Figure 1. Add object user interface in readme<br><br>2. Click **ADD OBJECT**, and then select or enter the appropriate values for parameters of the item that you want to add.<br><br>3. Repeat steps 1 and 2 for each item that you want to add.<br> <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item. For example, if you want to create one sticky note, one card, and one shape item in one call, the rate limiting applicable will be 300 credits. This is because create item calls take Level 2 rate limiting of 100 credits each, 100 for sticky note, 100 for card, and 100 for shape item. 2027 2028 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2029 :type board_id: str 2030 :param item_create: (required) 2031 :type item_create: List[ItemCreate] 2032 :param _request_timeout: timeout setting for this request. If one 2033 number provided, it will be total request 2034 timeout. It can also be a pair (tuple) of 2035 (connection, read) timeouts. 2036 :type _request_timeout: int, tuple(int, int), optional 2037 :param _request_auth: set to override the auth_settings for an a single 2038 request; this effectively ignores the 2039 authentication in the spec for a single request. 2040 :type _request_auth: dict, optional 2041 :param _content_type: force content-type for the request. 2042 :type _content_type: str, Optional 2043 :param _headers: set to override the headers for a single 2044 request; this effectively ignores the headers 2045 in the spec for a single request. 2046 :type _headers: dict, optional 2047 :param _host_index: set to override the host_index for a single 2048 request; this effectively ignores the host_index 2049 in the spec for a single request. 2050 :type _host_index: int, optional 2051 :return: Returns the result object. 2052 """ # noqa: E501 2053 2054 _param = self._create_items_serialize( 2055 board_id=board_id, 2056 item_create=item_create, 2057 _request_auth=_request_auth, 2058 _content_type=_content_type, 2059 _headers=_headers, 2060 _host_index=_host_index, 2061 ) 2062 2063 _response_types_map: Dict[str, Optional[str]] = { 2064 "201": "Items", 2065 "400": "BulkOperationError", 2066 "429": "Error", 2067 } 2068 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2069 response_data.read() 2070 return self.api_client.response_deserialize( 2071 response_data=response_data, 2072 response_types_map=_response_types_map, 2073 ).data
Create items in bulk
Adds different types of items to a board. You can add up to 20 items of the same or different type per create call. For example, you can create 3 shape items, 4 card items, and 5 sticky notes in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created.
To try out this API in our documentation:
1. In the BODY PARAMS section, scroll down until you see ADD OBJECT (Figure 1).
Figure 1. Add object user interface in readme
2. Click ADD OBJECT, and then select or enter the appropriate values for parameters of the item that you want to add.
3. Repeat steps 1 and 2 for each item that you want to add.
Required scope
boards:writeRate limiting
Level 2 per item. For example, if you want to create one sticky note, one card, and one shape item in one call, the rate limiting applicable will be 300 credits. This is because create item calls take Level 2 rate limiting of 100 credits each, 100 for sticky note, 100 for card, and 100 for shape item.:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param item_create: (required) :type item_create: List[ItemCreate] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2137 @validate_call 2138 def create_items_in_bulk_using_file_from_device( 2139 self, 2140 board_id: Annotated[ 2141 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2142 ], 2143 data: Annotated[ 2144 Union[StrictBytes, StrictStr], 2145 Field( 2146 description="JSON file containing bulk data, where each object represents an item to be created. For details, see [JSON file example](https://developers.miro.com/reference/json-data-example)." 2147 ), 2148 ], 2149 resources: Annotated[ 2150 List[Union[StrictBytes, StrictStr]], 2151 Field(description="Array of items to create (PDFs, images, etc.). Maximum of 20 items."), 2152 ], 2153 _request_timeout: Union[ 2154 None, 2155 Annotated[StrictFloat, Field(gt=0)], 2156 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2157 ] = None, 2158 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2159 _content_type: Optional[StrictStr] = None, 2160 _headers: Optional[Dict[StrictStr, Any]] = None, 2161 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2162 ) -> Items: 2163 """Create items in bulk using file from device 2164 2165 Adds different types of items to a board using files from a device. You can add up to 20 items of the same or different type per create call. For example, you can create 5 document items and 5 images in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. To try out this API in our documentation: 1. In the **BODY PARAMS** section, select **ADD FILE**, and then upload a local file. Repeat for each item that you want to add. 2. Upload a JSON file that contains the bulk data for the items you want to create. <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/> <h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item<br/> 2166 2167 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2168 :type board_id: str 2169 :param data: JSON file containing bulk data, where each object represents an item to be created. For details, see [JSON file example](https://developers.miro.com/reference/json-data-example). (required) 2170 :type data: bytearray 2171 :param resources: Array of items to create (PDFs, images, etc.). Maximum of 20 items. (required) 2172 :type resources: List[bytearray] 2173 :param _request_timeout: timeout setting for this request. If one 2174 number provided, it will be total request 2175 timeout. It can also be a pair (tuple) of 2176 (connection, read) timeouts. 2177 :type _request_timeout: int, tuple(int, int), optional 2178 :param _request_auth: set to override the auth_settings for an a single 2179 request; this effectively ignores the 2180 authentication in the spec for a single request. 2181 :type _request_auth: dict, optional 2182 :param _content_type: force content-type for the request. 2183 :type _content_type: str, Optional 2184 :param _headers: set to override the headers for a single 2185 request; this effectively ignores the headers 2186 in the spec for a single request. 2187 :type _headers: dict, optional 2188 :param _host_index: set to override the host_index for a single 2189 request; this effectively ignores the host_index 2190 in the spec for a single request. 2191 :type _host_index: int, optional 2192 :return: Returns the result object. 2193 """ # noqa: E501 2194 2195 _param = self._create_items_in_bulk_using_file_from_device_serialize( 2196 board_id=board_id, 2197 data=data, 2198 resources=resources, 2199 _request_auth=_request_auth, 2200 _content_type=_content_type, 2201 _headers=_headers, 2202 _host_index=_host_index, 2203 ) 2204 2205 _response_types_map: Dict[str, Optional[str]] = { 2206 "201": "Items", 2207 } 2208 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2209 response_data.read() 2210 return self.api_client.response_deserialize( 2211 response_data=response_data, 2212 response_types_map=_response_types_map, 2213 ).data
Create items in bulk using file from device
Adds different types of items to a board using files from a device. You can add up to 20 items of the same or different type per create call. For example, you can create 5 document items and 5 images in one create call. The bulk create operation is transactional. If any item's create operation fails, the create operation for all the remaining items also fails, and none of the items will be created. To try out this API in our documentation: 1. In the BODY PARAMS section, select ADD FILE, and then upload a local file. Repeat for each item that you want to add. 2. Upload a JSON file that contains the bulk data for the items you want to create.
Required scope
boards:writeRate limiting
Level 2 per item:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param data: JSON file containing bulk data, where each object represents an item to be created. For details, see JSON file example. (required) :type data: bytearray :param resources: Array of items to create (PDFs, images, etc.). Maximum of 20 items. (required) :type resources: List[bytearray] :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2280 @validate_call 2281 def create_shape_item_flowchart( 2282 self, 2283 board_id: Annotated[ 2284 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 2285 ], 2286 shape_create_request: ShapeCreateRequest, 2287 _request_timeout: Union[ 2288 None, 2289 Annotated[StrictFloat, Field(gt=0)], 2290 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2291 ] = None, 2292 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2293 _content_type: Optional[StrictStr] = None, 2294 _headers: Optional[Dict[StrictStr, Any]] = None, 2295 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2296 ) -> ShapeItem: 2297 """Create shape item 2298 2299 Adds a flowchart shape item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2300 2301 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 2302 :type board_id: str 2303 :param shape_create_request: (required) 2304 :type shape_create_request: ShapeCreateRequest 2305 :param _request_timeout: timeout setting for this request. If one 2306 number provided, it will be total request 2307 timeout. It can also be a pair (tuple) of 2308 (connection, read) timeouts. 2309 :type _request_timeout: int, tuple(int, int), optional 2310 :param _request_auth: set to override the auth_settings for an a single 2311 request; this effectively ignores the 2312 authentication in the spec for a single request. 2313 :type _request_auth: dict, optional 2314 :param _content_type: force content-type for the request. 2315 :type _content_type: str, Optional 2316 :param _headers: set to override the headers for a single 2317 request; this effectively ignores the headers 2318 in the spec for a single request. 2319 :type _headers: dict, optional 2320 :param _host_index: set to override the host_index for a single 2321 request; this effectively ignores the host_index 2322 in the spec for a single request. 2323 :type _host_index: int, optional 2324 :return: Returns the result object. 2325 """ # noqa: E501 2326 2327 _param = self._create_shape_item_flowchart_serialize( 2328 board_id=board_id, 2329 shape_create_request=shape_create_request, 2330 _request_auth=_request_auth, 2331 _content_type=_content_type, 2332 _headers=_headers, 2333 _host_index=_host_index, 2334 ) 2335 2336 _response_types_map: Dict[str, Optional[str]] = { 2337 "201": "ShapeItem", 2338 "400": "CreateFrameItem400Response", 2339 "404": "CreateFrameItem400Response", 2340 "429": "CreateFrameItem400Response", 2341 } 2342 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2343 response_data.read() 2344 return self.api_client.response_deserialize( 2345 response_data=response_data, 2346 response_types_map=_response_types_map, 2347 ).data
Create shape item
Adds a flowchart shape item to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param shape_create_request: (required) :type shape_create_request: ShapeCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2409 @validate_call 2410 def delete_shape_item_flowchart( 2411 self, 2412 board_id: Annotated[ 2413 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 2414 ], 2415 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 2416 _request_timeout: Union[ 2417 None, 2418 Annotated[StrictFloat, Field(gt=0)], 2419 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2420 ] = None, 2421 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2422 _content_type: Optional[StrictStr] = None, 2423 _headers: Optional[Dict[StrictStr, Any]] = None, 2424 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2425 ) -> object: 2426 """Delete shape item 2427 2428 Deletes a flowchart shape item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 2429 2430 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 2431 :type board_id: str 2432 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 2433 :type item_id: str 2434 :param _request_timeout: timeout setting for this request. If one 2435 number provided, it will be total request 2436 timeout. It can also be a pair (tuple) of 2437 (connection, read) timeouts. 2438 :type _request_timeout: int, tuple(int, int), optional 2439 :param _request_auth: set to override the auth_settings for an a single 2440 request; this effectively ignores the 2441 authentication in the spec for a single request. 2442 :type _request_auth: dict, optional 2443 :param _content_type: force content-type for the request. 2444 :type _content_type: str, Optional 2445 :param _headers: set to override the headers for a single 2446 request; this effectively ignores the headers 2447 in the spec for a single request. 2448 :type _headers: dict, optional 2449 :param _host_index: set to override the host_index for a single 2450 request; this effectively ignores the host_index 2451 in the spec for a single request. 2452 :type _host_index: int, optional 2453 :return: Returns the result object. 2454 """ # noqa: E501 2455 2456 _param = self._delete_shape_item_flowchart_serialize( 2457 board_id=board_id, 2458 item_id=item_id, 2459 _request_auth=_request_auth, 2460 _content_type=_content_type, 2461 _headers=_headers, 2462 _host_index=_host_index, 2463 ) 2464 2465 _response_types_map: Dict[str, Optional[str]] = { 2466 "204": "object", 2467 "400": "CreateFrameItem400Response", 2468 "404": "CreateFrameItem400Response", 2469 "429": "CreateFrameItem400Response", 2470 } 2471 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2472 response_data.read() 2473 return self.api_client.response_deserialize( 2474 response_data=response_data, 2475 response_types_map=_response_types_map, 2476 ).data
Delete shape item
Deletes a flowchart shape item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2530 @validate_call 2531 def get_items_experimental( 2532 self, 2533 board_id: Annotated[ 2534 StrictStr, 2535 Field( 2536 description="Unique identifier (ID) of the board for which you want to retrieve the list of available items." 2537 ), 2538 ], 2539 limit: Optional[Annotated[str, Field(strict=True)]] = None, 2540 type: Optional[StrictStr] = None, 2541 cursor: Optional[StrictStr] = None, 2542 _request_timeout: Union[ 2543 None, 2544 Annotated[StrictFloat, Field(gt=0)], 2545 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2546 ] = None, 2547 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2548 _content_type: Optional[StrictStr] = None, 2549 _headers: Optional[Dict[StrictStr, Any]] = None, 2550 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2551 ) -> GenericItemCursorPaged: 2552 """Get items on board 2553 2554 Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2555 2556 :param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) 2557 :type board_id: str 2558 :param limit: 2559 :type limit: str 2560 :param type: 2561 :type type: str 2562 :param cursor: 2563 :type cursor: str 2564 :param _request_timeout: timeout setting for this request. If one 2565 number provided, it will be total request 2566 timeout. It can also be a pair (tuple) of 2567 (connection, read) timeouts. 2568 :type _request_timeout: int, tuple(int, int), optional 2569 :param _request_auth: set to override the auth_settings for an a single 2570 request; this effectively ignores the 2571 authentication in the spec for a single request. 2572 :type _request_auth: dict, optional 2573 :param _content_type: force content-type for the request. 2574 :type _content_type: str, Optional 2575 :param _headers: set to override the headers for a single 2576 request; this effectively ignores the headers 2577 in the spec for a single request. 2578 :type _headers: dict, optional 2579 :param _host_index: set to override the host_index for a single 2580 request; this effectively ignores the host_index 2581 in the spec for a single request. 2582 :type _host_index: int, optional 2583 :return: Returns the result object. 2584 """ # noqa: E501 2585 2586 _param = self._get_items_experimental_serialize( 2587 board_id=board_id, 2588 limit=limit, 2589 type=type, 2590 cursor=cursor, 2591 _request_auth=_request_auth, 2592 _content_type=_content_type, 2593 _headers=_headers, 2594 _host_index=_host_index, 2595 ) 2596 2597 _response_types_map: Dict[str, Optional[str]] = { 2598 "200": "GenericItemCursorPaged", 2599 "400": "CreateFrameItem400Response", 2600 "404": "CreateFrameItem400Response", 2601 "429": "CreateFrameItem400Response", 2602 } 2603 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2604 response_data.read() 2605 return self.api_client.response_deserialize( 2606 response_data=response_data, 2607 response_types_map=_response_types_map, 2608 ).data
Get items on board
Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request. For example, if you set the limit
query parameter to 10
and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) :type board_id: str :param limit: :type limit: str :param type: :type type: str :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2674 @validate_call 2675 def get_shape_item_flowchart( 2676 self, 2677 board_id: Annotated[ 2678 StrictStr, 2679 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 2680 ], 2681 item_id: Annotated[ 2682 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 2683 ], 2684 _request_timeout: Union[ 2685 None, 2686 Annotated[StrictFloat, Field(gt=0)], 2687 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2688 ] = None, 2689 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2690 _content_type: Optional[StrictStr] = None, 2691 _headers: Optional[Dict[StrictStr, Any]] = None, 2692 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2693 ) -> ShapeItem: 2694 """Get shape item 2695 2696 Retrieves information for a specific shape item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 2697 2698 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 2699 :type board_id: str 2700 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 2701 :type item_id: str 2702 :param _request_timeout: timeout setting for this request. If one 2703 number provided, it will be total request 2704 timeout. It can also be a pair (tuple) of 2705 (connection, read) timeouts. 2706 :type _request_timeout: int, tuple(int, int), optional 2707 :param _request_auth: set to override the auth_settings for an a single 2708 request; this effectively ignores the 2709 authentication in the spec for a single request. 2710 :type _request_auth: dict, optional 2711 :param _content_type: force content-type for the request. 2712 :type _content_type: str, Optional 2713 :param _headers: set to override the headers for a single 2714 request; this effectively ignores the headers 2715 in the spec for a single request. 2716 :type _headers: dict, optional 2717 :param _host_index: set to override the host_index for a single 2718 request; this effectively ignores the host_index 2719 in the spec for a single request. 2720 :type _host_index: int, optional 2721 :return: Returns the result object. 2722 """ # noqa: E501 2723 2724 _param = self._get_shape_item_flowchart_serialize( 2725 board_id=board_id, 2726 item_id=item_id, 2727 _request_auth=_request_auth, 2728 _content_type=_content_type, 2729 _headers=_headers, 2730 _host_index=_host_index, 2731 ) 2732 2733 _response_types_map: Dict[str, Optional[str]] = { 2734 "200": "ShapeItem", 2735 "400": "CreateFrameItem400Response", 2736 "404": "CreateFrameItem400Response", 2737 "429": "CreateFrameItem400Response", 2738 } 2739 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2740 response_data.read() 2741 return self.api_client.response_deserialize( 2742 response_data=response_data, 2743 response_types_map=_response_types_map, 2744 ).data
Get shape item
Retrieves information for a specific shape item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2798 @validate_call 2799 def get_specific_item_experimental( 2800 self, 2801 board_id: Annotated[ 2802 StrictStr, 2803 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 2804 ], 2805 item_id: Annotated[ 2806 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 2807 ], 2808 _request_timeout: Union[ 2809 None, 2810 Annotated[StrictFloat, Field(gt=0)], 2811 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2812 ] = None, 2813 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2814 _content_type: Optional[StrictStr] = None, 2815 _headers: Optional[Dict[StrictStr, Any]] = None, 2816 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2817 ) -> GenericItem: 2818 """Get specific item on board 2819 2820 Retrieves information for a specific item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 2821 2822 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 2823 :type board_id: str 2824 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 2825 :type item_id: str 2826 :param _request_timeout: timeout setting for this request. If one 2827 number provided, it will be total request 2828 timeout. It can also be a pair (tuple) of 2829 (connection, read) timeouts. 2830 :type _request_timeout: int, tuple(int, int), optional 2831 :param _request_auth: set to override the auth_settings for an a single 2832 request; this effectively ignores the 2833 authentication in the spec for a single request. 2834 :type _request_auth: dict, optional 2835 :param _content_type: force content-type for the request. 2836 :type _content_type: str, Optional 2837 :param _headers: set to override the headers for a single 2838 request; this effectively ignores the headers 2839 in the spec for a single request. 2840 :type _headers: dict, optional 2841 :param _host_index: set to override the host_index for a single 2842 request; this effectively ignores the host_index 2843 in the spec for a single request. 2844 :type _host_index: int, optional 2845 :return: Returns the result object. 2846 """ # noqa: E501 2847 2848 _param = self._get_specific_item_experimental_serialize( 2849 board_id=board_id, 2850 item_id=item_id, 2851 _request_auth=_request_auth, 2852 _content_type=_content_type, 2853 _headers=_headers, 2854 _host_index=_host_index, 2855 ) 2856 2857 _response_types_map: Dict[str, Optional[str]] = { 2858 "200": "GenericItem", 2859 "400": "CreateFrameItem400Response", 2860 "404": "CreateFrameItem400Response", 2861 "429": "CreateFrameItem400Response", 2862 } 2863 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2864 response_data.read() 2865 return self.api_client.response_deserialize( 2866 response_data=response_data, 2867 response_types_map=_response_types_map, 2868 ).data
Get specific item on board
Retrieves information for a specific item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
2922 @validate_call 2923 def update_shape_item_flowchart( 2924 self, 2925 board_id: Annotated[ 2926 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 2927 ], 2928 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 2929 shape_update_request: ShapeUpdateRequest, 2930 _request_timeout: Union[ 2931 None, 2932 Annotated[StrictFloat, Field(gt=0)], 2933 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 2934 ] = None, 2935 _request_auth: Optional[Dict[StrictStr, Any]] = None, 2936 _content_type: Optional[StrictStr] = None, 2937 _headers: Optional[Dict[StrictStr, Any]] = None, 2938 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 2939 ) -> ShapeItem: 2940 """Update shape item 2941 2942 Updates a flowchart shape item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 2943 2944 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 2945 :type board_id: str 2946 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 2947 :type item_id: str 2948 :param shape_update_request: (required) 2949 :type shape_update_request: ShapeUpdateRequest 2950 :param _request_timeout: timeout setting for this request. If one 2951 number provided, it will be total request 2952 timeout. It can also be a pair (tuple) of 2953 (connection, read) timeouts. 2954 :type _request_timeout: int, tuple(int, int), optional 2955 :param _request_auth: set to override the auth_settings for an a single 2956 request; this effectively ignores the 2957 authentication in the spec for a single request. 2958 :type _request_auth: dict, optional 2959 :param _content_type: force content-type for the request. 2960 :type _content_type: str, Optional 2961 :param _headers: set to override the headers for a single 2962 request; this effectively ignores the headers 2963 in the spec for a single request. 2964 :type _headers: dict, optional 2965 :param _host_index: set to override the host_index for a single 2966 request; this effectively ignores the host_index 2967 in the spec for a single request. 2968 :type _host_index: int, optional 2969 :return: Returns the result object. 2970 """ # noqa: E501 2971 2972 _param = self._update_shape_item_flowchart_serialize( 2973 board_id=board_id, 2974 item_id=item_id, 2975 shape_update_request=shape_update_request, 2976 _request_auth=_request_auth, 2977 _content_type=_content_type, 2978 _headers=_headers, 2979 _host_index=_host_index, 2980 ) 2981 2982 _response_types_map: Dict[str, Optional[str]] = { 2983 "200": "ShapeItem", 2984 "400": "CreateFrameItem400Response", 2985 "404": "CreateFrameItem400Response", 2986 "429": "CreateFrameItem400Response", 2987 } 2988 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 2989 response_data.read() 2990 return self.api_client.response_deserialize( 2991 response_data=response_data, 2992 response_types_map=_response_types_map, 2993 ).data
Update shape item
Updates a flowchart shape item on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param shape_update_request: (required) :type shape_update_request: ShapeUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3058 @validate_call 3059 def get_all_cases( 3060 self, 3061 limit: Annotated[ 3062 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3063 ], 3064 org_id: Annotated[ 3065 str, 3066 Field( 3067 strict=True, description="The ID of the organization for which you want to retrieve the list of cases." 3068 ), 3069 ], 3070 cursor: Annotated[ 3071 Optional[StrictStr], 3072 Field( 3073 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3074 ), 3075 ] = None, 3076 _request_timeout: Union[ 3077 None, 3078 Annotated[StrictFloat, Field(gt=0)], 3079 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3080 ] = None, 3081 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3082 _content_type: Optional[StrictStr] = None, 3083 _headers: Optional[Dict[StrictStr, Any]] = None, 3084 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3085 ) -> PaginatedCaseResponse: 3086 """Get all cases 3087 3088 Retrieves the list of eDiscovery cases in an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3089 3090 :param limit: The maximum number of items in the result list. (required) 3091 :type limit: int 3092 :param org_id: The ID of the organization for which you want to retrieve the list of cases. (required) 3093 :type org_id: str 3094 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3095 :type cursor: str 3096 :param _request_timeout: timeout setting for this request. If one 3097 number provided, it will be total request 3098 timeout. It can also be a pair (tuple) of 3099 (connection, read) timeouts. 3100 :type _request_timeout: int, tuple(int, int), optional 3101 :param _request_auth: set to override the auth_settings for an a single 3102 request; this effectively ignores the 3103 authentication in the spec for a single request. 3104 :type _request_auth: dict, optional 3105 :param _content_type: force content-type for the request. 3106 :type _content_type: str, Optional 3107 :param _headers: set to override the headers for a single 3108 request; this effectively ignores the headers 3109 in the spec for a single request. 3110 :type _headers: dict, optional 3111 :param _host_index: set to override the host_index for a single 3112 request; this effectively ignores the host_index 3113 in the spec for a single request. 3114 :type _host_index: int, optional 3115 :return: Returns the result object. 3116 """ # noqa: E501 3117 3118 _param = self._get_all_cases_serialize( 3119 limit=limit, 3120 org_id=org_id, 3121 cursor=cursor, 3122 _request_auth=_request_auth, 3123 _content_type=_content_type, 3124 _headers=_headers, 3125 _host_index=_host_index, 3126 ) 3127 3128 _response_types_map: Dict[str, Optional[str]] = { 3129 "200": "PaginatedCaseResponse", 3130 "400": None, 3131 "401": None, 3132 "403": None, 3133 "404": None, 3134 "429": None, 3135 } 3136 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3137 response_data.read() 3138 return self.api_client.response_deserialize( 3139 response_data=response_data, 3140 response_types_map=_response_types_map, 3141 ).data
Get all cases
Retrieves the list of eDiscovery cases in an organization.
Required scope
organization:cases:managementRate limiting
Level 4Enterprise Guard only
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
:param limit: The maximum number of items in the result list. (required) :type limit: int :param org_id: The ID of the organization for which you want to retrieve the list of cases. (required) :type org_id: str :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3202 @validate_call 3203 def get_all_legal_holds( 3204 self, 3205 limit: Annotated[ 3206 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3207 ], 3208 org_id: Annotated[ 3209 str, 3210 Field( 3211 strict=True, 3212 description="The ID of the organization for which you want to retrieve the list of legal holds within a case.", 3213 ), 3214 ], 3215 case_id: Annotated[ 3216 str, 3217 Field( 3218 strict=True, description="The ID of the case for which you want to retrieve the list of legal holds." 3219 ), 3220 ], 3221 cursor: Annotated[ 3222 Optional[StrictStr], 3223 Field( 3224 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3225 ), 3226 ] = None, 3227 _request_timeout: Union[ 3228 None, 3229 Annotated[StrictFloat, Field(gt=0)], 3230 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3231 ] = None, 3232 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3233 _content_type: Optional[StrictStr] = None, 3234 _headers: Optional[Dict[StrictStr, Any]] = None, 3235 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3236 ) -> PaginatedLegalHoldResponse: 3237 """Get all legal holds within a case 3238 3239 Retrieves the list of all legal holds within a case for an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3240 3241 :param limit: The maximum number of items in the result list. (required) 3242 :type limit: int 3243 :param org_id: The ID of the organization for which you want to retrieve the list of legal holds within a case. (required) 3244 :type org_id: str 3245 :param case_id: The ID of the case for which you want to retrieve the list of legal holds. (required) 3246 :type case_id: str 3247 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3248 :type cursor: str 3249 :param _request_timeout: timeout setting for this request. If one 3250 number provided, it will be total request 3251 timeout. It can also be a pair (tuple) of 3252 (connection, read) timeouts. 3253 :type _request_timeout: int, tuple(int, int), optional 3254 :param _request_auth: set to override the auth_settings for an a single 3255 request; this effectively ignores the 3256 authentication in the spec for a single request. 3257 :type _request_auth: dict, optional 3258 :param _content_type: force content-type for the request. 3259 :type _content_type: str, Optional 3260 :param _headers: set to override the headers for a single 3261 request; this effectively ignores the headers 3262 in the spec for a single request. 3263 :type _headers: dict, optional 3264 :param _host_index: set to override the host_index for a single 3265 request; this effectively ignores the host_index 3266 in the spec for a single request. 3267 :type _host_index: int, optional 3268 :return: Returns the result object. 3269 """ # noqa: E501 3270 3271 _param = self._get_all_legal_holds_serialize( 3272 limit=limit, 3273 org_id=org_id, 3274 case_id=case_id, 3275 cursor=cursor, 3276 _request_auth=_request_auth, 3277 _content_type=_content_type, 3278 _headers=_headers, 3279 _host_index=_host_index, 3280 ) 3281 3282 _response_types_map: Dict[str, Optional[str]] = { 3283 "200": "PaginatedLegalHoldResponse", 3284 "400": None, 3285 "401": None, 3286 "403": None, 3287 "404": None, 3288 "429": None, 3289 } 3290 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3291 response_data.read() 3292 return self.api_client.response_deserialize( 3293 response_data=response_data, 3294 response_types_map=_response_types_map, 3295 ).data
Get all legal holds within a case
Retrieves the list of all legal holds within a case for an organization.
Required scope
organization:cases:managementRate limiting
Level 4Enterprise Guard only
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
:param limit: The maximum number of items in the result list. (required) :type limit: int :param org_id: The ID of the organization for which you want to retrieve the list of legal holds within a case. (required) :type org_id: str :param case_id: The ID of the case for which you want to retrieve the list of legal holds. (required) :type case_id: str :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3359 @validate_call 3360 def get_case( 3361 self, 3362 org_id: Annotated[ 3363 str, 3364 Field( 3365 strict=True, 3366 description="The ID of the organization for which you want to retrieve the case information.", 3367 ), 3368 ], 3369 case_id: Annotated[str, Field(strict=True, description="The ID of the case you want to retrieve.")], 3370 _request_timeout: Union[ 3371 None, 3372 Annotated[StrictFloat, Field(gt=0)], 3373 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3374 ] = None, 3375 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3376 _content_type: Optional[StrictStr] = None, 3377 _headers: Optional[Dict[StrictStr, Any]] = None, 3378 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3379 ) -> CaseResponse: 3380 """Get case 3381 3382 Retrieves information about a case in an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3383 3384 :param org_id: The ID of the organization for which you want to retrieve the case information. (required) 3385 :type org_id: str 3386 :param case_id: The ID of the case you want to retrieve. (required) 3387 :type case_id: str 3388 :param _request_timeout: timeout setting for this request. If one 3389 number provided, it will be total request 3390 timeout. It can also be a pair (tuple) of 3391 (connection, read) timeouts. 3392 :type _request_timeout: int, tuple(int, int), optional 3393 :param _request_auth: set to override the auth_settings for an a single 3394 request; this effectively ignores the 3395 authentication in the spec for a single request. 3396 :type _request_auth: dict, optional 3397 :param _content_type: force content-type for the request. 3398 :type _content_type: str, Optional 3399 :param _headers: set to override the headers for a single 3400 request; this effectively ignores the headers 3401 in the spec for a single request. 3402 :type _headers: dict, optional 3403 :param _host_index: set to override the host_index for a single 3404 request; this effectively ignores the host_index 3405 in the spec for a single request. 3406 :type _host_index: int, optional 3407 :return: Returns the result object. 3408 """ # noqa: E501 3409 3410 _param = self._get_case_serialize( 3411 org_id=org_id, 3412 case_id=case_id, 3413 _request_auth=_request_auth, 3414 _content_type=_content_type, 3415 _headers=_headers, 3416 _host_index=_host_index, 3417 ) 3418 3419 _response_types_map: Dict[str, Optional[str]] = { 3420 "200": "CaseResponse", 3421 "400": None, 3422 "401": None, 3423 "403": None, 3424 "404": None, 3425 "429": None, 3426 } 3427 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3428 response_data.read() 3429 return self.api_client.response_deserialize( 3430 response_data=response_data, 3431 response_types_map=_response_types_map, 3432 ).data
Get case
Retrieves information about a case in an organization.
Required scope
organization:cases:managementRate limiting
Level 3Enterprise Guard only
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
:param org_id: The ID of the organization for which you want to retrieve the case information. (required) :type org_id: str :param case_id: The ID of the case you want to retrieve. (required) :type case_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3486 @validate_call 3487 def get_legal_hold( 3488 self, 3489 org_id: Annotated[ 3490 str, 3491 Field( 3492 strict=True, 3493 description="The ID of the organization for which you want to retrieve the legal hold information.", 3494 ), 3495 ], 3496 case_id: Annotated[ 3497 str, 3498 Field( 3499 strict=True, description="The ID of the case for which you want to retrieve the legal hold information." 3500 ), 3501 ], 3502 legal_hold_id: Annotated[str, Field(strict=True, description="The ID of the legal hold you want to retrieve.")], 3503 _request_timeout: Union[ 3504 None, 3505 Annotated[StrictFloat, Field(gt=0)], 3506 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3507 ] = None, 3508 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3509 _content_type: Optional[StrictStr] = None, 3510 _headers: Optional[Dict[StrictStr, Any]] = None, 3511 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3512 ) -> LegalHoldResponse: 3513 """Get legal hold information 3514 3515 Retrieves information about a legal hold within a case for an organization. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3516 3517 :param org_id: The ID of the organization for which you want to retrieve the legal hold information. (required) 3518 :type org_id: str 3519 :param case_id: The ID of the case for which you want to retrieve the legal hold information. (required) 3520 :type case_id: str 3521 :param legal_hold_id: The ID of the legal hold you want to retrieve. (required) 3522 :type legal_hold_id: str 3523 :param _request_timeout: timeout setting for this request. If one 3524 number provided, it will be total request 3525 timeout. It can also be a pair (tuple) of 3526 (connection, read) timeouts. 3527 :type _request_timeout: int, tuple(int, int), optional 3528 :param _request_auth: set to override the auth_settings for an a single 3529 request; this effectively ignores the 3530 authentication in the spec for a single request. 3531 :type _request_auth: dict, optional 3532 :param _content_type: force content-type for the request. 3533 :type _content_type: str, Optional 3534 :param _headers: set to override the headers for a single 3535 request; this effectively ignores the headers 3536 in the spec for a single request. 3537 :type _headers: dict, optional 3538 :param _host_index: set to override the host_index for a single 3539 request; this effectively ignores the host_index 3540 in the spec for a single request. 3541 :type _host_index: int, optional 3542 :return: Returns the result object. 3543 """ # noqa: E501 3544 3545 _param = self._get_legal_hold_serialize( 3546 org_id=org_id, 3547 case_id=case_id, 3548 legal_hold_id=legal_hold_id, 3549 _request_auth=_request_auth, 3550 _content_type=_content_type, 3551 _headers=_headers, 3552 _host_index=_host_index, 3553 ) 3554 3555 _response_types_map: Dict[str, Optional[str]] = { 3556 "200": "LegalHoldResponse", 3557 "400": None, 3558 "401": None, 3559 "403": None, 3560 "404": None, 3561 "429": None, 3562 } 3563 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3564 response_data.read() 3565 return self.api_client.response_deserialize( 3566 response_data=response_data, 3567 response_types_map=_response_types_map, 3568 ).data
Get legal hold information
Retrieves information about a legal hold within a case for an organization.
Required scope
organization:cases:managementRate limiting
Level 3Enterprise Guard only
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
:param org_id: The ID of the organization for which you want to retrieve the legal hold information. (required) :type org_id: str :param case_id: The ID of the case for which you want to retrieve the legal hold information. (required) :type case_id: str :param legal_hold_id: The ID of the legal hold you want to retrieve. (required) :type legal_hold_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3625 @validate_call 3626 def get_legal_hold_content_items( 3627 self, 3628 org_id: Annotated[ 3629 str, 3630 Field( 3631 strict=True, 3632 description="The ID of the organization for which you want to retrieve the list of content items under hold.", 3633 ), 3634 ], 3635 case_id: Annotated[ 3636 str, 3637 Field( 3638 strict=True, 3639 description="The ID of the case for which you want to retrieve the list of content items under hold.", 3640 ), 3641 ], 3642 legal_hold_id: Annotated[ 3643 str, 3644 Field( 3645 strict=True, 3646 description="The ID of the legal hold for which you want to retrieve the list of content items under hold.", 3647 ), 3648 ], 3649 limit: Annotated[ 3650 int, Field(le=100, strict=True, ge=1, description="The maximum number of items in the result list.") 3651 ], 3652 cursor: Annotated[ 3653 Optional[StrictStr], 3654 Field( 3655 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. " 3656 ), 3657 ] = None, 3658 _request_timeout: Union[ 3659 None, 3660 Annotated[StrictFloat, Field(gt=0)], 3661 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3662 ] = None, 3663 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3664 _content_type: Optional[StrictStr] = None, 3665 _headers: Optional[Dict[StrictStr, Any]] = None, 3666 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3667 ) -> PaginatedLegalHoldContentItemsResponse: 3668 """Get content items under legal hold 3669 3670 Once a legal hold is in place you can review or explore the preserved Miro boards to ensure that all relevant data is intact and ready for legal proceedings or investigations. For more information, see our <a href=\"https://help.miro.com/hc/en-us/articles/22120628583570-Review-boards-under-legal-hold\" target=_blank>Help Center page on reviewing boards under legal hold</a>. <br><br>This API lists all content items under a specific legal hold in a case for an organization. Please verify that the legal hold is in 'ACTIVE' state to guarantee that the legal hold has finished processing the full list of content items under hold. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organization:cases:management</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise Guard only</h3> <p>This API is available only for Enterprise plan users with the <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15699815402514-Enterprise-Guard-overview\">Enterprise Guard add-on</a>. You can only use this endpoint if you have both the Company Admin and <a target=_blank href=\"https://help.miro.com/hc/en-us/articles/15695755655954-Understand-admin-roles-and-their-privileges-Beta#01JARF6KM8ATNT6YDMGD7GMYJN\">eDiscovery Admin</a> roles. 3671 3672 :param org_id: The ID of the organization for which you want to retrieve the list of content items under hold. (required) 3673 :type org_id: str 3674 :param case_id: The ID of the case for which you want to retrieve the list of content items under hold. (required) 3675 :type case_id: str 3676 :param legal_hold_id: The ID of the legal hold for which you want to retrieve the list of content items under hold. (required) 3677 :type legal_hold_id: str 3678 :param limit: The maximum number of items in the result list. (required) 3679 :type limit: int 3680 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 3681 :type cursor: str 3682 :param _request_timeout: timeout setting for this request. If one 3683 number provided, it will be total request 3684 timeout. It can also be a pair (tuple) of 3685 (connection, read) timeouts. 3686 :type _request_timeout: int, tuple(int, int), optional 3687 :param _request_auth: set to override the auth_settings for an a single 3688 request; this effectively ignores the 3689 authentication in the spec for a single request. 3690 :type _request_auth: dict, optional 3691 :param _content_type: force content-type for the request. 3692 :type _content_type: str, Optional 3693 :param _headers: set to override the headers for a single 3694 request; this effectively ignores the headers 3695 in the spec for a single request. 3696 :type _headers: dict, optional 3697 :param _host_index: set to override the host_index for a single 3698 request; this effectively ignores the host_index 3699 in the spec for a single request. 3700 :type _host_index: int, optional 3701 :return: Returns the result object. 3702 """ # noqa: E501 3703 3704 _param = self._get_legal_hold_content_items_serialize( 3705 org_id=org_id, 3706 case_id=case_id, 3707 legal_hold_id=legal_hold_id, 3708 limit=limit, 3709 cursor=cursor, 3710 _request_auth=_request_auth, 3711 _content_type=_content_type, 3712 _headers=_headers, 3713 _host_index=_host_index, 3714 ) 3715 3716 _response_types_map: Dict[str, Optional[str]] = { 3717 "200": "PaginatedLegalHoldContentItemsResponse", 3718 "400": None, 3719 "401": None, 3720 "403": None, 3721 "404": None, 3722 "429": None, 3723 } 3724 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3725 response_data.read() 3726 return self.api_client.response_deserialize( 3727 response_data=response_data, 3728 response_types_map=_response_types_map, 3729 ).data
Get content items under legal hold
Once a legal hold is in place you can review or explore the preserved Miro boards to ensure that all relevant data is intact and ready for legal proceedings or investigations. For more information, see our Help Center page on reviewing boards under legal hold.
This API lists all content items under a specific legal hold in a case for an organization. Please verify that the legal hold is in 'ACTIVE' state to guarantee that the legal hold has finished processing the full list of content items under hold.
Required scope
organization:cases:managementRate limiting
Level 3Enterprise Guard only
This API is available only for Enterprise plan users with the Enterprise Guard add-on. You can only use this endpoint if you have both the Company Admin and eDiscovery Admin roles.
:param org_id: The ID of the organization for which you want to retrieve the list of content items under hold. (required) :type org_id: str :param case_id: The ID of the case for which you want to retrieve the list of content items under hold. (required) :type case_id: str :param legal_hold_id: The ID of the legal hold for which you want to retrieve the list of content items under hold. (required) :type legal_hold_id: str :param limit: The maximum number of items in the result list. (required) :type limit: int :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3796 @validate_call 3797 def create_mindmap_nodes_experimental( 3798 self, 3799 board_id: Annotated[ 3800 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 3801 ], 3802 mindmap_create_request: MindmapCreateRequest, 3803 _request_timeout: Union[ 3804 None, 3805 Annotated[StrictFloat, Field(gt=0)], 3806 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3807 ] = None, 3808 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3809 _content_type: Optional[StrictStr] = None, 3810 _headers: Optional[Dict[StrictStr, Any]] = None, 3811 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3812 ) -> MindmapItem: 3813 """Create mind map node 3814 3815 Adds a mind map node to a board. A root node is the starting point of a mind map. A node that is created under a root node is a child node. For information on mind maps, use cases, mind map structure, and more, see the <a href=\"https://developers.miro.com/docs/mind-maps\" target=_blank>Mind Map Overview</a> page. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/><br/> <b>Known limitations on node placement: </b> Currently, the create API supports explicit positions for nodes. This means that users can only place nodes based on the x, y coordinates provided in the position parameters. If the position is not provided in the request, nodes default to coordinates x=0, y=0, effectively placing them at the center of the board. <br /><br /><b>Upcoming changes:</b> We understand the importance of flexibility in node placement. We are actively working on implementing changes to support positioning nodes relative to their parent node as well. This enhancement offers a more dynamic and intuitive mind mapping experience. <br /><br />Additionally, we are actively working on providing the update API, further enhancing the functionality of mind map APIs. 3816 3817 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 3818 :type board_id: str 3819 :param mindmap_create_request: (required) 3820 :type mindmap_create_request: MindmapCreateRequest 3821 :param _request_timeout: timeout setting for this request. If one 3822 number provided, it will be total request 3823 timeout. It can also be a pair (tuple) of 3824 (connection, read) timeouts. 3825 :type _request_timeout: int, tuple(int, int), optional 3826 :param _request_auth: set to override the auth_settings for an a single 3827 request; this effectively ignores the 3828 authentication in the spec for a single request. 3829 :type _request_auth: dict, optional 3830 :param _content_type: force content-type for the request. 3831 :type _content_type: str, Optional 3832 :param _headers: set to override the headers for a single 3833 request; this effectively ignores the headers 3834 in the spec for a single request. 3835 :type _headers: dict, optional 3836 :param _host_index: set to override the host_index for a single 3837 request; this effectively ignores the host_index 3838 in the spec for a single request. 3839 :type _host_index: int, optional 3840 :return: Returns the result object. 3841 """ # noqa: E501 3842 3843 _param = self._create_mindmap_nodes_experimental_serialize( 3844 board_id=board_id, 3845 mindmap_create_request=mindmap_create_request, 3846 _request_auth=_request_auth, 3847 _content_type=_content_type, 3848 _headers=_headers, 3849 _host_index=_host_index, 3850 ) 3851 3852 _response_types_map: Dict[str, Optional[str]] = { 3853 "201": "MindmapItem", 3854 "400": "CreateFrameItem400Response", 3855 "404": "CreateFrameItem400Response", 3856 "429": "CreateFrameItem400Response", 3857 } 3858 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3859 response_data.read() 3860 return self.api_client.response_deserialize( 3861 response_data=response_data, 3862 response_types_map=_response_types_map, 3863 ).data
Create mind map node
Adds a mind map node to a board. A root node is the starting point of a mind map. A node that is created under a root node is a child node. For information on mind maps, use cases, mind map structure, and more, see the Mind Map Overview page.
Required scope
boards:writeRate limiting
Level 2Known limitations on node placement: Currently, the create API supports explicit positions for nodes. This means that users can only place nodes based on the x, y coordinates provided in the position parameters. If the position is not provided in the request, nodes default to coordinates x=0, y=0, effectively placing them at the center of the board.
Upcoming changes: We understand the importance of flexibility in node placement. We are actively working on implementing changes to support positioning nodes relative to their parent node as well. This enhancement offers a more dynamic and intuitive mind mapping experience.
Additionally, we are actively working on providing the update API, further enhancing the functionality of mind map APIs.
:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param mindmap_create_request: (required) :type mindmap_create_request: MindmapCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
3925 @validate_call 3926 def delete_mindmap_node_experimental( 3927 self, 3928 board_id: Annotated[ 3929 StrictStr, 3930 Field(description="Unique identifier (ID) of the board from which you want to delete the mind map node."), 3931 ], 3932 item_id: Annotated[ 3933 StrictStr, Field(description="Unique identifier (ID) of the mind map node that you want to delete.") 3934 ], 3935 _request_timeout: Union[ 3936 None, 3937 Annotated[StrictFloat, Field(gt=0)], 3938 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 3939 ] = None, 3940 _request_auth: Optional[Dict[StrictStr, Any]] = None, 3941 _content_type: Optional[StrictStr] = None, 3942 _headers: Optional[Dict[StrictStr, Any]] = None, 3943 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 3944 ) -> object: 3945 """Delete mind map node 3946 3947 Deletes a mind map node item and its child nodes from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 3948 3949 :param board_id: Unique identifier (ID) of the board from which you want to delete the mind map node. (required) 3950 :type board_id: str 3951 :param item_id: Unique identifier (ID) of the mind map node that you want to delete. (required) 3952 :type item_id: str 3953 :param _request_timeout: timeout setting for this request. If one 3954 number provided, it will be total request 3955 timeout. It can also be a pair (tuple) of 3956 (connection, read) timeouts. 3957 :type _request_timeout: int, tuple(int, int), optional 3958 :param _request_auth: set to override the auth_settings for an a single 3959 request; this effectively ignores the 3960 authentication in the spec for a single request. 3961 :type _request_auth: dict, optional 3962 :param _content_type: force content-type for the request. 3963 :type _content_type: str, Optional 3964 :param _headers: set to override the headers for a single 3965 request; this effectively ignores the headers 3966 in the spec for a single request. 3967 :type _headers: dict, optional 3968 :param _host_index: set to override the host_index for a single 3969 request; this effectively ignores the host_index 3970 in the spec for a single request. 3971 :type _host_index: int, optional 3972 :return: Returns the result object. 3973 """ # noqa: E501 3974 3975 _param = self._delete_mindmap_node_experimental_serialize( 3976 board_id=board_id, 3977 item_id=item_id, 3978 _request_auth=_request_auth, 3979 _content_type=_content_type, 3980 _headers=_headers, 3981 _host_index=_host_index, 3982 ) 3983 3984 _response_types_map: Dict[str, Optional[str]] = { 3985 "204": "object", 3986 "400": "CreateFrameItem400Response", 3987 "404": "CreateFrameItem400Response", 3988 "429": "CreateFrameItem400Response", 3989 } 3990 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 3991 response_data.read() 3992 return self.api_client.response_deserialize( 3993 response_data=response_data, 3994 response_types_map=_response_types_map, 3995 ).data
Delete mind map node
Deletes a mind map node item and its child nodes from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the mind map node. (required) :type board_id: str :param item_id: Unique identifier (ID) of the mind map node that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4049 @validate_call 4050 def get_mindmap_node_experimental( 4051 self, 4052 board_id: Annotated[ 4053 StrictStr, 4054 Field(description="Unique identifier (ID) of the board from which you want to retrieve a mind map node."), 4055 ], 4056 item_id: Annotated[ 4057 StrictStr, Field(description="Unique identifier (ID) of the mind map node that you want to retrieve.") 4058 ], 4059 _request_timeout: Union[ 4060 None, 4061 Annotated[StrictFloat, Field(gt=0)], 4062 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4063 ] = None, 4064 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4065 _content_type: Optional[StrictStr] = None, 4066 _headers: Optional[Dict[StrictStr, Any]] = None, 4067 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4068 ) -> MindmapItem: 4069 """Get specific mind map node 4070 4071 Retrieves information for a specific mind map node on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 4072 4073 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a mind map node. (required) 4074 :type board_id: str 4075 :param item_id: Unique identifier (ID) of the mind map node that you want to retrieve. (required) 4076 :type item_id: str 4077 :param _request_timeout: timeout setting for this request. If one 4078 number provided, it will be total request 4079 timeout. It can also be a pair (tuple) of 4080 (connection, read) timeouts. 4081 :type _request_timeout: int, tuple(int, int), optional 4082 :param _request_auth: set to override the auth_settings for an a single 4083 request; this effectively ignores the 4084 authentication in the spec for a single request. 4085 :type _request_auth: dict, optional 4086 :param _content_type: force content-type for the request. 4087 :type _content_type: str, Optional 4088 :param _headers: set to override the headers for a single 4089 request; this effectively ignores the headers 4090 in the spec for a single request. 4091 :type _headers: dict, optional 4092 :param _host_index: set to override the host_index for a single 4093 request; this effectively ignores the host_index 4094 in the spec for a single request. 4095 :type _host_index: int, optional 4096 :return: Returns the result object. 4097 """ # noqa: E501 4098 4099 _param = self._get_mindmap_node_experimental_serialize( 4100 board_id=board_id, 4101 item_id=item_id, 4102 _request_auth=_request_auth, 4103 _content_type=_content_type, 4104 _headers=_headers, 4105 _host_index=_host_index, 4106 ) 4107 4108 _response_types_map: Dict[str, Optional[str]] = { 4109 "200": "MindmapItem", 4110 } 4111 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4112 response_data.read() 4113 return self.api_client.response_deserialize( 4114 response_data=response_data, 4115 response_types_map=_response_types_map, 4116 ).data
Get specific mind map node
Retrieves information for a specific mind map node on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a mind map node. (required) :type board_id: str :param item_id: Unique identifier (ID) of the mind map node that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4170 @validate_call 4171 def get_mindmap_nodes_experimental( 4172 self, 4173 board_id: Annotated[ 4174 StrictStr, 4175 Field(description="Unique identifier (ID) of the board from which you want to retrieve mind map nodes."), 4176 ], 4177 limit: Annotated[Optional[StrictStr], Field(description="Maximum number of results returned")] = None, 4178 cursor: Annotated[ 4179 Optional[StrictStr], Field(description="Points to the next portion of the results set") 4180 ] = None, 4181 _request_timeout: Union[ 4182 None, 4183 Annotated[StrictFloat, Field(gt=0)], 4184 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4185 ] = None, 4186 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4187 _content_type: Optional[StrictStr] = None, 4188 _headers: Optional[Dict[StrictStr, Any]] = None, 4189 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4190 ) -> MindmapCursorPaged: 4191 """Get mind map nodes 4192 4193 Retrieves a list of mind map nodes for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 4194 4195 :param board_id: Unique identifier (ID) of the board from which you want to retrieve mind map nodes. (required) 4196 :type board_id: str 4197 :param limit: Maximum number of results returned 4198 :type limit: str 4199 :param cursor: Points to the next portion of the results set 4200 :type cursor: str 4201 :param _request_timeout: timeout setting for this request. If one 4202 number provided, it will be total request 4203 timeout. It can also be a pair (tuple) of 4204 (connection, read) timeouts. 4205 :type _request_timeout: int, tuple(int, int), optional 4206 :param _request_auth: set to override the auth_settings for an a single 4207 request; this effectively ignores the 4208 authentication in the spec for a single request. 4209 :type _request_auth: dict, optional 4210 :param _content_type: force content-type for the request. 4211 :type _content_type: str, Optional 4212 :param _headers: set to override the headers for a single 4213 request; this effectively ignores the headers 4214 in the spec for a single request. 4215 :type _headers: dict, optional 4216 :param _host_index: set to override the host_index for a single 4217 request; this effectively ignores the host_index 4218 in the spec for a single request. 4219 :type _host_index: int, optional 4220 :return: Returns the result object. 4221 """ # noqa: E501 4222 4223 _param = self._get_mindmap_nodes_experimental_serialize( 4224 board_id=board_id, 4225 limit=limit, 4226 cursor=cursor, 4227 _request_auth=_request_auth, 4228 _content_type=_content_type, 4229 _headers=_headers, 4230 _host_index=_host_index, 4231 ) 4232 4233 _response_types_map: Dict[str, Optional[str]] = { 4234 "200": "MindmapCursorPaged", 4235 } 4236 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4237 response_data.read() 4238 return self.api_client.response_deserialize( 4239 response_data=response_data, 4240 response_types_map=_response_types_map, 4241 ).data
Get mind map nodes
Retrieves a list of mind map nodes for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request. For example, if you set the limit
query parameter to 10
and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id: Unique identifier (ID) of the board from which you want to retrieve mind map nodes. (required) :type board_id: str :param limit: Maximum number of results returned :type limit: str :param cursor: Points to the next portion of the results set :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4302 @validate_call 4303 def revoke_token_v2( 4304 self, 4305 revoke_token_request: RevokeTokenRequest, 4306 _request_timeout: Union[ 4307 None, 4308 Annotated[StrictFloat, Field(gt=0)], 4309 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4310 ] = None, 4311 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4312 _content_type: Optional[StrictStr] = None, 4313 _headers: Optional[Dict[StrictStr, Any]] = None, 4314 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4315 ) -> None: 4316 """Revoke token (v2) 4317 4318 Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user. 4319 4320 :param revoke_token_request: (required) 4321 :type revoke_token_request: RevokeTokenRequest 4322 :param _request_timeout: timeout setting for this request. If one 4323 number provided, it will be total request 4324 timeout. It can also be a pair (tuple) of 4325 (connection, read) timeouts. 4326 :type _request_timeout: int, tuple(int, int), optional 4327 :param _request_auth: set to override the auth_settings for an a single 4328 request; this effectively ignores the 4329 authentication in the spec for a single request. 4330 :type _request_auth: dict, optional 4331 :param _content_type: force content-type for the request. 4332 :type _content_type: str, Optional 4333 :param _headers: set to override the headers for a single 4334 request; this effectively ignores the headers 4335 in the spec for a single request. 4336 :type _headers: dict, optional 4337 :param _host_index: set to override the host_index for a single 4338 request; this effectively ignores the host_index 4339 in the spec for a single request. 4340 :type _host_index: int, optional 4341 :return: Returns the result object. 4342 """ # noqa: E501 4343 4344 _param = self._revoke_token_v2_serialize( 4345 revoke_token_request=revoke_token_request, 4346 _request_auth=_request_auth, 4347 _content_type=_content_type, 4348 _headers=_headers, 4349 _host_index=_host_index, 4350 ) 4351 4352 _response_types_map: Dict[str, Optional[str]] = { 4353 "204": None, 4354 "404": "ErrorResponse", 4355 } 4356 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4357 response_data.read() 4358 return self.api_client.response_deserialize( 4359 response_data=response_data, 4360 response_types_map=_response_types_map, 4361 ).data
Revoke token (v2)
Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user.
:param revoke_token_request: (required) :type revoke_token_request: RevokeTokenRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4420 @validate_call 4421 def enterprise_get_organization_member( 4422 self, 4423 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4424 member_id: Annotated[StrictStr, Field(description="id of the organization member")], 4425 _request_timeout: Union[ 4426 None, 4427 Annotated[StrictFloat, Field(gt=0)], 4428 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4429 ] = None, 4430 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4431 _content_type: Optional[StrictStr] = None, 4432 _headers: Optional[Dict[StrictStr, Any]] = None, 4433 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4434 ) -> OrganizationMember: 4435 """Get organization member 4436 4437 Retrieves organization member information for an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4438 4439 :param org_id: id of the organization (required) 4440 :type org_id: str 4441 :param member_id: id of the organization member (required) 4442 :type member_id: str 4443 :param _request_timeout: timeout setting for this request. If one 4444 number provided, it will be total request 4445 timeout. It can also be a pair (tuple) of 4446 (connection, read) timeouts. 4447 :type _request_timeout: int, tuple(int, int), optional 4448 :param _request_auth: set to override the auth_settings for an a single 4449 request; this effectively ignores the 4450 authentication in the spec for a single request. 4451 :type _request_auth: dict, optional 4452 :param _content_type: force content-type for the request. 4453 :type _content_type: str, Optional 4454 :param _headers: set to override the headers for a single 4455 request; this effectively ignores the headers 4456 in the spec for a single request. 4457 :type _headers: dict, optional 4458 :param _host_index: set to override the host_index for a single 4459 request; this effectively ignores the host_index 4460 in the spec for a single request. 4461 :type _host_index: int, optional 4462 :return: Returns the result object. 4463 """ # noqa: E501 4464 4465 _param = self._enterprise_get_organization_member_serialize( 4466 org_id=org_id, 4467 member_id=member_id, 4468 _request_auth=_request_auth, 4469 _content_type=_content_type, 4470 _headers=_headers, 4471 _host_index=_host_index, 4472 ) 4473 4474 _response_types_map: Dict[str, Optional[str]] = { 4475 "200": "OrganizationMember", 4476 "400": None, 4477 "401": None, 4478 "403": None, 4479 "404": None, 4480 "409": None, 4481 "429": None, 4482 } 4483 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4484 response_data.read() 4485 return self.api_client.response_deserialize( 4486 response_data=response_data, 4487 response_types_map=_response_types_map, 4488 ).data
Get organization member
Retrieves organization member information for an existing organization.
Required scope
organizations:readRate limiting
Level 3Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param member_id: id of the organization member (required) :type member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4542 @validate_call 4543 def enterprise_get_organization_members( 4544 self, 4545 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4546 emails: Optional[StrictStr] = None, 4547 role: Optional[StrictStr] = None, 4548 license: Optional[StrictStr] = None, 4549 active: Optional[StrictBool] = None, 4550 cursor: Optional[StrictStr] = None, 4551 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 4552 _request_timeout: Union[ 4553 None, 4554 Annotated[StrictFloat, Field(gt=0)], 4555 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4556 ] = None, 4557 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4558 _content_type: Optional[StrictStr] = None, 4559 _headers: Optional[Dict[StrictStr, Any]] = None, 4560 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4561 ) -> EnterpriseGetOrganizationMembers200Response: 4562 """Get organization members 4563 4564 Retrieves organization members based on the organization ID and the cursor, or based on the user emails provided in the request.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4565 4566 :param org_id: id of the organization (required) 4567 :type org_id: str 4568 :param emails: 4569 :type emails: str 4570 :param role: 4571 :type role: str 4572 :param license: 4573 :type license: str 4574 :param active: 4575 :type active: bool 4576 :param cursor: 4577 :type cursor: str 4578 :param limit: 4579 :type limit: int 4580 :param _request_timeout: timeout setting for this request. If one 4581 number provided, it will be total request 4582 timeout. It can also be a pair (tuple) of 4583 (connection, read) timeouts. 4584 :type _request_timeout: int, tuple(int, int), optional 4585 :param _request_auth: set to override the auth_settings for an a single 4586 request; this effectively ignores the 4587 authentication in the spec for a single request. 4588 :type _request_auth: dict, optional 4589 :param _content_type: force content-type for the request. 4590 :type _content_type: str, Optional 4591 :param _headers: set to override the headers for a single 4592 request; this effectively ignores the headers 4593 in the spec for a single request. 4594 :type _headers: dict, optional 4595 :param _host_index: set to override the host_index for a single 4596 request; this effectively ignores the host_index 4597 in the spec for a single request. 4598 :type _host_index: int, optional 4599 :return: Returns the result object. 4600 """ # noqa: E501 4601 4602 _param = self._enterprise_get_organization_members_serialize( 4603 org_id=org_id, 4604 emails=emails, 4605 role=role, 4606 license=license, 4607 active=active, 4608 cursor=cursor, 4609 limit=limit, 4610 _request_auth=_request_auth, 4611 _content_type=_content_type, 4612 _headers=_headers, 4613 _host_index=_host_index, 4614 ) 4615 4616 _response_types_map: Dict[str, Optional[str]] = { 4617 "200": "EnterpriseGetOrganizationMembers200Response", 4618 "400": None, 4619 "401": None, 4620 "403": None, 4621 "404": None, 4622 "409": None, 4623 "429": None, 4624 } 4625 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4626 response_data.read() 4627 return self.api_client.response_deserialize( 4628 response_data=response_data, 4629 response_types_map=_response_types_map, 4630 ).data
Get organization members
Retrieves organization members based on the organization ID and the cursor, or based on the user emails provided in the request.
Required scope
organizations:readRate limiting
Level 3Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param emails: :type emails: str :param role: :type role: str :param license: :type license: str :param active: :type active: bool :param cursor: :type cursor: str :param limit: :type limit: int :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4711 @validate_call 4712 def enterprise_get_organization( 4713 self, 4714 org_id: Annotated[StrictStr, Field(description="id of the organization")], 4715 _request_timeout: Union[ 4716 None, 4717 Annotated[StrictFloat, Field(gt=0)], 4718 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4719 ] = None, 4720 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4721 _content_type: Optional[StrictStr] = None, 4722 _headers: Optional[Dict[StrictStr, Any]] = None, 4723 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4724 ) -> Organization: 4725 """Get organization info 4726 4727 Retrieves organization information.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4728 4729 :param org_id: id of the organization (required) 4730 :type org_id: str 4731 :param _request_timeout: timeout setting for this request. If one 4732 number provided, it will be total request 4733 timeout. It can also be a pair (tuple) of 4734 (connection, read) timeouts. 4735 :type _request_timeout: int, tuple(int, int), optional 4736 :param _request_auth: set to override the auth_settings for an a single 4737 request; this effectively ignores the 4738 authentication in the spec for a single request. 4739 :type _request_auth: dict, optional 4740 :param _content_type: force content-type for the request. 4741 :type _content_type: str, Optional 4742 :param _headers: set to override the headers for a single 4743 request; this effectively ignores the headers 4744 in the spec for a single request. 4745 :type _headers: dict, optional 4746 :param _host_index: set to override the host_index for a single 4747 request; this effectively ignores the host_index 4748 in the spec for a single request. 4749 :type _host_index: int, optional 4750 :return: Returns the result object. 4751 """ # noqa: E501 4752 4753 _param = self._enterprise_get_organization_serialize( 4754 org_id=org_id, 4755 _request_auth=_request_auth, 4756 _content_type=_content_type, 4757 _headers=_headers, 4758 _host_index=_host_index, 4759 ) 4760 4761 _response_types_map: Dict[str, Optional[str]] = { 4762 "200": "Organization", 4763 "400": None, 4764 "401": None, 4765 "403": None, 4766 "404": None, 4767 "409": None, 4768 "429": None, 4769 } 4770 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4771 response_data.read() 4772 return self.api_client.response_deserialize( 4773 response_data=response_data, 4774 response_types_map=_response_types_map, 4775 ).data
Get organization info
Retrieves organization information.
Required scope
organizations:readRate limiting
Level 3Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: id of the organization (required) :type org_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4826 @validate_call 4827 def enterprise_add_project_member( 4828 self, 4829 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 4830 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 4831 project_id: Annotated[StrictStr, Field(description="The ID of the project to which you want to add a user.")], 4832 add_project_member_request: AddProjectMemberRequest, 4833 _request_timeout: Union[ 4834 None, 4835 Annotated[StrictFloat, Field(gt=0)], 4836 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4837 ] = None, 4838 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4839 _content_type: Optional[StrictStr] = None, 4840 _headers: Optional[Dict[StrictStr, Any]] = None, 4841 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4842 ) -> ProjectMember: 4843 """Add member in a project 4844 4845 Add a Miro user to a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4846 4847 :param org_id: The ID of the organization to which the project belongs. (required) 4848 :type org_id: str 4849 :param team_id: The ID of the team to which the project belongs. (required) 4850 :type team_id: str 4851 :param project_id: The ID of the project to which you want to add a user. (required) 4852 :type project_id: str 4853 :param add_project_member_request: (required) 4854 :type add_project_member_request: AddProjectMemberRequest 4855 :param _request_timeout: timeout setting for this request. If one 4856 number provided, it will be total request 4857 timeout. It can also be a pair (tuple) of 4858 (connection, read) timeouts. 4859 :type _request_timeout: int, tuple(int, int), optional 4860 :param _request_auth: set to override the auth_settings for an a single 4861 request; this effectively ignores the 4862 authentication in the spec for a single request. 4863 :type _request_auth: dict, optional 4864 :param _content_type: force content-type for the request. 4865 :type _content_type: str, Optional 4866 :param _headers: set to override the headers for a single 4867 request; this effectively ignores the headers 4868 in the spec for a single request. 4869 :type _headers: dict, optional 4870 :param _host_index: set to override the host_index for a single 4871 request; this effectively ignores the host_index 4872 in the spec for a single request. 4873 :type _host_index: int, optional 4874 :return: Returns the result object. 4875 """ # noqa: E501 4876 4877 _param = self._enterprise_add_project_member_serialize( 4878 org_id=org_id, 4879 team_id=team_id, 4880 project_id=project_id, 4881 add_project_member_request=add_project_member_request, 4882 _request_auth=_request_auth, 4883 _content_type=_content_type, 4884 _headers=_headers, 4885 _host_index=_host_index, 4886 ) 4887 4888 _response_types_map: Dict[str, Optional[str]] = { 4889 "201": "ProjectMember", 4890 "400": "Error400", 4891 "401": "Error401", 4892 "403": "Error403", 4893 "404": "Error404", 4894 "409": "Error409", 4895 "429": "Error429", 4896 } 4897 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 4898 response_data.read() 4899 return self.api_client.response_deserialize( 4900 response_data=response_data, 4901 response_types_map=_response_types_map, 4902 ).data
Add member in a project
Add a Miro user to a project.
Required scope
projects:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project belongs. (required) :type team_id: str :param project_id: The ID of the project to which you want to add a user. (required) :type project_id: str :param add_project_member_request: (required) :type add_project_member_request: AddProjectMemberRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
4970 @validate_call 4971 def enterprise_delete_project_member( 4972 self, 4973 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 4974 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 4975 project_id: Annotated[ 4976 StrictStr, Field(description="The ID of the project from which you want to remove a member.") 4977 ], 4978 member_id: Annotated[ 4979 StrictStr, Field(description="The ID of the member that you want to remove from a project.") 4980 ], 4981 _request_timeout: Union[ 4982 None, 4983 Annotated[StrictFloat, Field(gt=0)], 4984 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 4985 ] = None, 4986 _request_auth: Optional[Dict[StrictStr, Any]] = None, 4987 _content_type: Optional[StrictStr] = None, 4988 _headers: Optional[Dict[StrictStr, Any]] = None, 4989 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 4990 ) -> None: 4991 """Remove project member 4992 4993 Remove a member from a project. The user remains in the team even after the member is removed from a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 4994 4995 :param org_id: The ID of the organization to which the project belongs. (required) 4996 :type org_id: str 4997 :param team_id: The ID of the team to which the project belongs. (required) 4998 :type team_id: str 4999 :param project_id: The ID of the project from which you want to remove a member. (required) 5000 :type project_id: str 5001 :param member_id: The ID of the member that you want to remove from a project. (required) 5002 :type member_id: str 5003 :param _request_timeout: timeout setting for this request. If one 5004 number provided, it will be total request 5005 timeout. It can also be a pair (tuple) of 5006 (connection, read) timeouts. 5007 :type _request_timeout: int, tuple(int, int), optional 5008 :param _request_auth: set to override the auth_settings for an a single 5009 request; this effectively ignores the 5010 authentication in the spec for a single request. 5011 :type _request_auth: dict, optional 5012 :param _content_type: force content-type for the request. 5013 :type _content_type: str, Optional 5014 :param _headers: set to override the headers for a single 5015 request; this effectively ignores the headers 5016 in the spec for a single request. 5017 :type _headers: dict, optional 5018 :param _host_index: set to override the host_index for a single 5019 request; this effectively ignores the host_index 5020 in the spec for a single request. 5021 :type _host_index: int, optional 5022 :return: Returns the result object. 5023 """ # noqa: E501 5024 5025 _param = self._enterprise_delete_project_member_serialize( 5026 org_id=org_id, 5027 team_id=team_id, 5028 project_id=project_id, 5029 member_id=member_id, 5030 _request_auth=_request_auth, 5031 _content_type=_content_type, 5032 _headers=_headers, 5033 _host_index=_host_index, 5034 ) 5035 5036 _response_types_map: Dict[str, Optional[str]] = { 5037 "204": None, 5038 "400": "Error400", 5039 "401": "Error401", 5040 "403": "Error403", 5041 "404": "Error404", 5042 "409": "Error409", 5043 "429": "Error429", 5044 } 5045 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5046 response_data.read() 5047 return self.api_client.response_deserialize( 5048 response_data=response_data, 5049 response_types_map=_response_types_map, 5050 ).data
Remove project member
Remove a member from a project. The user remains in the team even after the member is removed from a project.
Required scope
projects:writeRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project belongs. (required) :type team_id: str :param project_id: The ID of the project from which you want to remove a member. (required) :type project_id: str :param member_id: The ID of the member that you want to remove from a project. (required) :type member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5110 @validate_call 5111 def enterprise_get_project_member( 5112 self, 5113 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5114 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5115 project_id: Annotated[ 5116 StrictStr, 5117 Field(description="The ID of the project from which you want to retrieve specific member information."), 5118 ], 5119 member_id: Annotated[ 5120 StrictStr, Field(description="The ID of the member for which you want to retrieve information.") 5121 ], 5122 _request_timeout: Union[ 5123 None, 5124 Annotated[StrictFloat, Field(gt=0)], 5125 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5126 ] = None, 5127 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5128 _content_type: Optional[StrictStr] = None, 5129 _headers: Optional[Dict[StrictStr, Any]] = None, 5130 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5131 ) -> ProjectMember: 5132 """Get project member 5133 5134 Retrieves information for a specific project member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5135 5136 :param org_id: The ID of the organization to which the project belongs. (required) 5137 :type org_id: str 5138 :param team_id: The ID of the team to which the project belongs. (required) 5139 :type team_id: str 5140 :param project_id: The ID of the project from which you want to retrieve specific member information. (required) 5141 :type project_id: str 5142 :param member_id: The ID of the member for which you want to retrieve information. (required) 5143 :type member_id: str 5144 :param _request_timeout: timeout setting for this request. If one 5145 number provided, it will be total request 5146 timeout. It can also be a pair (tuple) of 5147 (connection, read) timeouts. 5148 :type _request_timeout: int, tuple(int, int), optional 5149 :param _request_auth: set to override the auth_settings for an a single 5150 request; this effectively ignores the 5151 authentication in the spec for a single request. 5152 :type _request_auth: dict, optional 5153 :param _content_type: force content-type for the request. 5154 :type _content_type: str, Optional 5155 :param _headers: set to override the headers for a single 5156 request; this effectively ignores the headers 5157 in the spec for a single request. 5158 :type _headers: dict, optional 5159 :param _host_index: set to override the host_index for a single 5160 request; this effectively ignores the host_index 5161 in the spec for a single request. 5162 :type _host_index: int, optional 5163 :return: Returns the result object. 5164 """ # noqa: E501 5165 5166 _param = self._enterprise_get_project_member_serialize( 5167 org_id=org_id, 5168 team_id=team_id, 5169 project_id=project_id, 5170 member_id=member_id, 5171 _request_auth=_request_auth, 5172 _content_type=_content_type, 5173 _headers=_headers, 5174 _host_index=_host_index, 5175 ) 5176 5177 _response_types_map: Dict[str, Optional[str]] = { 5178 "200": "ProjectMember", 5179 "400": "Error400", 5180 "401": "Error401", 5181 "403": "Error403", 5182 "404": "Error404", 5183 "409": "Error409", 5184 "429": "Error429", 5185 } 5186 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5187 response_data.read() 5188 return self.api_client.response_deserialize( 5189 response_data=response_data, 5190 response_types_map=_response_types_map, 5191 ).data
Get project member
Retrieves information for a specific project member.
Required scope
projects:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project belongs. (required) :type team_id: str :param project_id: The ID of the project from which you want to retrieve specific member information. (required) :type project_id: str :param member_id: The ID of the member for which you want to retrieve information. (required) :type member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5251 @validate_call 5252 def enterprise_get_project_members( 5253 self, 5254 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5255 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5256 project_id: Annotated[ 5257 StrictStr, Field(description="The ID of the project for which you want to retrieve the list of members.") 5258 ], 5259 limit: Annotated[ 5260 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 5261 Field( 5262 description="The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value." 5263 ), 5264 ] = None, 5265 cursor: Annotated[ 5266 Optional[StrictStr], 5267 Field( 5268 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 5269 ), 5270 ] = None, 5271 _request_timeout: Union[ 5272 None, 5273 Annotated[StrictFloat, Field(gt=0)], 5274 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5275 ] = None, 5276 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5277 _content_type: Optional[StrictStr] = None, 5278 _headers: Optional[Dict[StrictStr, Any]] = None, 5279 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5280 ) -> ProjectMemberPage: 5281 """List of project members 5282 5283 Retrieves the list of members for a specific project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5284 5285 :param org_id: The ID of the organization to which the project belongs. (required) 5286 :type org_id: str 5287 :param team_id: The ID of the team to which the project belongs. (required) 5288 :type team_id: str 5289 :param project_id: The ID of the project for which you want to retrieve the list of members. (required) 5290 :type project_id: str 5291 :param limit: The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value. 5292 :type limit: int 5293 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 5294 :type cursor: str 5295 :param _request_timeout: timeout setting for this request. If one 5296 number provided, it will be total request 5297 timeout. It can also be a pair (tuple) of 5298 (connection, read) timeouts. 5299 :type _request_timeout: int, tuple(int, int), optional 5300 :param _request_auth: set to override the auth_settings for an a single 5301 request; this effectively ignores the 5302 authentication in the spec for a single request. 5303 :type _request_auth: dict, optional 5304 :param _content_type: force content-type for the request. 5305 :type _content_type: str, Optional 5306 :param _headers: set to override the headers for a single 5307 request; this effectively ignores the headers 5308 in the spec for a single request. 5309 :type _headers: dict, optional 5310 :param _host_index: set to override the host_index for a single 5311 request; this effectively ignores the host_index 5312 in the spec for a single request. 5313 :type _host_index: int, optional 5314 :return: Returns the result object. 5315 """ # noqa: E501 5316 5317 _param = self._enterprise_get_project_members_serialize( 5318 org_id=org_id, 5319 team_id=team_id, 5320 project_id=project_id, 5321 limit=limit, 5322 cursor=cursor, 5323 _request_auth=_request_auth, 5324 _content_type=_content_type, 5325 _headers=_headers, 5326 _host_index=_host_index, 5327 ) 5328 5329 _response_types_map: Dict[str, Optional[str]] = { 5330 "200": "ProjectMemberPage", 5331 "400": "Error400", 5332 "401": "Error401", 5333 "403": "Error403", 5334 "404": "Error404", 5335 "409": "Error409", 5336 "429": "Error429", 5337 } 5338 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5339 response_data.read() 5340 return self.api_client.response_deserialize( 5341 response_data=response_data, 5342 response_types_map=_response_types_map, 5343 ).data
List of project members
Retrieves the list of members for a specific project.
Required scope
projects:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project belongs. (required) :type team_id: str :param project_id: The ID of the project for which you want to retrieve the list of members. (required) :type project_id: str :param limit: The maximum number of results to return per call. If the number of project members in the response is greater than the limit specified, the response returns the cursor parameter with a value. :type limit: int :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5410 @validate_call 5411 def enterprise_update_project_member( 5412 self, 5413 org_id: Annotated[ 5414 StrictStr, Field(description="The ID of the organization to which the project member belongs.") 5415 ], 5416 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project member belongs.")], 5417 project_id: Annotated[StrictStr, Field(description="The ID of a Project.")], 5418 member_id: Annotated[StrictStr, Field(description="The ID of the member whose details you want to update.")], 5419 update_project_member_request: UpdateProjectMemberRequest, 5420 _request_timeout: Union[ 5421 None, 5422 Annotated[StrictFloat, Field(gt=0)], 5423 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5424 ] = None, 5425 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5426 _content_type: Optional[StrictStr] = None, 5427 _headers: Optional[Dict[StrictStr, Any]] = None, 5428 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5429 ) -> ProjectMember: 5430 """Update project member 5431 5432 Updates details of a project member, such as the member's role.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5433 5434 :param org_id: The ID of the organization to which the project member belongs. (required) 5435 :type org_id: str 5436 :param team_id: The ID of the team to which the project member belongs. (required) 5437 :type team_id: str 5438 :param project_id: The ID of a Project. (required) 5439 :type project_id: str 5440 :param member_id: The ID of the member whose details you want to update. (required) 5441 :type member_id: str 5442 :param update_project_member_request: (required) 5443 :type update_project_member_request: UpdateProjectMemberRequest 5444 :param _request_timeout: timeout setting for this request. If one 5445 number provided, it will be total request 5446 timeout. It can also be a pair (tuple) of 5447 (connection, read) timeouts. 5448 :type _request_timeout: int, tuple(int, int), optional 5449 :param _request_auth: set to override the auth_settings for an a single 5450 request; this effectively ignores the 5451 authentication in the spec for a single request. 5452 :type _request_auth: dict, optional 5453 :param _content_type: force content-type for the request. 5454 :type _content_type: str, Optional 5455 :param _headers: set to override the headers for a single 5456 request; this effectively ignores the headers 5457 in the spec for a single request. 5458 :type _headers: dict, optional 5459 :param _host_index: set to override the host_index for a single 5460 request; this effectively ignores the host_index 5461 in the spec for a single request. 5462 :type _host_index: int, optional 5463 :return: Returns the result object. 5464 """ # noqa: E501 5465 5466 _param = self._enterprise_update_project_member_serialize( 5467 org_id=org_id, 5468 team_id=team_id, 5469 project_id=project_id, 5470 member_id=member_id, 5471 update_project_member_request=update_project_member_request, 5472 _request_auth=_request_auth, 5473 _content_type=_content_type, 5474 _headers=_headers, 5475 _host_index=_host_index, 5476 ) 5477 5478 _response_types_map: Dict[str, Optional[str]] = { 5479 "200": "ProjectMember", 5480 "400": "Error400", 5481 "401": "Error401", 5482 "403": "Error403", 5483 "404": "Error404", 5484 "409": "Error409", 5485 "429": "Error429", 5486 } 5487 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5488 response_data.read() 5489 return self.api_client.response_deserialize( 5490 response_data=response_data, 5491 response_types_map=_response_types_map, 5492 ).data
Update project member
Updates details of a project member, such as the member's role.
Required scope
projects:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project member belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project member belongs. (required) :type team_id: str :param project_id: The ID of a Project. (required) :type project_id: str :param member_id: The ID of the member whose details you want to update. (required) :type member_id: str :param update_project_member_request: (required) :type update_project_member_request: UpdateProjectMemberRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5563 @validate_call 5564 def enterprise_get_project_settings( 5565 self, 5566 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5567 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5568 project_id: Annotated[ 5569 StrictStr, Field(description="The ID of the project for which you want to retrieve the project settings.") 5570 ], 5571 _request_timeout: Union[ 5572 None, 5573 Annotated[StrictFloat, Field(gt=0)], 5574 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5575 ] = None, 5576 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5577 _content_type: Optional[StrictStr] = None, 5578 _headers: Optional[Dict[StrictStr, Any]] = None, 5579 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5580 ) -> ProjectSettings: 5581 """Get project settings 5582 5583 Retrieves the project settings.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5584 5585 :param org_id: The ID of the organization to which the project belongs. (required) 5586 :type org_id: str 5587 :param team_id: The ID of the team to which the project belongs. (required) 5588 :type team_id: str 5589 :param project_id: The ID of the project for which you want to retrieve the project settings. (required) 5590 :type project_id: str 5591 :param _request_timeout: timeout setting for this request. If one 5592 number provided, it will be total request 5593 timeout. It can also be a pair (tuple) of 5594 (connection, read) timeouts. 5595 :type _request_timeout: int, tuple(int, int), optional 5596 :param _request_auth: set to override the auth_settings for an a single 5597 request; this effectively ignores the 5598 authentication in the spec for a single request. 5599 :type _request_auth: dict, optional 5600 :param _content_type: force content-type for the request. 5601 :type _content_type: str, Optional 5602 :param _headers: set to override the headers for a single 5603 request; this effectively ignores the headers 5604 in the spec for a single request. 5605 :type _headers: dict, optional 5606 :param _host_index: set to override the host_index for a single 5607 request; this effectively ignores the host_index 5608 in the spec for a single request. 5609 :type _host_index: int, optional 5610 :return: Returns the result object. 5611 """ # noqa: E501 5612 5613 _param = self._enterprise_get_project_settings_serialize( 5614 org_id=org_id, 5615 team_id=team_id, 5616 project_id=project_id, 5617 _request_auth=_request_auth, 5618 _content_type=_content_type, 5619 _headers=_headers, 5620 _host_index=_host_index, 5621 ) 5622 5623 _response_types_map: Dict[str, Optional[str]] = { 5624 "200": "ProjectSettings", 5625 "400": "Error400", 5626 "401": "Error401", 5627 "403": "Error403", 5628 "404": "Error404", 5629 "429": "Error429", 5630 } 5631 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5632 response_data.read() 5633 return self.api_client.response_deserialize( 5634 response_data=response_data, 5635 response_types_map=_response_types_map, 5636 ).data
Get project settings
Retrieves the project settings.
Required scope
projects:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project belongs. (required) :type team_id: str :param project_id: The ID of the project for which you want to retrieve the project settings. (required) :type project_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5693 @validate_call 5694 def enterprise_update_project_settings( 5695 self, 5696 org_id: Annotated[StrictStr, Field(description="The ID of the organization to which the project belongs.")], 5697 team_id: Annotated[StrictStr, Field(description="The ID of the team to which the project belongs.")], 5698 project_id: Annotated[StrictStr, Field(description="The ID of the project whose settings you want to update.")], 5699 update_project_settings_request: UpdateProjectSettingsRequest, 5700 _request_timeout: Union[ 5701 None, 5702 Annotated[StrictFloat, Field(gt=0)], 5703 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5704 ] = None, 5705 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5706 _content_type: Optional[StrictStr] = None, 5707 _headers: Optional[Dict[StrictStr, Any]] = None, 5708 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5709 ) -> ProjectSettings: 5710 """Update project settings 5711 5712 Updates the settings of a project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5713 5714 :param org_id: The ID of the organization to which the project belongs. (required) 5715 :type org_id: str 5716 :param team_id: The ID of the team to which the project belongs. (required) 5717 :type team_id: str 5718 :param project_id: The ID of the project whose settings you want to update. (required) 5719 :type project_id: str 5720 :param update_project_settings_request: (required) 5721 :type update_project_settings_request: UpdateProjectSettingsRequest 5722 :param _request_timeout: timeout setting for this request. If one 5723 number provided, it will be total request 5724 timeout. It can also be a pair (tuple) of 5725 (connection, read) timeouts. 5726 :type _request_timeout: int, tuple(int, int), optional 5727 :param _request_auth: set to override the auth_settings for an a single 5728 request; this effectively ignores the 5729 authentication in the spec for a single request. 5730 :type _request_auth: dict, optional 5731 :param _content_type: force content-type for the request. 5732 :type _content_type: str, Optional 5733 :param _headers: set to override the headers for a single 5734 request; this effectively ignores the headers 5735 in the spec for a single request. 5736 :type _headers: dict, optional 5737 :param _host_index: set to override the host_index for a single 5738 request; this effectively ignores the host_index 5739 in the spec for a single request. 5740 :type _host_index: int, optional 5741 :return: Returns the result object. 5742 """ # noqa: E501 5743 5744 _param = self._enterprise_update_project_settings_serialize( 5745 org_id=org_id, 5746 team_id=team_id, 5747 project_id=project_id, 5748 update_project_settings_request=update_project_settings_request, 5749 _request_auth=_request_auth, 5750 _content_type=_content_type, 5751 _headers=_headers, 5752 _host_index=_host_index, 5753 ) 5754 5755 _response_types_map: Dict[str, Optional[str]] = { 5756 "200": "ProjectSettings", 5757 "400": "Error400", 5758 "401": "Error401", 5759 "403": "Error403", 5760 "404": "Error404", 5761 "409": "Error409", 5762 "429": "Error429", 5763 } 5764 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5765 response_data.read() 5766 return self.api_client.response_deserialize( 5767 response_data=response_data, 5768 response_types_map=_response_types_map, 5769 ).data
Update project settings
Updates the settings of a project.
Required scope
projects:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization to which the project belongs. (required) :type org_id: str :param team_id: The ID of the team to which the project belongs. (required) :type team_id: str :param project_id: The ID of the project whose settings you want to update. (required) :type project_id: str :param update_project_settings_request: (required) :type update_project_settings_request: UpdateProjectSettingsRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5837 @validate_call 5838 def enterprise_create_project( 5839 self, 5840 org_id: Annotated[ 5841 StrictStr, Field(description="The ID of the organization within which you you want to create a project.") 5842 ], 5843 team_id: Annotated[ 5844 StrictStr, Field(description="The ID of the team within which you you want to create a project.") 5845 ], 5846 create_project_request: CreateProjectRequest, 5847 _request_timeout: Union[ 5848 None, 5849 Annotated[StrictFloat, Field(gt=0)], 5850 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5851 ] = None, 5852 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5853 _content_type: Optional[StrictStr] = None, 5854 _headers: Optional[Dict[StrictStr, Any]] = None, 5855 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5856 ) -> Project: 5857 """Create project 5858 5859 Projects are essentially folders of boards with the option to manage user access for a smaller group of people within a team. Projects are here to help you organize your boards and make them easier to find and share. In other words, a project is a group of boards that you can share with your teammates all at once. For more information, see our <a href=\"https://help.miro.com/hc/en-us/articles/360018262033-Projects\" target=_blank>Help Center page on Projects</a>. <br><br>This API creates a new project in an existing team of an organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5860 5861 :param org_id: The ID of the organization within which you you want to create a project. (required) 5862 :type org_id: str 5863 :param team_id: The ID of the team within which you you want to create a project. (required) 5864 :type team_id: str 5865 :param create_project_request: (required) 5866 :type create_project_request: CreateProjectRequest 5867 :param _request_timeout: timeout setting for this request. If one 5868 number provided, it will be total request 5869 timeout. It can also be a pair (tuple) of 5870 (connection, read) timeouts. 5871 :type _request_timeout: int, tuple(int, int), optional 5872 :param _request_auth: set to override the auth_settings for an a single 5873 request; this effectively ignores the 5874 authentication in the spec for a single request. 5875 :type _request_auth: dict, optional 5876 :param _content_type: force content-type for the request. 5877 :type _content_type: str, Optional 5878 :param _headers: set to override the headers for a single 5879 request; this effectively ignores the headers 5880 in the spec for a single request. 5881 :type _headers: dict, optional 5882 :param _host_index: set to override the host_index for a single 5883 request; this effectively ignores the host_index 5884 in the spec for a single request. 5885 :type _host_index: int, optional 5886 :return: Returns the result object. 5887 """ # noqa: E501 5888 5889 _param = self._enterprise_create_project_serialize( 5890 org_id=org_id, 5891 team_id=team_id, 5892 create_project_request=create_project_request, 5893 _request_auth=_request_auth, 5894 _content_type=_content_type, 5895 _headers=_headers, 5896 _host_index=_host_index, 5897 ) 5898 5899 _response_types_map: Dict[str, Optional[str]] = { 5900 "201": "Project", 5901 "400": "Error400", 5902 "401": "Error401", 5903 "403": "Error403", 5904 "404": "Error404", 5905 "409": "Error409", 5906 "429": "Error429", 5907 } 5908 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 5909 response_data.read() 5910 return self.api_client.response_deserialize( 5911 response_data=response_data, 5912 response_types_map=_response_types_map, 5913 ).data
Create project
Projects are essentially folders of boards with the option to manage user access for a smaller group of people within a team. Projects are here to help you organize your boards and make them easier to find and share. In other words, a project is a group of boards that you can share with your teammates all at once. For more information, see our Help Center page on Projects.
This API creates a new project in an existing team of an organization.
Required scope
projects:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization within which you you want to create a project. (required) :type org_id: str :param team_id: The ID of the team within which you you want to create a project. (required) :type team_id: str :param create_project_request: (required) :type create_project_request: CreateProjectRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
5978 @validate_call 5979 def enterprise_delete_project( 5980 self, 5981 org_id: Annotated[ 5982 StrictStr, Field(description="The ID of the organization from which you want to delete a project.") 5983 ], 5984 team_id: Annotated[StrictStr, Field(description="The ID of the team from which you want to delete a project.")], 5985 project_id: Annotated[StrictStr, Field(description="The ID of the project that you want to delete.")], 5986 _request_timeout: Union[ 5987 None, 5988 Annotated[StrictFloat, Field(gt=0)], 5989 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 5990 ] = None, 5991 _request_auth: Optional[Dict[StrictStr, Any]] = None, 5992 _content_type: Optional[StrictStr] = None, 5993 _headers: Optional[Dict[StrictStr, Any]] = None, 5994 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 5995 ) -> None: 5996 """Delete project 5997 5998 Deletes a project. After a project is deleted, all boards and users that belong to the project remain in the team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 5999 6000 :param org_id: The ID of the organization from which you want to delete a project. (required) 6001 :type org_id: str 6002 :param team_id: The ID of the team from which you want to delete a project. (required) 6003 :type team_id: str 6004 :param project_id: The ID of the project that you want to delete. (required) 6005 :type project_id: str 6006 :param _request_timeout: timeout setting for this request. If one 6007 number provided, it will be total request 6008 timeout. It can also be a pair (tuple) of 6009 (connection, read) timeouts. 6010 :type _request_timeout: int, tuple(int, int), optional 6011 :param _request_auth: set to override the auth_settings for an a single 6012 request; this effectively ignores the 6013 authentication in the spec for a single request. 6014 :type _request_auth: dict, optional 6015 :param _content_type: force content-type for the request. 6016 :type _content_type: str, Optional 6017 :param _headers: set to override the headers for a single 6018 request; this effectively ignores the headers 6019 in the spec for a single request. 6020 :type _headers: dict, optional 6021 :param _host_index: set to override the host_index for a single 6022 request; this effectively ignores the host_index 6023 in the spec for a single request. 6024 :type _host_index: int, optional 6025 :return: Returns the result object. 6026 """ # noqa: E501 6027 6028 _param = self._enterprise_delete_project_serialize( 6029 org_id=org_id, 6030 team_id=team_id, 6031 project_id=project_id, 6032 _request_auth=_request_auth, 6033 _content_type=_content_type, 6034 _headers=_headers, 6035 _host_index=_host_index, 6036 ) 6037 6038 _response_types_map: Dict[str, Optional[str]] = { 6039 "204": None, 6040 "400": "Error400", 6041 "401": "Error401", 6042 "403": "Error403", 6043 "404": "Error404", 6044 "409": "Error409", 6045 "429": "Error429", 6046 } 6047 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6048 response_data.read() 6049 return self.api_client.response_deserialize( 6050 response_data=response_data, 6051 response_types_map=_response_types_map, 6052 ).data
Delete project
Deletes a project. After a project is deleted, all boards and users that belong to the project remain in the team.
Required scope
projects:writeRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization from which you want to delete a project. (required) :type org_id: str :param team_id: The ID of the team from which you want to delete a project. (required) :type team_id: str :param project_id: The ID of the project that you want to delete. (required) :type project_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6109 @validate_call 6110 def enterprise_get_project( 6111 self, 6112 org_id: Annotated[ 6113 StrictStr, 6114 Field(description="The ID of the organization from which you want to retrieve the project information."), 6115 ], 6116 team_id: Annotated[ 6117 StrictStr, Field(description="The ID of the team from which you want to retrieve the project information.") 6118 ], 6119 project_id: Annotated[ 6120 StrictStr, Field(description="The ID of the project for which you want to retrieve the information.") 6121 ], 6122 _request_timeout: Union[ 6123 None, 6124 Annotated[StrictFloat, Field(gt=0)], 6125 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6126 ] = None, 6127 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6128 _content_type: Optional[StrictStr] = None, 6129 _headers: Optional[Dict[StrictStr, Any]] = None, 6130 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6131 ) -> Project: 6132 """Get project 6133 6134 Retrieves project information, such as a name for an existing project.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6135 6136 :param org_id: The ID of the organization from which you want to retrieve the project information. (required) 6137 :type org_id: str 6138 :param team_id: The ID of the team from which you want to retrieve the project information. (required) 6139 :type team_id: str 6140 :param project_id: The ID of the project for which you want to retrieve the information. (required) 6141 :type project_id: str 6142 :param _request_timeout: timeout setting for this request. If one 6143 number provided, it will be total request 6144 timeout. It can also be a pair (tuple) of 6145 (connection, read) timeouts. 6146 :type _request_timeout: int, tuple(int, int), optional 6147 :param _request_auth: set to override the auth_settings for an a single 6148 request; this effectively ignores the 6149 authentication in the spec for a single request. 6150 :type _request_auth: dict, optional 6151 :param _content_type: force content-type for the request. 6152 :type _content_type: str, Optional 6153 :param _headers: set to override the headers for a single 6154 request; this effectively ignores the headers 6155 in the spec for a single request. 6156 :type _headers: dict, optional 6157 :param _host_index: set to override the host_index for a single 6158 request; this effectively ignores the host_index 6159 in the spec for a single request. 6160 :type _host_index: int, optional 6161 :return: Returns the result object. 6162 """ # noqa: E501 6163 6164 _param = self._enterprise_get_project_serialize( 6165 org_id=org_id, 6166 team_id=team_id, 6167 project_id=project_id, 6168 _request_auth=_request_auth, 6169 _content_type=_content_type, 6170 _headers=_headers, 6171 _host_index=_host_index, 6172 ) 6173 6174 _response_types_map: Dict[str, Optional[str]] = { 6175 "200": "Project", 6176 "400": "Error400", 6177 "401": "Error401", 6178 "403": "Error403", 6179 "404": "Error404", 6180 "429": "Error429", 6181 } 6182 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6183 response_data.read() 6184 return self.api_client.response_deserialize( 6185 response_data=response_data, 6186 response_types_map=_response_types_map, 6187 ).data
Get project
Retrieves project information, such as a name for an existing project.
Required scope
projects:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization from which you want to retrieve the project information. (required) :type org_id: str :param team_id: The ID of the team from which you want to retrieve the project information. (required) :type team_id: str :param project_id: The ID of the project for which you want to retrieve the information. (required) :type project_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6244 @validate_call 6245 def enterprise_get_projects( 6246 self, 6247 org_id: Annotated[ 6248 StrictStr, 6249 Field( 6250 description="The ID of the organization from which you want to retrieve the list of available projects." 6251 ), 6252 ], 6253 team_id: Annotated[ 6254 StrictStr, 6255 Field(description="The ID of the team from which you want to retrieve the list of available projects."), 6256 ], 6257 limit: Annotated[ 6258 Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], 6259 Field( 6260 description="The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value." 6261 ), 6262 ] = None, 6263 cursor: Annotated[ 6264 Optional[StrictStr], 6265 Field( 6266 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 6267 ), 6268 ] = None, 6269 _request_timeout: Union[ 6270 None, 6271 Annotated[StrictFloat, Field(gt=0)], 6272 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6273 ] = None, 6274 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6275 _content_type: Optional[StrictStr] = None, 6276 _headers: Optional[Dict[StrictStr, Any]] = None, 6277 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6278 ) -> ProjectPage: 6279 """List of projects 6280 6281 Retrieves the list of projects in an existing team of an organization. You can retrieve all projects, including all private projects (projects that haven't been specifically shared with you) by enabling Content Admin permissions. To enable Content Admin permissions, see [Content Admin permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins).<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6282 6283 :param org_id: The ID of the organization from which you want to retrieve the list of available projects. (required) 6284 :type org_id: str 6285 :param team_id: The ID of the team from which you want to retrieve the list of available projects. (required) 6286 :type team_id: str 6287 :param limit: The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value. 6288 :type limit: int 6289 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 6290 :type cursor: str 6291 :param _request_timeout: timeout setting for this request. If one 6292 number provided, it will be total request 6293 timeout. It can also be a pair (tuple) of 6294 (connection, read) timeouts. 6295 :type _request_timeout: int, tuple(int, int), optional 6296 :param _request_auth: set to override the auth_settings for an a single 6297 request; this effectively ignores the 6298 authentication in the spec for a single request. 6299 :type _request_auth: dict, optional 6300 :param _content_type: force content-type for the request. 6301 :type _content_type: str, Optional 6302 :param _headers: set to override the headers for a single 6303 request; this effectively ignores the headers 6304 in the spec for a single request. 6305 :type _headers: dict, optional 6306 :param _host_index: set to override the host_index for a single 6307 request; this effectively ignores the host_index 6308 in the spec for a single request. 6309 :type _host_index: int, optional 6310 :return: Returns the result object. 6311 """ # noqa: E501 6312 6313 _param = self._enterprise_get_projects_serialize( 6314 org_id=org_id, 6315 team_id=team_id, 6316 limit=limit, 6317 cursor=cursor, 6318 _request_auth=_request_auth, 6319 _content_type=_content_type, 6320 _headers=_headers, 6321 _host_index=_host_index, 6322 ) 6323 6324 _response_types_map: Dict[str, Optional[str]] = { 6325 "200": "ProjectPage", 6326 "400": "Error400", 6327 "401": "Error401", 6328 "403": "Error403", 6329 "404": "Error404", 6330 "429": "Error429", 6331 } 6332 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6333 response_data.read() 6334 return self.api_client.response_deserialize( 6335 response_data=response_data, 6336 response_types_map=_response_types_map, 6337 ).data
List of projects
Retrieves the list of projects in an existing team of an organization. You can retrieve all projects, including all private projects (projects that haven't been specifically shared with you) by enabling Content Admin permissions. To enable Content Admin permissions, see Content Admin permissions for Company Admins.
Required scope
projects:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of the organization from which you want to retrieve the list of available projects. (required) :type org_id: str :param team_id: The ID of the team from which you want to retrieve the list of available projects. (required) :type team_id: str :param limit: The maximum number of results to return per call. If the number of projects in the response is greater than the limit specified, the response returns the cursor parameter with a value. :type limit: int :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6401 @validate_call 6402 def enterprise_update_project( 6403 self, 6404 org_id: Annotated[StrictStr, Field(description="The ID of an Organization.")], 6405 team_id: Annotated[StrictStr, Field(description="The ID of a Team.")], 6406 project_id: Annotated[StrictStr, Field(description="The ID of a Project.")], 6407 update_project_request: UpdateProjectRequest, 6408 _request_timeout: Union[ 6409 None, 6410 Annotated[StrictFloat, Field(gt=0)], 6411 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6412 ] = None, 6413 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6414 _content_type: Optional[StrictStr] = None, 6415 _headers: Optional[Dict[StrictStr, Any]] = None, 6416 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6417 ) -> Project: 6418 """Update project 6419 6420 Update information about a project, such as the project name.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>projects:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6421 6422 :param org_id: The ID of an Organization. (required) 6423 :type org_id: str 6424 :param team_id: The ID of a Team. (required) 6425 :type team_id: str 6426 :param project_id: The ID of a Project. (required) 6427 :type project_id: str 6428 :param update_project_request: (required) 6429 :type update_project_request: UpdateProjectRequest 6430 :param _request_timeout: timeout setting for this request. If one 6431 number provided, it will be total request 6432 timeout. It can also be a pair (tuple) of 6433 (connection, read) timeouts. 6434 :type _request_timeout: int, tuple(int, int), optional 6435 :param _request_auth: set to override the auth_settings for an a single 6436 request; this effectively ignores the 6437 authentication in the spec for a single request. 6438 :type _request_auth: dict, optional 6439 :param _content_type: force content-type for the request. 6440 :type _content_type: str, Optional 6441 :param _headers: set to override the headers for a single 6442 request; this effectively ignores the headers 6443 in the spec for a single request. 6444 :type _headers: dict, optional 6445 :param _host_index: set to override the host_index for a single 6446 request; this effectively ignores the host_index 6447 in the spec for a single request. 6448 :type _host_index: int, optional 6449 :return: Returns the result object. 6450 """ # noqa: E501 6451 6452 _param = self._enterprise_update_project_serialize( 6453 org_id=org_id, 6454 team_id=team_id, 6455 project_id=project_id, 6456 update_project_request=update_project_request, 6457 _request_auth=_request_auth, 6458 _content_type=_content_type, 6459 _headers=_headers, 6460 _host_index=_host_index, 6461 ) 6462 6463 _response_types_map: Dict[str, Optional[str]] = { 6464 "200": "Project", 6465 "400": "Error400", 6466 "401": "Error401", 6467 "403": "Error403", 6468 "404": "Error404", 6469 "409": "Error409", 6470 "429": "Error429", 6471 } 6472 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6473 response_data.read() 6474 return self.api_client.response_deserialize( 6475 response_data=response_data, 6476 response_types_map=_response_types_map, 6477 ).data
Update project
Update information about a project, such as the project name.
Required scope
projects:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The ID of an Organization. (required) :type org_id: str :param team_id: The ID of a Team. (required) :type team_id: str :param project_id: The ID of a Project. (required) :type project_id: str :param update_project_request: (required) :type update_project_request: UpdateProjectRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6545 @validate_call 6546 def enterprise_post_user_sessions_reset( 6547 self, 6548 email: Annotated[ 6549 StrictStr, 6550 Field( 6551 description="Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices." 6552 ), 6553 ], 6554 _request_timeout: Union[ 6555 None, 6556 Annotated[StrictFloat, Field(gt=0)], 6557 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6558 ] = None, 6559 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6560 _content_type: Optional[StrictStr] = None, 6561 _headers: Optional[Dict[StrictStr, Any]] = None, 6562 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6563 ) -> None: 6564 """Reset all sessions of a user 6565 6566 Reset all sessions of a user. Admins can now take immediate action to restrict user access to company data in case of security concerns. Calling this API ends all active Miro sessions across devices for a particular user, requiring the user to sign in again. This is useful in situations where a user leaves the company, their credentials are compromised, or there's suspicious activity on their account.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>sessions:delete</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6567 6568 :param email: Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices. (required) 6569 :type email: str 6570 :param _request_timeout: timeout setting for this request. If one 6571 number provided, it will be total request 6572 timeout. It can also be a pair (tuple) of 6573 (connection, read) timeouts. 6574 :type _request_timeout: int, tuple(int, int), optional 6575 :param _request_auth: set to override the auth_settings for an a single 6576 request; this effectively ignores the 6577 authentication in the spec for a single request. 6578 :type _request_auth: dict, optional 6579 :param _content_type: force content-type for the request. 6580 :type _content_type: str, Optional 6581 :param _headers: set to override the headers for a single 6582 request; this effectively ignores the headers 6583 in the spec for a single request. 6584 :type _headers: dict, optional 6585 :param _host_index: set to override the host_index for a single 6586 request; this effectively ignores the host_index 6587 in the spec for a single request. 6588 :type _host_index: int, optional 6589 :return: Returns the result object. 6590 """ # noqa: E501 6591 6592 _param = self._enterprise_post_user_sessions_reset_serialize( 6593 email=email, 6594 _request_auth=_request_auth, 6595 _content_type=_content_type, 6596 _headers=_headers, 6597 _host_index=_host_index, 6598 ) 6599 6600 _response_types_map: Dict[str, Optional[str]] = { 6601 "200": None, 6602 "400": None, 6603 "401": None, 6604 "403": None, 6605 "404": None, 6606 "429": None, 6607 } 6608 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6609 response_data.read() 6610 return self.api_client.response_deserialize( 6611 response_data=response_data, 6612 response_types_map=_response_types_map, 6613 ).data
Reset all sessions of a user
Reset all sessions of a user. Admins can now take immediate action to restrict user access to company data in case of security concerns. Calling this API ends all active Miro sessions across devices for a particular user, requiring the user to sign in again. This is useful in situations where a user leaves the company, their credentials are compromised, or there's suspicious activity on their account.
Required scope
sessions:deleteRate limiting
Level 3Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param email: Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices. (required) :type email: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6663 @validate_call 6664 def enterprise_delete_team_member( 6665 self, 6666 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6667 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6668 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 6669 _request_timeout: Union[ 6670 None, 6671 Annotated[StrictFloat, Field(gt=0)], 6672 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6673 ] = None, 6674 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6675 _content_type: Optional[StrictStr] = None, 6676 _headers: Optional[Dict[StrictStr, Any]] = None, 6677 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6678 ) -> None: 6679 """Delete team member from team 6680 6681 Deletes team member from team by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6682 6683 :param org_id: The id of the Organization. (required) 6684 :type org_id: str 6685 :param team_id: The id of the Team. (required) 6686 :type team_id: str 6687 :param member_id: The id of the Team Member (required) 6688 :type member_id: str 6689 :param _request_timeout: timeout setting for this request. If one 6690 number provided, it will be total request 6691 timeout. It can also be a pair (tuple) of 6692 (connection, read) timeouts. 6693 :type _request_timeout: int, tuple(int, int), optional 6694 :param _request_auth: set to override the auth_settings for an a single 6695 request; this effectively ignores the 6696 authentication in the spec for a single request. 6697 :type _request_auth: dict, optional 6698 :param _content_type: force content-type for the request. 6699 :type _content_type: str, Optional 6700 :param _headers: set to override the headers for a single 6701 request; this effectively ignores the headers 6702 in the spec for a single request. 6703 :type _headers: dict, optional 6704 :param _host_index: set to override the host_index for a single 6705 request; this effectively ignores the host_index 6706 in the spec for a single request. 6707 :type _host_index: int, optional 6708 :return: Returns the result object. 6709 """ # noqa: E501 6710 6711 _param = self._enterprise_delete_team_member_serialize( 6712 org_id=org_id, 6713 team_id=team_id, 6714 member_id=member_id, 6715 _request_auth=_request_auth, 6716 _content_type=_content_type, 6717 _headers=_headers, 6718 _host_index=_host_index, 6719 ) 6720 6721 _response_types_map: Dict[str, Optional[str]] = { 6722 "204": None, 6723 "400": None, 6724 "401": None, 6725 "403": None, 6726 "404": None, 6727 "409": None, 6728 "429": None, 6729 } 6730 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6731 response_data.read() 6732 return self.api_client.response_deserialize( 6733 response_data=response_data, 6734 response_types_map=_response_types_map, 6735 ).data
Delete team member from team
Deletes team member from team by id.
Required scope
organizations:teams:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param member_id: The id of the Team Member (required) :type member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6789 @validate_call 6790 def enterprise_get_team_member( 6791 self, 6792 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6793 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6794 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 6795 _request_timeout: Union[ 6796 None, 6797 Annotated[StrictFloat, Field(gt=0)], 6798 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6799 ] = None, 6800 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6801 _content_type: Optional[StrictStr] = None, 6802 _headers: Optional[Dict[StrictStr, Any]] = None, 6803 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6804 ) -> TeamMember: 6805 """Get team member 6806 6807 Retrieves team member by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6808 6809 :param org_id: The id of the Organization. (required) 6810 :type org_id: str 6811 :param team_id: The id of the Team. (required) 6812 :type team_id: str 6813 :param member_id: The id of the Team Member (required) 6814 :type member_id: str 6815 :param _request_timeout: timeout setting for this request. If one 6816 number provided, it will be total request 6817 timeout. It can also be a pair (tuple) of 6818 (connection, read) timeouts. 6819 :type _request_timeout: int, tuple(int, int), optional 6820 :param _request_auth: set to override the auth_settings for an a single 6821 request; this effectively ignores the 6822 authentication in the spec for a single request. 6823 :type _request_auth: dict, optional 6824 :param _content_type: force content-type for the request. 6825 :type _content_type: str, Optional 6826 :param _headers: set to override the headers for a single 6827 request; this effectively ignores the headers 6828 in the spec for a single request. 6829 :type _headers: dict, optional 6830 :param _host_index: set to override the host_index for a single 6831 request; this effectively ignores the host_index 6832 in the spec for a single request. 6833 :type _host_index: int, optional 6834 :return: Returns the result object. 6835 """ # noqa: E501 6836 6837 _param = self._enterprise_get_team_member_serialize( 6838 org_id=org_id, 6839 team_id=team_id, 6840 member_id=member_id, 6841 _request_auth=_request_auth, 6842 _content_type=_content_type, 6843 _headers=_headers, 6844 _host_index=_host_index, 6845 ) 6846 6847 _response_types_map: Dict[str, Optional[str]] = { 6848 "200": "TeamMember", 6849 "400": None, 6850 "401": None, 6851 "403": None, 6852 "404": None, 6853 "429": None, 6854 } 6855 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 6856 response_data.read() 6857 return self.api_client.response_deserialize( 6858 response_data=response_data, 6859 response_types_map=_response_types_map, 6860 ).data
Get team member
Retrieves team member by id.
Required scope
organizations:teams:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param member_id: The id of the Team Member (required) :type member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
6917 @validate_call 6918 def enterprise_get_team_members( 6919 self, 6920 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 6921 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 6922 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 6923 cursor: Annotated[ 6924 Optional[StrictStr], 6925 Field( 6926 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 6927 ), 6928 ] = None, 6929 role: Annotated[ 6930 Optional[StrictStr], 6931 Field( 6932 description=' Role query. Filters members by role using full word match. Accepted values are: * "member": Team member with full member permissions. * "admin": Admin of a team. Team member with permission to manage team. * "non_team": External user, non-team user. * "team_guest": Team-guest user, user with access only to a team without access to organization. ' 6933 ), 6934 ] = None, 6935 _request_timeout: Union[ 6936 None, 6937 Annotated[StrictFloat, Field(gt=0)], 6938 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 6939 ] = None, 6940 _request_auth: Optional[Dict[StrictStr, Any]] = None, 6941 _content_type: Optional[StrictStr] = None, 6942 _headers: Optional[Dict[StrictStr, Any]] = None, 6943 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 6944 ) -> TeamMembersPage: 6945 """List team members 6946 6947 Retrieves team members by cursor.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 6948 6949 :param org_id: The id of the Organization. (required) 6950 :type org_id: str 6951 :param team_id: The id of the Team. (required) 6952 :type team_id: str 6953 :param limit: 6954 :type limit: int 6955 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 6956 :type cursor: str 6957 :param role: Role query. Filters members by role using full word match. Accepted values are: * \"member\": Team member with full member permissions. * \"admin\": Admin of a team. Team member with permission to manage team. * \"non_team\": External user, non-team user. * \"team_guest\": Team-guest user, user with access only to a team without access to organization. 6958 :type role: str 6959 :param _request_timeout: timeout setting for this request. If one 6960 number provided, it will be total request 6961 timeout. It can also be a pair (tuple) of 6962 (connection, read) timeouts. 6963 :type _request_timeout: int, tuple(int, int), optional 6964 :param _request_auth: set to override the auth_settings for an a single 6965 request; this effectively ignores the 6966 authentication in the spec for a single request. 6967 :type _request_auth: dict, optional 6968 :param _content_type: force content-type for the request. 6969 :type _content_type: str, Optional 6970 :param _headers: set to override the headers for a single 6971 request; this effectively ignores the headers 6972 in the spec for a single request. 6973 :type _headers: dict, optional 6974 :param _host_index: set to override the host_index for a single 6975 request; this effectively ignores the host_index 6976 in the spec for a single request. 6977 :type _host_index: int, optional 6978 :return: Returns the result object. 6979 """ # noqa: E501 6980 6981 _param = self._enterprise_get_team_members_serialize( 6982 org_id=org_id, 6983 team_id=team_id, 6984 limit=limit, 6985 cursor=cursor, 6986 role=role, 6987 _request_auth=_request_auth, 6988 _content_type=_content_type, 6989 _headers=_headers, 6990 _host_index=_host_index, 6991 ) 6992 6993 _response_types_map: Dict[str, Optional[str]] = { 6994 "200": "TeamMembersPage", 6995 "400": None, 6996 "401": None, 6997 "403": None, 6998 "404": None, 6999 "429": None, 7000 } 7001 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7002 response_data.read() 7003 return self.api_client.response_deserialize( 7004 response_data=response_data, 7005 response_types_map=_response_types_map, 7006 ).data
List team members
Retrieves team members by cursor.
Required scope
organizations:teams:readRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param limit: :type limit: int :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param role: Role query. Filters members by role using full word match. Accepted values are: * "member": Team member with full member permissions. * "admin": Admin of a team. Team member with permission to manage team. * "non_team": External user, non-team user. * "team_guest": Team-guest user, user with access only to a team without access to organization. :type role: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7075 @validate_call 7076 def enterprise_invite_team_member( 7077 self, 7078 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7079 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7080 team_member_invite: TeamMemberInvite, 7081 _request_timeout: Union[ 7082 None, 7083 Annotated[StrictFloat, Field(gt=0)], 7084 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7085 ] = None, 7086 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7087 _content_type: Optional[StrictStr] = None, 7088 _headers: Optional[Dict[StrictStr, Any]] = None, 7089 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7090 ) -> TeamMember: 7091 """Invite team members 7092 7093 Invites a new Miro user to an existing team. The user must exist in your Miro organization. Users who do not exist in your Miro organization can be invited to the team via [SCIM](https://developers.miro.com/docs/scim) and an external identity provider, such as Okta or Azure Active Directory.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7094 7095 :param org_id: The id of the Organization. (required) 7096 :type org_id: str 7097 :param team_id: The id of the Team. (required) 7098 :type team_id: str 7099 :param team_member_invite: (required) 7100 :type team_member_invite: TeamMemberInvite 7101 :param _request_timeout: timeout setting for this request. If one 7102 number provided, it will be total request 7103 timeout. It can also be a pair (tuple) of 7104 (connection, read) timeouts. 7105 :type _request_timeout: int, tuple(int, int), optional 7106 :param _request_auth: set to override the auth_settings for an a single 7107 request; this effectively ignores the 7108 authentication in the spec for a single request. 7109 :type _request_auth: dict, optional 7110 :param _content_type: force content-type for the request. 7111 :type _content_type: str, Optional 7112 :param _headers: set to override the headers for a single 7113 request; this effectively ignores the headers 7114 in the spec for a single request. 7115 :type _headers: dict, optional 7116 :param _host_index: set to override the host_index for a single 7117 request; this effectively ignores the host_index 7118 in the spec for a single request. 7119 :type _host_index: int, optional 7120 :return: Returns the result object. 7121 """ # noqa: E501 7122 7123 _param = self._enterprise_invite_team_member_serialize( 7124 org_id=org_id, 7125 team_id=team_id, 7126 team_member_invite=team_member_invite, 7127 _request_auth=_request_auth, 7128 _content_type=_content_type, 7129 _headers=_headers, 7130 _host_index=_host_index, 7131 ) 7132 7133 _response_types_map: Dict[str, Optional[str]] = { 7134 "201": "TeamMember", 7135 "400": None, 7136 "401": None, 7137 "403": None, 7138 "404": None, 7139 "409": None, 7140 "429": None, 7141 } 7142 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7143 response_data.read() 7144 return self.api_client.response_deserialize( 7145 response_data=response_data, 7146 response_types_map=_response_types_map, 7147 ).data
Invite team members
Invites a new Miro user to an existing team. The user must exist in your Miro organization. Users who do not exist in your Miro organization can be invited to the team via SCIM and an external identity provider, such as Okta or Azure Active Directory.
Required scope
organizations:teams:writeRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param team_member_invite: (required) :type team_member_invite: TeamMemberInvite :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7212 @validate_call 7213 def enterprise_update_team_member( 7214 self, 7215 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7216 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7217 member_id: Annotated[StrictStr, Field(description="The id of the Team Member")], 7218 team_member_changes: TeamMemberChanges, 7219 _request_timeout: Union[ 7220 None, 7221 Annotated[StrictFloat, Field(gt=0)], 7222 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7223 ] = None, 7224 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7225 _content_type: Optional[StrictStr] = None, 7226 _headers: Optional[Dict[StrictStr, Any]] = None, 7227 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7228 ) -> TeamMember: 7229 """Update team member 7230 7231 Updates team member role in team by id.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7232 7233 :param org_id: The id of the Organization. (required) 7234 :type org_id: str 7235 :param team_id: The id of the Team. (required) 7236 :type team_id: str 7237 :param member_id: The id of the Team Member (required) 7238 :type member_id: str 7239 :param team_member_changes: (required) 7240 :type team_member_changes: TeamMemberChanges 7241 :param _request_timeout: timeout setting for this request. If one 7242 number provided, it will be total request 7243 timeout. It can also be a pair (tuple) of 7244 (connection, read) timeouts. 7245 :type _request_timeout: int, tuple(int, int), optional 7246 :param _request_auth: set to override the auth_settings for an a single 7247 request; this effectively ignores the 7248 authentication in the spec for a single request. 7249 :type _request_auth: dict, optional 7250 :param _content_type: force content-type for the request. 7251 :type _content_type: str, Optional 7252 :param _headers: set to override the headers for a single 7253 request; this effectively ignores the headers 7254 in the spec for a single request. 7255 :type _headers: dict, optional 7256 :param _host_index: set to override the host_index for a single 7257 request; this effectively ignores the host_index 7258 in the spec for a single request. 7259 :type _host_index: int, optional 7260 :return: Returns the result object. 7261 """ # noqa: E501 7262 7263 _param = self._enterprise_update_team_member_serialize( 7264 org_id=org_id, 7265 team_id=team_id, 7266 member_id=member_id, 7267 team_member_changes=team_member_changes, 7268 _request_auth=_request_auth, 7269 _content_type=_content_type, 7270 _headers=_headers, 7271 _host_index=_host_index, 7272 ) 7273 7274 _response_types_map: Dict[str, Optional[str]] = { 7275 "200": "TeamMember", 7276 "400": None, 7277 "401": None, 7278 "403": None, 7279 "404": None, 7280 "409": None, 7281 "429": None, 7282 } 7283 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7284 response_data.read() 7285 return self.api_client.response_deserialize( 7286 response_data=response_data, 7287 response_types_map=_response_types_map, 7288 ).data
Update team member
Updates team member role in team by id.
Required scope
organizations:teams:writeRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param member_id: The id of the Team Member (required) :type member_id: str :param team_member_changes: (required) :type team_member_changes: TeamMemberChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7356 @validate_call 7357 def enterprise_get_default_team_settings( 7358 self, 7359 org_id: Annotated[StrictStr, Field(description="The id of an Organization.")], 7360 _request_timeout: Union[ 7361 None, 7362 Annotated[StrictFloat, Field(gt=0)], 7363 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7364 ] = None, 7365 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7366 _content_type: Optional[StrictStr] = None, 7367 _headers: Optional[Dict[StrictStr, Any]] = None, 7368 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7369 ) -> TeamSettings: 7370 """Get default team settings 7371 7372 Retrieves default team settings of an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7373 7374 :param org_id: The id of an Organization. (required) 7375 :type org_id: str 7376 :param _request_timeout: timeout setting for this request. If one 7377 number provided, it will be total request 7378 timeout. It can also be a pair (tuple) of 7379 (connection, read) timeouts. 7380 :type _request_timeout: int, tuple(int, int), optional 7381 :param _request_auth: set to override the auth_settings for an a single 7382 request; this effectively ignores the 7383 authentication in the spec for a single request. 7384 :type _request_auth: dict, optional 7385 :param _content_type: force content-type for the request. 7386 :type _content_type: str, Optional 7387 :param _headers: set to override the headers for a single 7388 request; this effectively ignores the headers 7389 in the spec for a single request. 7390 :type _headers: dict, optional 7391 :param _host_index: set to override the host_index for a single 7392 request; this effectively ignores the host_index 7393 in the spec for a single request. 7394 :type _host_index: int, optional 7395 :return: Returns the result object. 7396 """ # noqa: E501 7397 7398 _param = self._enterprise_get_default_team_settings_serialize( 7399 org_id=org_id, 7400 _request_auth=_request_auth, 7401 _content_type=_content_type, 7402 _headers=_headers, 7403 _host_index=_host_index, 7404 ) 7405 7406 _response_types_map: Dict[str, Optional[str]] = { 7407 "200": "TeamSettings", 7408 "400": None, 7409 "401": None, 7410 "403": None, 7411 "404": None, 7412 "429": None, 7413 } 7414 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7415 response_data.read() 7416 return self.api_client.response_deserialize( 7417 response_data=response_data, 7418 response_types_map=_response_types_map, 7419 ).data
Get default team settings
Retrieves default team settings of an existing organization.
Required scope
organizations:teams:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of an Organization. (required) :type org_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7470 @validate_call 7471 def enterprise_get_team_settings( 7472 self, 7473 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7474 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7475 _request_timeout: Union[ 7476 None, 7477 Annotated[StrictFloat, Field(gt=0)], 7478 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7479 ] = None, 7480 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7481 _content_type: Optional[StrictStr] = None, 7482 _headers: Optional[Dict[StrictStr, Any]] = None, 7483 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7484 ) -> TeamSettings: 7485 """Get team settings 7486 7487 Retrieves team settings of an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7488 7489 :param org_id: The id of the Organization. (required) 7490 :type org_id: str 7491 :param team_id: The id of the Team. (required) 7492 :type team_id: str 7493 :param _request_timeout: timeout setting for this request. If one 7494 number provided, it will be total request 7495 timeout. It can also be a pair (tuple) of 7496 (connection, read) timeouts. 7497 :type _request_timeout: int, tuple(int, int), optional 7498 :param _request_auth: set to override the auth_settings for an a single 7499 request; this effectively ignores the 7500 authentication in the spec for a single request. 7501 :type _request_auth: dict, optional 7502 :param _content_type: force content-type for the request. 7503 :type _content_type: str, Optional 7504 :param _headers: set to override the headers for a single 7505 request; this effectively ignores the headers 7506 in the spec for a single request. 7507 :type _headers: dict, optional 7508 :param _host_index: set to override the host_index for a single 7509 request; this effectively ignores the host_index 7510 in the spec for a single request. 7511 :type _host_index: int, optional 7512 :return: Returns the result object. 7513 """ # noqa: E501 7514 7515 _param = self._enterprise_get_team_settings_serialize( 7516 org_id=org_id, 7517 team_id=team_id, 7518 _request_auth=_request_auth, 7519 _content_type=_content_type, 7520 _headers=_headers, 7521 _host_index=_host_index, 7522 ) 7523 7524 _response_types_map: Dict[str, Optional[str]] = { 7525 "200": "TeamSettings", 7526 "400": None, 7527 "401": None, 7528 "403": None, 7529 "404": None, 7530 "429": None, 7531 } 7532 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7533 response_data.read() 7534 return self.api_client.response_deserialize( 7535 response_data=response_data, 7536 response_types_map=_response_types_map, 7537 ).data
Get team settings
Retrieves team settings of an existing team.
Required scope
organizations:teams:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7591 @validate_call 7592 def enterprise_update_team_settings( 7593 self, 7594 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7595 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7596 team_settings_changes: TeamSettingsChanges, 7597 _request_timeout: Union[ 7598 None, 7599 Annotated[StrictFloat, Field(gt=0)], 7600 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7601 ] = None, 7602 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7603 _content_type: Optional[StrictStr] = None, 7604 _headers: Optional[Dict[StrictStr, Any]] = None, 7605 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7606 ) -> TeamSettings: 7607 """Update team settings 7608 7609 Updates team settings of an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7610 7611 :param org_id: The id of the Organization. (required) 7612 :type org_id: str 7613 :param team_id: The id of the Team. (required) 7614 :type team_id: str 7615 :param team_settings_changes: (required) 7616 :type team_settings_changes: TeamSettingsChanges 7617 :param _request_timeout: timeout setting for this request. If one 7618 number provided, it will be total request 7619 timeout. It can also be a pair (tuple) of 7620 (connection, read) timeouts. 7621 :type _request_timeout: int, tuple(int, int), optional 7622 :param _request_auth: set to override the auth_settings for an a single 7623 request; this effectively ignores the 7624 authentication in the spec for a single request. 7625 :type _request_auth: dict, optional 7626 :param _content_type: force content-type for the request. 7627 :type _content_type: str, Optional 7628 :param _headers: set to override the headers for a single 7629 request; this effectively ignores the headers 7630 in the spec for a single request. 7631 :type _headers: dict, optional 7632 :param _host_index: set to override the host_index for a single 7633 request; this effectively ignores the host_index 7634 in the spec for a single request. 7635 :type _host_index: int, optional 7636 :return: Returns the result object. 7637 """ # noqa: E501 7638 7639 _param = self._enterprise_update_team_settings_serialize( 7640 org_id=org_id, 7641 team_id=team_id, 7642 team_settings_changes=team_settings_changes, 7643 _request_auth=_request_auth, 7644 _content_type=_content_type, 7645 _headers=_headers, 7646 _host_index=_host_index, 7647 ) 7648 7649 _response_types_map: Dict[str, Optional[str]] = { 7650 "200": "TeamSettings", 7651 "400": None, 7652 "401": None, 7653 "403": None, 7654 "404": None, 7655 "409": None, 7656 "429": None, 7657 } 7658 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7659 response_data.read() 7660 return self.api_client.response_deserialize( 7661 response_data=response_data, 7662 response_types_map=_response_types_map, 7663 ).data
Update team settings
Updates team settings of an existing team.
Required scope
organizations:teams:writeRate limiting
Level 2Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param team_settings_changes: (required) :type team_settings_changes: TeamSettingsChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7728 @validate_call 7729 def enterprise_create_team( 7730 self, 7731 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7732 create_team_request: CreateTeamRequest, 7733 _request_timeout: Union[ 7734 None, 7735 Annotated[StrictFloat, Field(gt=0)], 7736 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7737 ] = None, 7738 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7739 _content_type: Optional[StrictStr] = None, 7740 _headers: Optional[Dict[StrictStr, Any]] = None, 7741 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7742 ) -> Team: 7743 """Create team 7744 7745 Creates a new team in an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7746 7747 :param org_id: The id of the Organization. (required) 7748 :type org_id: str 7749 :param create_team_request: (required) 7750 :type create_team_request: CreateTeamRequest 7751 :param _request_timeout: timeout setting for this request. If one 7752 number provided, it will be total request 7753 timeout. It can also be a pair (tuple) of 7754 (connection, read) timeouts. 7755 :type _request_timeout: int, tuple(int, int), optional 7756 :param _request_auth: set to override the auth_settings for an a single 7757 request; this effectively ignores the 7758 authentication in the spec for a single request. 7759 :type _request_auth: dict, optional 7760 :param _content_type: force content-type for the request. 7761 :type _content_type: str, Optional 7762 :param _headers: set to override the headers for a single 7763 request; this effectively ignores the headers 7764 in the spec for a single request. 7765 :type _headers: dict, optional 7766 :param _host_index: set to override the host_index for a single 7767 request; this effectively ignores the host_index 7768 in the spec for a single request. 7769 :type _host_index: int, optional 7770 :return: Returns the result object. 7771 """ # noqa: E501 7772 7773 _param = self._enterprise_create_team_serialize( 7774 org_id=org_id, 7775 create_team_request=create_team_request, 7776 _request_auth=_request_auth, 7777 _content_type=_content_type, 7778 _headers=_headers, 7779 _host_index=_host_index, 7780 ) 7781 7782 _response_types_map: Dict[str, Optional[str]] = { 7783 "201": "Team", 7784 "400": None, 7785 "401": None, 7786 "403": None, 7787 "404": None, 7788 "429": None, 7789 } 7790 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7791 response_data.read() 7792 return self.api_client.response_deserialize( 7793 response_data=response_data, 7794 response_types_map=_response_types_map, 7795 ).data
Create team
Creates a new team in an existing organization.
Required scope
organizations:teams:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param create_team_request: (required) :type create_team_request: CreateTeamRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7857 @validate_call 7858 def enterprise_delete_team( 7859 self, 7860 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7861 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7862 _request_timeout: Union[ 7863 None, 7864 Annotated[StrictFloat, Field(gt=0)], 7865 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7866 ] = None, 7867 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7868 _content_type: Optional[StrictStr] = None, 7869 _headers: Optional[Dict[StrictStr, Any]] = None, 7870 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7871 ) -> None: 7872 """Delete team 7873 7874 Deletes an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7875 7876 :param org_id: The id of the Organization. (required) 7877 :type org_id: str 7878 :param team_id: The id of the Team. (required) 7879 :type team_id: str 7880 :param _request_timeout: timeout setting for this request. If one 7881 number provided, it will be total request 7882 timeout. It can also be a pair (tuple) of 7883 (connection, read) timeouts. 7884 :type _request_timeout: int, tuple(int, int), optional 7885 :param _request_auth: set to override the auth_settings for an a single 7886 request; this effectively ignores the 7887 authentication in the spec for a single request. 7888 :type _request_auth: dict, optional 7889 :param _content_type: force content-type for the request. 7890 :type _content_type: str, Optional 7891 :param _headers: set to override the headers for a single 7892 request; this effectively ignores the headers 7893 in the spec for a single request. 7894 :type _headers: dict, optional 7895 :param _host_index: set to override the host_index for a single 7896 request; this effectively ignores the host_index 7897 in the spec for a single request. 7898 :type _host_index: int, optional 7899 :return: Returns the result object. 7900 """ # noqa: E501 7901 7902 _param = self._enterprise_delete_team_serialize( 7903 org_id=org_id, 7904 team_id=team_id, 7905 _request_auth=_request_auth, 7906 _content_type=_content_type, 7907 _headers=_headers, 7908 _host_index=_host_index, 7909 ) 7910 7911 _response_types_map: Dict[str, Optional[str]] = { 7912 "204": None, 7913 "400": None, 7914 "401": None, 7915 "403": None, 7916 "404": None, 7917 "429": None, 7918 } 7919 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 7920 response_data.read() 7921 return self.api_client.response_deserialize( 7922 response_data=response_data, 7923 response_types_map=_response_types_map, 7924 ).data
Delete team
Deletes an existing team.
Required scope
organizations:teams:writeRate limiting
Level 4Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
7975 @validate_call 7976 def enterprise_get_team( 7977 self, 7978 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 7979 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 7980 _request_timeout: Union[ 7981 None, 7982 Annotated[StrictFloat, Field(gt=0)], 7983 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 7984 ] = None, 7985 _request_auth: Optional[Dict[StrictStr, Any]] = None, 7986 _content_type: Optional[StrictStr] = None, 7987 _headers: Optional[Dict[StrictStr, Any]] = None, 7988 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 7989 ) -> Team: 7990 """Get team 7991 7992 Retrieves team information for an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 7993 7994 :param org_id: The id of the Organization. (required) 7995 :type org_id: str 7996 :param team_id: The id of the Team. (required) 7997 :type team_id: str 7998 :param _request_timeout: timeout setting for this request. If one 7999 number provided, it will be total request 8000 timeout. It can also be a pair (tuple) of 8001 (connection, read) timeouts. 8002 :type _request_timeout: int, tuple(int, int), optional 8003 :param _request_auth: set to override the auth_settings for an a single 8004 request; this effectively ignores the 8005 authentication in the spec for a single request. 8006 :type _request_auth: dict, optional 8007 :param _content_type: force content-type for the request. 8008 :type _content_type: str, Optional 8009 :param _headers: set to override the headers for a single 8010 request; this effectively ignores the headers 8011 in the spec for a single request. 8012 :type _headers: dict, optional 8013 :param _host_index: set to override the host_index for a single 8014 request; this effectively ignores the host_index 8015 in the spec for a single request. 8016 :type _host_index: int, optional 8017 :return: Returns the result object. 8018 """ # noqa: E501 8019 8020 _param = self._enterprise_get_team_serialize( 8021 org_id=org_id, 8022 team_id=team_id, 8023 _request_auth=_request_auth, 8024 _content_type=_content_type, 8025 _headers=_headers, 8026 _host_index=_host_index, 8027 ) 8028 8029 _response_types_map: Dict[str, Optional[str]] = { 8030 "200": "Team", 8031 "400": None, 8032 "401": None, 8033 "403": None, 8034 "404": None, 8035 "429": None, 8036 } 8037 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8038 response_data.read() 8039 return self.api_client.response_deserialize( 8040 response_data=response_data, 8041 response_types_map=_response_types_map, 8042 ).data
Get team
Retrieves team information for an existing team.
Required scope
organizations:teams:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8096 @validate_call 8097 def enterprise_get_teams( 8098 self, 8099 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 8100 limit: Optional[Annotated[int, Field(le=100, strict=True, ge=1)]] = None, 8101 cursor: Annotated[ 8102 Optional[StrictStr], 8103 Field( 8104 description="An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request." 8105 ), 8106 ] = None, 8107 name: Annotated[ 8108 Optional[StrictStr], 8109 Field( 8110 description='Name query. Filters teams by name using case insensitive partial match. A value "dev" will return both "Developer\'s team" and "Team for developers".' 8111 ), 8112 ] = None, 8113 _request_timeout: Union[ 8114 None, 8115 Annotated[StrictFloat, Field(gt=0)], 8116 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8117 ] = None, 8118 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8119 _content_type: Optional[StrictStr] = None, 8120 _headers: Optional[Dict[StrictStr, Any]] = None, 8121 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8122 ) -> TeamsPage: 8123 """List teams 8124 8125 Retrieves list of teams in an existing organization.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 8126 8127 :param org_id: The id of the Organization. (required) 8128 :type org_id: str 8129 :param limit: 8130 :type limit: int 8131 :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. 8132 :type cursor: str 8133 :param name: Name query. Filters teams by name using case insensitive partial match. A value \"dev\" will return both \"Developer's team\" and \"Team for developers\". 8134 :type name: str 8135 :param _request_timeout: timeout setting for this request. If one 8136 number provided, it will be total request 8137 timeout. It can also be a pair (tuple) of 8138 (connection, read) timeouts. 8139 :type _request_timeout: int, tuple(int, int), optional 8140 :param _request_auth: set to override the auth_settings for an a single 8141 request; this effectively ignores the 8142 authentication in the spec for a single request. 8143 :type _request_auth: dict, optional 8144 :param _content_type: force content-type for the request. 8145 :type _content_type: str, Optional 8146 :param _headers: set to override the headers for a single 8147 request; this effectively ignores the headers 8148 in the spec for a single request. 8149 :type _headers: dict, optional 8150 :param _host_index: set to override the host_index for a single 8151 request; this effectively ignores the host_index 8152 in the spec for a single request. 8153 :type _host_index: int, optional 8154 :return: Returns the result object. 8155 """ # noqa: E501 8156 8157 _param = self._enterprise_get_teams_serialize( 8158 org_id=org_id, 8159 limit=limit, 8160 cursor=cursor, 8161 name=name, 8162 _request_auth=_request_auth, 8163 _content_type=_content_type, 8164 _headers=_headers, 8165 _host_index=_host_index, 8166 ) 8167 8168 _response_types_map: Dict[str, Optional[str]] = { 8169 "200": "TeamsPage", 8170 "400": None, 8171 "401": None, 8172 "403": None, 8173 "404": None, 8174 "429": None, 8175 } 8176 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8177 response_data.read() 8178 return self.api_client.response_deserialize( 8179 response_data=response_data, 8180 response_types_map=_response_types_map, 8181 ).data
List teams
Retrieves list of teams in an existing organization.
Required scope
organizations:teams:readRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param limit: :type limit: int :param cursor: An indicator of the position of a page in the full set of results. To obtain the first page leave it empty. To obtain subsequent pages set it to the value returned in the cursor field of the previous request. :type cursor: str :param name: Name query. Filters teams by name using case insensitive partial match. A value "dev" will return both "Developer's team" and "Team for developers". :type name: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8247 @validate_call 8248 def enterprise_update_team( 8249 self, 8250 org_id: Annotated[StrictStr, Field(description="The id of the Organization.")], 8251 team_id: Annotated[StrictStr, Field(description="The id of the Team.")], 8252 team_changes: TeamChanges, 8253 _request_timeout: Union[ 8254 None, 8255 Annotated[StrictFloat, Field(gt=0)], 8256 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8257 ] = None, 8258 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8259 _content_type: Optional[StrictStr] = None, 8260 _headers: Optional[Dict[StrictStr, Any]] = None, 8261 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8262 ) -> Team: 8263 """Update team 8264 8265 Updates an existing team.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>organizations:teams:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a> <br/><h3>Enterprise only</h3> <p>This API is available only for <a target=_blank href=\"/reference/api-reference#enterprise-plan\">Enterprise plan</a> users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using <a target=_blank href=\"https://q2oeb0jrhgi.typeform.com/to/BVPTNWJ9\">this form</a>.</p> 8266 8267 :param org_id: The id of the Organization. (required) 8268 :type org_id: str 8269 :param team_id: The id of the Team. (required) 8270 :type team_id: str 8271 :param team_changes: (required) 8272 :type team_changes: TeamChanges 8273 :param _request_timeout: timeout setting for this request. If one 8274 number provided, it will be total request 8275 timeout. It can also be a pair (tuple) of 8276 (connection, read) timeouts. 8277 :type _request_timeout: int, tuple(int, int), optional 8278 :param _request_auth: set to override the auth_settings for an a single 8279 request; this effectively ignores the 8280 authentication in the spec for a single request. 8281 :type _request_auth: dict, optional 8282 :param _content_type: force content-type for the request. 8283 :type _content_type: str, Optional 8284 :param _headers: set to override the headers for a single 8285 request; this effectively ignores the headers 8286 in the spec for a single request. 8287 :type _headers: dict, optional 8288 :param _host_index: set to override the host_index for a single 8289 request; this effectively ignores the host_index 8290 in the spec for a single request. 8291 :type _host_index: int, optional 8292 :return: Returns the result object. 8293 """ # noqa: E501 8294 8295 _param = self._enterprise_update_team_serialize( 8296 org_id=org_id, 8297 team_id=team_id, 8298 team_changes=team_changes, 8299 _request_auth=_request_auth, 8300 _content_type=_content_type, 8301 _headers=_headers, 8302 _host_index=_host_index, 8303 ) 8304 8305 _response_types_map: Dict[str, Optional[str]] = { 8306 "200": "Team", 8307 "400": None, 8308 "401": None, 8309 "403": None, 8310 "404": None, 8311 "429": None, 8312 } 8313 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8314 response_data.read() 8315 return self.api_client.response_deserialize( 8316 response_data=response_data, 8317 response_types_map=_response_types_map, 8318 ).data
Update team
Updates an existing team.
Required scope
organizations:teams:writeRate limiting
Level 1Enterprise only
This API is available only for Enterprise plan users. You can only use this endpoint if you have the role of a Company Admin. You can request temporary access to Enterprise APIs using this form.
:param org_id: The id of the Organization. (required) :type org_id: str :param team_id: The id of the Team. (required) :type team_id: str :param team_changes: (required) :type team_changes: TeamChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8383 @validate_call 8384 def create_board_subscription( 8385 self, 8386 create_board_subscription_request: CreateBoardSubscriptionRequest, 8387 _request_timeout: Union[ 8388 None, 8389 Annotated[StrictFloat, Field(gt=0)], 8390 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8391 ] = None, 8392 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8393 _content_type: Optional[StrictStr] = None, 8394 _headers: Optional[Dict[StrictStr, Any]] = None, 8395 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8396 ) -> BoardSubscription: 8397 """Create webhook subscription 8398 8399 Creates a webhook subscription to receive notifications when an item on a board is updated. Subscriptions are created per user, per board. You can create multiple subscriptions. We currently support all board items except tags, connectors, and comments.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8400 8401 :param create_board_subscription_request: (required) 8402 :type create_board_subscription_request: CreateBoardSubscriptionRequest 8403 :param _request_timeout: timeout setting for this request. If one 8404 number provided, it will be total request 8405 timeout. It can also be a pair (tuple) of 8406 (connection, read) timeouts. 8407 :type _request_timeout: int, tuple(int, int), optional 8408 :param _request_auth: set to override the auth_settings for an a single 8409 request; this effectively ignores the 8410 authentication in the spec for a single request. 8411 :type _request_auth: dict, optional 8412 :param _content_type: force content-type for the request. 8413 :type _content_type: str, Optional 8414 :param _headers: set to override the headers for a single 8415 request; this effectively ignores the headers 8416 in the spec for a single request. 8417 :type _headers: dict, optional 8418 :param _host_index: set to override the host_index for a single 8419 request; this effectively ignores the host_index 8420 in the spec for a single request. 8421 :type _host_index: int, optional 8422 :return: Returns the result object. 8423 """ # noqa: E501 8424 8425 _param = self._create_board_subscription_serialize( 8426 create_board_subscription_request=create_board_subscription_request, 8427 _request_auth=_request_auth, 8428 _content_type=_content_type, 8429 _headers=_headers, 8430 _host_index=_host_index, 8431 ) 8432 8433 _response_types_map: Dict[str, Optional[str]] = { 8434 "201": "BoardSubscription", 8435 "400": "CreateFrameItem400Response", 8436 "404": "CreateFrameItem400Response", 8437 "429": "CreateFrameItem400Response", 8438 } 8439 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8440 response_data.read() 8441 return self.api_client.response_deserialize( 8442 response_data=response_data, 8443 response_types_map=_response_types_map, 8444 ).data
Create webhook subscription
Creates a webhook subscription to receive notifications when an item on a board is updated. Subscriptions are created per user, per board. You can create multiple subscriptions. We currently support all board items except tags, connectors, and comments.
Required scope
boards:readRate limiting
Level 2:param create_board_subscription_request: (required) :type create_board_subscription_request: CreateBoardSubscriptionRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8503 @validate_call 8504 def delete_subscription_by_id( 8505 self, 8506 subscription_id: Annotated[ 8507 StrictStr, Field(description="Unique identifier (ID) of the subscription that you want to delete") 8508 ], 8509 _request_timeout: Union[ 8510 None, 8511 Annotated[StrictFloat, Field(gt=0)], 8512 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8513 ] = None, 8514 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8515 _content_type: Optional[StrictStr] = None, 8516 _headers: Optional[Dict[StrictStr, Any]] = None, 8517 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8518 ) -> object: 8519 """Delete webhook subscription 8520 8521 Deletes the specified webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8522 8523 :param subscription_id: Unique identifier (ID) of the subscription that you want to delete (required) 8524 :type subscription_id: str 8525 :param _request_timeout: timeout setting for this request. If one 8526 number provided, it will be total request 8527 timeout. It can also be a pair (tuple) of 8528 (connection, read) timeouts. 8529 :type _request_timeout: int, tuple(int, int), optional 8530 :param _request_auth: set to override the auth_settings for an a single 8531 request; this effectively ignores the 8532 authentication in the spec for a single request. 8533 :type _request_auth: dict, optional 8534 :param _content_type: force content-type for the request. 8535 :type _content_type: str, Optional 8536 :param _headers: set to override the headers for a single 8537 request; this effectively ignores the headers 8538 in the spec for a single request. 8539 :type _headers: dict, optional 8540 :param _host_index: set to override the host_index for a single 8541 request; this effectively ignores the host_index 8542 in the spec for a single request. 8543 :type _host_index: int, optional 8544 :return: Returns the result object. 8545 """ # noqa: E501 8546 8547 _param = self._delete_subscription_by_id_serialize( 8548 subscription_id=subscription_id, 8549 _request_auth=_request_auth, 8550 _content_type=_content_type, 8551 _headers=_headers, 8552 _host_index=_host_index, 8553 ) 8554 8555 _response_types_map: Dict[str, Optional[str]] = { 8556 "204": "object", 8557 "400": "CreateFrameItem400Response", 8558 "404": "CreateFrameItem400Response", 8559 "429": "CreateFrameItem400Response", 8560 } 8561 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8562 response_data.read() 8563 return self.api_client.response_deserialize( 8564 response_data=response_data, 8565 response_types_map=_response_types_map, 8566 ).data
Delete webhook subscription
Deletes the specified webhook subscription.
Required scope
boards:readRate limiting
Level 2:param subscription_id: Unique identifier (ID) of the subscription that you want to delete (required) :type subscription_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8617 @validate_call 8618 def get_subscription_by_id( 8619 self, 8620 subscription_id: Annotated[ 8621 StrictStr, Field(description="Unique identifier (ID) of the subscription that you want to retrieve") 8622 ], 8623 _request_timeout: Union[ 8624 None, 8625 Annotated[StrictFloat, Field(gt=0)], 8626 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8627 ] = None, 8628 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8629 _content_type: Optional[StrictStr] = None, 8630 _headers: Optional[Dict[StrictStr, Any]] = None, 8631 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8632 ) -> GenericSubscription: 8633 """Get specific webhook subscription 8634 8635 Retrieves information for a specific webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8636 8637 :param subscription_id: Unique identifier (ID) of the subscription that you want to retrieve (required) 8638 :type subscription_id: str 8639 :param _request_timeout: timeout setting for this request. If one 8640 number provided, it will be total request 8641 timeout. It can also be a pair (tuple) of 8642 (connection, read) timeouts. 8643 :type _request_timeout: int, tuple(int, int), optional 8644 :param _request_auth: set to override the auth_settings for an a single 8645 request; this effectively ignores the 8646 authentication in the spec for a single request. 8647 :type _request_auth: dict, optional 8648 :param _content_type: force content-type for the request. 8649 :type _content_type: str, Optional 8650 :param _headers: set to override the headers for a single 8651 request; this effectively ignores the headers 8652 in the spec for a single request. 8653 :type _headers: dict, optional 8654 :param _host_index: set to override the host_index for a single 8655 request; this effectively ignores the host_index 8656 in the spec for a single request. 8657 :type _host_index: int, optional 8658 :return: Returns the result object. 8659 """ # noqa: E501 8660 8661 _param = self._get_subscription_by_id_serialize( 8662 subscription_id=subscription_id, 8663 _request_auth=_request_auth, 8664 _content_type=_content_type, 8665 _headers=_headers, 8666 _host_index=_host_index, 8667 ) 8668 8669 _response_types_map: Dict[str, Optional[str]] = { 8670 "200": "GenericSubscription", 8671 "400": "CreateFrameItem400Response", 8672 "404": "CreateFrameItem400Response", 8673 "429": "CreateFrameItem400Response", 8674 } 8675 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8676 response_data.read() 8677 return self.api_client.response_deserialize( 8678 response_data=response_data, 8679 response_types_map=_response_types_map, 8680 ).data
Get specific webhook subscription
Retrieves information for a specific webhook subscription.
Required scope
boards:readRate limiting
Level 2:param subscription_id: Unique identifier (ID) of the subscription that you want to retrieve (required) :type subscription_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8731 @validate_call 8732 def get_user_subscriptions( 8733 self, 8734 limit: Optional[Annotated[str, Field(strict=True)]] = None, 8735 cursor: Optional[StrictStr] = None, 8736 _request_timeout: Union[ 8737 None, 8738 Annotated[StrictFloat, Field(gt=0)], 8739 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8740 ] = None, 8741 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8742 _content_type: Optional[StrictStr] = None, 8743 _headers: Optional[Dict[StrictStr, Any]] = None, 8744 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8745 ) -> GenericSubscriptionsCursorPaged: 8746 """Get webhook subscriptions 8747 8748 Retrieves information about all webhook subscriptions for a specific user.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a><br/> 8749 8750 :param limit: 8751 :type limit: str 8752 :param cursor: 8753 :type cursor: str 8754 :param _request_timeout: timeout setting for this request. If one 8755 number provided, it will be total request 8756 timeout. It can also be a pair (tuple) of 8757 (connection, read) timeouts. 8758 :type _request_timeout: int, tuple(int, int), optional 8759 :param _request_auth: set to override the auth_settings for an a single 8760 request; this effectively ignores the 8761 authentication in the spec for a single request. 8762 :type _request_auth: dict, optional 8763 :param _content_type: force content-type for the request. 8764 :type _content_type: str, Optional 8765 :param _headers: set to override the headers for a single 8766 request; this effectively ignores the headers 8767 in the spec for a single request. 8768 :type _headers: dict, optional 8769 :param _host_index: set to override the host_index for a single 8770 request; this effectively ignores the host_index 8771 in the spec for a single request. 8772 :type _host_index: int, optional 8773 :return: Returns the result object. 8774 """ # noqa: E501 8775 8776 _param = self._get_user_subscriptions_serialize( 8777 limit=limit, 8778 cursor=cursor, 8779 _request_auth=_request_auth, 8780 _content_type=_content_type, 8781 _headers=_headers, 8782 _host_index=_host_index, 8783 ) 8784 8785 _response_types_map: Dict[str, Optional[str]] = { 8786 "200": "GenericSubscriptionsCursorPaged", 8787 "400": "CreateFrameItem400Response", 8788 "404": "CreateFrameItem400Response", 8789 "429": "CreateFrameItem400Response", 8790 } 8791 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8792 response_data.read() 8793 return self.api_client.response_deserialize( 8794 response_data=response_data, 8795 response_types_map=_response_types_map, 8796 ).data
Get webhook subscriptions
Retrieves information about all webhook subscriptions for a specific user.
Required scope
boards:readRate limiting
Level 4:param limit: :type limit: str :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8854 @validate_call 8855 def update_board_subscription( 8856 self, 8857 subscription_id: StrictStr, 8858 update_board_subscription_request: UpdateBoardSubscriptionRequest, 8859 _request_timeout: Union[ 8860 None, 8861 Annotated[StrictFloat, Field(gt=0)], 8862 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8863 ] = None, 8864 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8865 _content_type: Optional[StrictStr] = None, 8866 _headers: Optional[Dict[StrictStr, Any]] = None, 8867 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8868 ) -> BoardSubscription: 8869 """Update webhook subscription 8870 8871 Updates the status or the callback URL of an existing webhook subscription.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 8872 8873 :param subscription_id: (required) 8874 :type subscription_id: str 8875 :param update_board_subscription_request: (required) 8876 :type update_board_subscription_request: UpdateBoardSubscriptionRequest 8877 :param _request_timeout: timeout setting for this request. If one 8878 number provided, it will be total request 8879 timeout. It can also be a pair (tuple) of 8880 (connection, read) timeouts. 8881 :type _request_timeout: int, tuple(int, int), optional 8882 :param _request_auth: set to override the auth_settings for an a single 8883 request; this effectively ignores the 8884 authentication in the spec for a single request. 8885 :type _request_auth: dict, optional 8886 :param _content_type: force content-type for the request. 8887 :type _content_type: str, Optional 8888 :param _headers: set to override the headers for a single 8889 request; this effectively ignores the headers 8890 in the spec for a single request. 8891 :type _headers: dict, optional 8892 :param _host_index: set to override the host_index for a single 8893 request; this effectively ignores the host_index 8894 in the spec for a single request. 8895 :type _host_index: int, optional 8896 :return: Returns the result object. 8897 """ # noqa: E501 8898 8899 _param = self._update_board_subscription_serialize( 8900 subscription_id=subscription_id, 8901 update_board_subscription_request=update_board_subscription_request, 8902 _request_auth=_request_auth, 8903 _content_type=_content_type, 8904 _headers=_headers, 8905 _host_index=_host_index, 8906 ) 8907 8908 _response_types_map: Dict[str, Optional[str]] = { 8909 "200": "BoardSubscription", 8910 "400": "CreateFrameItem400Response", 8911 "404": "CreateFrameItem400Response", 8912 "429": "CreateFrameItem400Response", 8913 } 8914 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 8915 response_data.read() 8916 return self.api_client.response_deserialize( 8917 response_data=response_data, 8918 response_types_map=_response_types_map, 8919 ).data
Update webhook subscription
Updates the status or the callback URL of an existing webhook subscription.
Required scope
boards:readRate limiting
Level 2:param subscription_id: (required) :type subscription_id: str :param update_board_subscription_request: (required) :type update_board_subscription_request: UpdateBoardSubscriptionRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
8981 @validate_call 8982 def create_app_card_item( 8983 self, 8984 board_id: Annotated[ 8985 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 8986 ], 8987 app_card_create_request: AppCardCreateRequest, 8988 _request_timeout: Union[ 8989 None, 8990 Annotated[StrictFloat, Field(gt=0)], 8991 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 8992 ] = None, 8993 _request_auth: Optional[Dict[StrictStr, Any]] = None, 8994 _content_type: Optional[StrictStr] = None, 8995 _headers: Optional[Dict[StrictStr, Any]] = None, 8996 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 8997 ) -> AppCardItem: 8998 """Create app card item 8999 9000 Adds an app card item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9001 9002 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 9003 :type board_id: str 9004 :param app_card_create_request: (required) 9005 :type app_card_create_request: AppCardCreateRequest 9006 :param _request_timeout: timeout setting for this request. If one 9007 number provided, it will be total request 9008 timeout. It can also be a pair (tuple) of 9009 (connection, read) timeouts. 9010 :type _request_timeout: int, tuple(int, int), optional 9011 :param _request_auth: set to override the auth_settings for an a single 9012 request; this effectively ignores the 9013 authentication in the spec for a single request. 9014 :type _request_auth: dict, optional 9015 :param _content_type: force content-type for the request. 9016 :type _content_type: str, Optional 9017 :param _headers: set to override the headers for a single 9018 request; this effectively ignores the headers 9019 in the spec for a single request. 9020 :type _headers: dict, optional 9021 :param _host_index: set to override the host_index for a single 9022 request; this effectively ignores the host_index 9023 in the spec for a single request. 9024 :type _host_index: int, optional 9025 :return: Returns the result object. 9026 """ # noqa: E501 9027 9028 _param = self._create_app_card_item_serialize( 9029 board_id=board_id, 9030 app_card_create_request=app_card_create_request, 9031 _request_auth=_request_auth, 9032 _content_type=_content_type, 9033 _headers=_headers, 9034 _host_index=_host_index, 9035 ) 9036 9037 _response_types_map: Dict[str, Optional[str]] = { 9038 "201": "AppCardItem", 9039 "400": None, 9040 "404": None, 9041 "429": None, 9042 } 9043 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9044 response_data.read() 9045 return self.api_client.response_deserialize( 9046 response_data=response_data, 9047 response_types_map=_response_types_map, 9048 ).data
Create app card item
Adds an app card item to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param app_card_create_request: (required) :type app_card_create_request: AppCardCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9110 @validate_call 9111 def delete_app_card_item( 9112 self, 9113 board_id: Annotated[ 9114 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete an item.") 9115 ], 9116 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 9117 _request_timeout: Union[ 9118 None, 9119 Annotated[StrictFloat, Field(gt=0)], 9120 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9121 ] = None, 9122 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9123 _content_type: Optional[StrictStr] = None, 9124 _headers: Optional[Dict[StrictStr, Any]] = None, 9125 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9126 ) -> object: 9127 """Delete app card item 9128 9129 Deletes an app card item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 9130 9131 :param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) 9132 :type board_id: str 9133 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 9134 :type item_id: str 9135 :param _request_timeout: timeout setting for this request. If one 9136 number provided, it will be total request 9137 timeout. It can also be a pair (tuple) of 9138 (connection, read) timeouts. 9139 :type _request_timeout: int, tuple(int, int), optional 9140 :param _request_auth: set to override the auth_settings for an a single 9141 request; this effectively ignores the 9142 authentication in the spec for a single request. 9143 :type _request_auth: dict, optional 9144 :param _content_type: force content-type for the request. 9145 :type _content_type: str, Optional 9146 :param _headers: set to override the headers for a single 9147 request; this effectively ignores the headers 9148 in the spec for a single request. 9149 :type _headers: dict, optional 9150 :param _host_index: set to override the host_index for a single 9151 request; this effectively ignores the host_index 9152 in the spec for a single request. 9153 :type _host_index: int, optional 9154 :return: Returns the result object. 9155 """ # noqa: E501 9156 9157 _param = self._delete_app_card_item_serialize( 9158 board_id=board_id, 9159 item_id=item_id, 9160 _request_auth=_request_auth, 9161 _content_type=_content_type, 9162 _headers=_headers, 9163 _host_index=_host_index, 9164 ) 9165 9166 _response_types_map: Dict[str, Optional[str]] = { 9167 "204": "object", 9168 "400": None, 9169 "404": None, 9170 "429": None, 9171 } 9172 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9173 response_data.read() 9174 return self.api_client.response_deserialize( 9175 response_data=response_data, 9176 response_types_map=_response_types_map, 9177 ).data
Delete app card item
Deletes an app card item from a board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9231 @validate_call 9232 def get_app_card_item( 9233 self, 9234 board_id: Annotated[ 9235 StrictStr, 9236 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 9237 ], 9238 item_id: Annotated[ 9239 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 9240 ], 9241 _request_timeout: Union[ 9242 None, 9243 Annotated[StrictFloat, Field(gt=0)], 9244 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9245 ] = None, 9246 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9247 _content_type: Optional[StrictStr] = None, 9248 _headers: Optional[Dict[StrictStr, Any]] = None, 9249 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9250 ) -> AppCardItem: 9251 """Get app card item 9252 9253 Retrieves information for a specific app card item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9254 9255 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 9256 :type board_id: str 9257 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 9258 :type item_id: str 9259 :param _request_timeout: timeout setting for this request. If one 9260 number provided, it will be total request 9261 timeout. It can also be a pair (tuple) of 9262 (connection, read) timeouts. 9263 :type _request_timeout: int, tuple(int, int), optional 9264 :param _request_auth: set to override the auth_settings for an a single 9265 request; this effectively ignores the 9266 authentication in the spec for a single request. 9267 :type _request_auth: dict, optional 9268 :param _content_type: force content-type for the request. 9269 :type _content_type: str, Optional 9270 :param _headers: set to override the headers for a single 9271 request; this effectively ignores the headers 9272 in the spec for a single request. 9273 :type _headers: dict, optional 9274 :param _host_index: set to override the host_index for a single 9275 request; this effectively ignores the host_index 9276 in the spec for a single request. 9277 :type _host_index: int, optional 9278 :return: Returns the result object. 9279 """ # noqa: E501 9280 9281 _param = self._get_app_card_item_serialize( 9282 board_id=board_id, 9283 item_id=item_id, 9284 _request_auth=_request_auth, 9285 _content_type=_content_type, 9286 _headers=_headers, 9287 _host_index=_host_index, 9288 ) 9289 9290 _response_types_map: Dict[str, Optional[str]] = { 9291 "200": "AppCardItem", 9292 "400": None, 9293 "404": None, 9294 "429": None, 9295 } 9296 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9297 response_data.read() 9298 return self.api_client.response_deserialize( 9299 response_data=response_data, 9300 response_types_map=_response_types_map, 9301 ).data
Get app card item
Retrieves information for a specific app card item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9355 @validate_call 9356 def update_app_card_item( 9357 self, 9358 board_id: Annotated[ 9359 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 9360 ], 9361 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 9362 app_card_update_request: AppCardUpdateRequest, 9363 _request_timeout: Union[ 9364 None, 9365 Annotated[StrictFloat, Field(gt=0)], 9366 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9367 ] = None, 9368 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9369 _content_type: Optional[StrictStr] = None, 9370 _headers: Optional[Dict[StrictStr, Any]] = None, 9371 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9372 ) -> AppCardItem: 9373 """Update app card item 9374 9375 Updates an app card item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9376 9377 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 9378 :type board_id: str 9379 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 9380 :type item_id: str 9381 :param app_card_update_request: (required) 9382 :type app_card_update_request: AppCardUpdateRequest 9383 :param _request_timeout: timeout setting for this request. If one 9384 number provided, it will be total request 9385 timeout. It can also be a pair (tuple) of 9386 (connection, read) timeouts. 9387 :type _request_timeout: int, tuple(int, int), optional 9388 :param _request_auth: set to override the auth_settings for an a single 9389 request; this effectively ignores the 9390 authentication in the spec for a single request. 9391 :type _request_auth: dict, optional 9392 :param _content_type: force content-type for the request. 9393 :type _content_type: str, Optional 9394 :param _headers: set to override the headers for a single 9395 request; this effectively ignores the headers 9396 in the spec for a single request. 9397 :type _headers: dict, optional 9398 :param _host_index: set to override the host_index for a single 9399 request; this effectively ignores the host_index 9400 in the spec for a single request. 9401 :type _host_index: int, optional 9402 :return: Returns the result object. 9403 """ # noqa: E501 9404 9405 _param = self._update_app_card_item_serialize( 9406 board_id=board_id, 9407 item_id=item_id, 9408 app_card_update_request=app_card_update_request, 9409 _request_auth=_request_auth, 9410 _content_type=_content_type, 9411 _headers=_headers, 9412 _host_index=_host_index, 9413 ) 9414 9415 _response_types_map: Dict[str, Optional[str]] = { 9416 "200": "AppCardItem", 9417 "400": None, 9418 "404": None, 9419 "409": None, 9420 "429": None, 9421 } 9422 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9423 response_data.read() 9424 return self.api_client.response_deserialize( 9425 response_data=response_data, 9426 response_types_map=_response_types_map, 9427 ).data
Update app card item
Updates an app card item on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param app_card_update_request: (required) :type app_card_update_request: AppCardUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9492 @validate_call 9493 def get_board_members( 9494 self, 9495 board_id: Annotated[ 9496 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9497 ], 9498 limit: Optional[Annotated[str, Field(strict=True)]] = None, 9499 offset: Optional[StrictStr] = None, 9500 _request_timeout: Union[ 9501 None, 9502 Annotated[StrictFloat, Field(gt=0)], 9503 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9504 ] = None, 9505 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9506 _content_type: Optional[StrictStr] = None, 9507 _headers: Optional[Dict[StrictStr, Any]] = None, 9508 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9509 ) -> BoardMembersPagedResponse: 9510 """Get all board members 9511 9512 Retrieves a pageable list of members for a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9513 9514 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9515 :type board_id: str 9516 :param limit: 9517 :type limit: str 9518 :param offset: 9519 :type offset: str 9520 :param _request_timeout: timeout setting for this request. If one 9521 number provided, it will be total request 9522 timeout. It can also be a pair (tuple) of 9523 (connection, read) timeouts. 9524 :type _request_timeout: int, tuple(int, int), optional 9525 :param _request_auth: set to override the auth_settings for an a single 9526 request; this effectively ignores the 9527 authentication in the spec for a single request. 9528 :type _request_auth: dict, optional 9529 :param _content_type: force content-type for the request. 9530 :type _content_type: str, Optional 9531 :param _headers: set to override the headers for a single 9532 request; this effectively ignores the headers 9533 in the spec for a single request. 9534 :type _headers: dict, optional 9535 :param _host_index: set to override the host_index for a single 9536 request; this effectively ignores the host_index 9537 in the spec for a single request. 9538 :type _host_index: int, optional 9539 :return: Returns the result object. 9540 """ # noqa: E501 9541 9542 _param = self._get_board_members_serialize( 9543 board_id=board_id, 9544 limit=limit, 9545 offset=offset, 9546 _request_auth=_request_auth, 9547 _content_type=_content_type, 9548 _headers=_headers, 9549 _host_index=_host_index, 9550 ) 9551 9552 _response_types_map: Dict[str, Optional[str]] = { 9553 "200": "BoardMembersPagedResponse", 9554 "400": None, 9555 "404": None, 9556 "429": None, 9557 } 9558 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9559 response_data.read() 9560 return self.api_client.response_deserialize( 9561 response_data=response_data, 9562 response_types_map=_response_types_map, 9563 ).data
Get all board members
Retrieves a pageable list of members for a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) :type board_id: str :param limit: :type limit: str :param offset: :type offset: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9624 @validate_call 9625 def get_specific_board_member( 9626 self, 9627 board_id: Annotated[ 9628 StrictStr, Field(description="Unique identifier (ID) of the board to which the board member belongs.") 9629 ], 9630 board_member_id: Annotated[ 9631 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to retrieve.") 9632 ], 9633 _request_timeout: Union[ 9634 None, 9635 Annotated[StrictFloat, Field(gt=0)], 9636 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9637 ] = None, 9638 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9639 _content_type: Optional[StrictStr] = None, 9640 _headers: Optional[Dict[StrictStr, Any]] = None, 9641 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9642 ) -> BoardMemberWithLinks: 9643 """Get specific board member 9644 9645 Retrieves information for a board member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 9646 9647 :param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) 9648 :type board_id: str 9649 :param board_member_id: Unique identifier (ID) of the board member whose role you want to retrieve. (required) 9650 :type board_member_id: str 9651 :param _request_timeout: timeout setting for this request. If one 9652 number provided, it will be total request 9653 timeout. It can also be a pair (tuple) of 9654 (connection, read) timeouts. 9655 :type _request_timeout: int, tuple(int, int), optional 9656 :param _request_auth: set to override the auth_settings for an a single 9657 request; this effectively ignores the 9658 authentication in the spec for a single request. 9659 :type _request_auth: dict, optional 9660 :param _content_type: force content-type for the request. 9661 :type _content_type: str, Optional 9662 :param _headers: set to override the headers for a single 9663 request; this effectively ignores the headers 9664 in the spec for a single request. 9665 :type _headers: dict, optional 9666 :param _host_index: set to override the host_index for a single 9667 request; this effectively ignores the host_index 9668 in the spec for a single request. 9669 :type _host_index: int, optional 9670 :return: Returns the result object. 9671 """ # noqa: E501 9672 9673 _param = self._get_specific_board_member_serialize( 9674 board_id=board_id, 9675 board_member_id=board_member_id, 9676 _request_auth=_request_auth, 9677 _content_type=_content_type, 9678 _headers=_headers, 9679 _host_index=_host_index, 9680 ) 9681 9682 _response_types_map: Dict[str, Optional[str]] = { 9683 "200": "BoardMemberWithLinks", 9684 "400": None, 9685 "404": None, 9686 "429": None, 9687 } 9688 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9689 response_data.read() 9690 return self.api_client.response_deserialize( 9691 response_data=response_data, 9692 response_types_map=_response_types_map, 9693 ).data
Get specific board member
Retrieves information for a board member.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) :type board_id: str :param board_member_id: Unique identifier (ID) of the board member whose role you want to retrieve. (required) :type board_member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9747 @validate_call 9748 def remove_board_member( 9749 self, 9750 board_id: Annotated[ 9751 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete an item.") 9752 ], 9753 board_member_id: Annotated[ 9754 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to delete.") 9755 ], 9756 _request_timeout: Union[ 9757 None, 9758 Annotated[StrictFloat, Field(gt=0)], 9759 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 9760 ] = None, 9761 _request_auth: Optional[Dict[StrictStr, Any]] = None, 9762 _content_type: Optional[StrictStr] = None, 9763 _headers: Optional[Dict[StrictStr, Any]] = None, 9764 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 9765 ) -> object: 9766 """Remove board member 9767 9768 Removes a board member from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 9769 9770 :param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) 9771 :type board_id: str 9772 :param board_member_id: Unique identifier (ID) of the board member whose role you want to delete. (required) 9773 :type board_member_id: str 9774 :param _request_timeout: timeout setting for this request. If one 9775 number provided, it will be total request 9776 timeout. It can also be a pair (tuple) of 9777 (connection, read) timeouts. 9778 :type _request_timeout: int, tuple(int, int), optional 9779 :param _request_auth: set to override the auth_settings for an a single 9780 request; this effectively ignores the 9781 authentication in the spec for a single request. 9782 :type _request_auth: dict, optional 9783 :param _content_type: force content-type for the request. 9784 :type _content_type: str, Optional 9785 :param _headers: set to override the headers for a single 9786 request; this effectively ignores the headers 9787 in the spec for a single request. 9788 :type _headers: dict, optional 9789 :param _host_index: set to override the host_index for a single 9790 request; this effectively ignores the host_index 9791 in the spec for a single request. 9792 :type _host_index: int, optional 9793 :return: Returns the result object. 9794 """ # noqa: E501 9795 9796 _param = self._remove_board_member_serialize( 9797 board_id=board_id, 9798 board_member_id=board_member_id, 9799 _request_auth=_request_auth, 9800 _content_type=_content_type, 9801 _headers=_headers, 9802 _host_index=_host_index, 9803 ) 9804 9805 _response_types_map: Dict[str, Optional[str]] = { 9806 "204": "object", 9807 "400": None, 9808 "404": None, 9809 "429": None, 9810 } 9811 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 9812 response_data.read() 9813 return self.api_client.response_deserialize( 9814 response_data=response_data, 9815 response_types_map=_response_types_map, 9816 ).data
Remove board member
Removes a board member from a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board from which you want to delete an item. (required) :type board_id: str :param board_member_id: Unique identifier (ID) of the board member whose role you want to delete. (required) :type board_member_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
9999 @validate_call 10000 def update_board_member( 10001 self, 10002 board_id: Annotated[ 10003 StrictStr, 10004 Field( 10005 description="Unique identifier (ID) of the board for which you want to update the role of the board member." 10006 ), 10007 ], 10008 board_member_id: Annotated[ 10009 StrictStr, Field(description="Unique identifier (ID) of the board member whose role you want to update.") 10010 ], 10011 board_member_changes: BoardMemberChanges, 10012 _request_timeout: Union[ 10013 None, 10014 Annotated[StrictFloat, Field(gt=0)], 10015 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10016 ] = None, 10017 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10018 _content_type: Optional[StrictStr] = None, 10019 _headers: Optional[Dict[StrictStr, Any]] = None, 10020 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10021 ) -> BoardMemberWithLinks: 10022 """Update board member 10023 10024 Updates the role of a board member.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10025 10026 :param board_id: Unique identifier (ID) of the board for which you want to update the role of the board member. (required) 10027 :type board_id: str 10028 :param board_member_id: Unique identifier (ID) of the board member whose role you want to update. (required) 10029 :type board_member_id: str 10030 :param board_member_changes: (required) 10031 :type board_member_changes: BoardMemberChanges 10032 :param _request_timeout: timeout setting for this request. If one 10033 number provided, it will be total request 10034 timeout. It can also be a pair (tuple) of 10035 (connection, read) timeouts. 10036 :type _request_timeout: int, tuple(int, int), optional 10037 :param _request_auth: set to override the auth_settings for an a single 10038 request; this effectively ignores the 10039 authentication in the spec for a single request. 10040 :type _request_auth: dict, optional 10041 :param _content_type: force content-type for the request. 10042 :type _content_type: str, Optional 10043 :param _headers: set to override the headers for a single 10044 request; this effectively ignores the headers 10045 in the spec for a single request. 10046 :type _headers: dict, optional 10047 :param _host_index: set to override the host_index for a single 10048 request; this effectively ignores the host_index 10049 in the spec for a single request. 10050 :type _host_index: int, optional 10051 :return: Returns the result object. 10052 """ # noqa: E501 10053 10054 _param = self._update_board_member_serialize( 10055 board_id=board_id, 10056 board_member_id=board_member_id, 10057 board_member_changes=board_member_changes, 10058 _request_auth=_request_auth, 10059 _content_type=_content_type, 10060 _headers=_headers, 10061 _host_index=_host_index, 10062 ) 10063 10064 _response_types_map: Dict[str, Optional[str]] = { 10065 "200": "BoardMemberWithLinks", 10066 "400": None, 10067 "404": None, 10068 "429": None, 10069 } 10070 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10071 response_data.read() 10072 return self.api_client.response_deserialize( 10073 response_data=response_data, 10074 response_types_map=_response_types_map, 10075 ).data
Update board member
Updates the role of a board member.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board for which you want to update the role of the board member. (required) :type board_id: str :param board_member_id: Unique identifier (ID) of the board member whose role you want to update. (required) :type board_member_id: str :param board_member_changes: (required) :type board_member_changes: BoardMemberChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10140 @validate_call 10141 def copy_board( 10142 self, 10143 copy_from: Annotated[ 10144 StrictStr, Field(description="Unique identifier (ID) of the board that you want to copy.") 10145 ], 10146 copy_board_changes: Optional[CopyBoardChanges] = None, 10147 _request_timeout: Union[ 10148 None, 10149 Annotated[StrictFloat, Field(gt=0)], 10150 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10151 ] = None, 10152 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10153 _content_type: Optional[StrictStr] = None, 10154 _headers: Optional[Dict[StrictStr, Any]] = None, 10155 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10156 ) -> BoardWithLinksAndWithoutProject: 10157 """Copy board 10158 10159 Creates a copy of an existing board. You can also update the name, description, sharing policy, and permissions policy for the new board in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 4</a><br/> 10160 10161 :param copy_from: Unique identifier (ID) of the board that you want to copy. (required) 10162 :type copy_from: str 10163 :param copy_board_changes: 10164 :type copy_board_changes: CopyBoardChanges 10165 :param _request_timeout: timeout setting for this request. If one 10166 number provided, it will be total request 10167 timeout. It can also be a pair (tuple) of 10168 (connection, read) timeouts. 10169 :type _request_timeout: int, tuple(int, int), optional 10170 :param _request_auth: set to override the auth_settings for an a single 10171 request; this effectively ignores the 10172 authentication in the spec for a single request. 10173 :type _request_auth: dict, optional 10174 :param _content_type: force content-type for the request. 10175 :type _content_type: str, Optional 10176 :param _headers: set to override the headers for a single 10177 request; this effectively ignores the headers 10178 in the spec for a single request. 10179 :type _headers: dict, optional 10180 :param _host_index: set to override the host_index for a single 10181 request; this effectively ignores the host_index 10182 in the spec for a single request. 10183 :type _host_index: int, optional 10184 :return: Returns the result object. 10185 """ # noqa: E501 10186 10187 _param = self._copy_board_serialize( 10188 copy_from=copy_from, 10189 copy_board_changes=copy_board_changes, 10190 _request_auth=_request_auth, 10191 _content_type=_content_type, 10192 _headers=_headers, 10193 _host_index=_host_index, 10194 ) 10195 10196 _response_types_map: Dict[str, Optional[str]] = { 10197 "201": "BoardWithLinksAndWithoutProject", 10198 "400": None, 10199 "404": None, 10200 "409": None, 10201 "429": None, 10202 } 10203 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10204 response_data.read() 10205 return self.api_client.response_deserialize( 10206 response_data=response_data, 10207 response_types_map=_response_types_map, 10208 ).data
Copy board
Creates a copy of an existing board. You can also update the name, description, sharing policy, and permissions policy for the new board in the request body.
Required scope
boards:writeRate limiting
Level 4:param copy_from: Unique identifier (ID) of the board that you want to copy. (required) :type copy_from: str :param copy_board_changes: :type copy_board_changes: CopyBoardChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10272 @validate_call 10273 def create_board( 10274 self, 10275 board_changes: Optional[BoardChanges] = None, 10276 _request_timeout: Union[ 10277 None, 10278 Annotated[StrictFloat, Field(gt=0)], 10279 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10280 ] = None, 10281 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10282 _content_type: Optional[StrictStr] = None, 10283 _headers: Optional[Dict[StrictStr, Any]] = None, 10284 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10285 ) -> BoardWithLinks: 10286 """Create board 10287 10288 Creates a board with the specified name and sharing policies.<br/><h4>Note</h4> You can only create up to 3 team boards with the free plan.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 10289 10290 :param board_changes: 10291 :type board_changes: BoardChanges 10292 :param _request_timeout: timeout setting for this request. If one 10293 number provided, it will be total request 10294 timeout. It can also be a pair (tuple) of 10295 (connection, read) timeouts. 10296 :type _request_timeout: int, tuple(int, int), optional 10297 :param _request_auth: set to override the auth_settings for an a single 10298 request; this effectively ignores the 10299 authentication in the spec for a single request. 10300 :type _request_auth: dict, optional 10301 :param _content_type: force content-type for the request. 10302 :type _content_type: str, Optional 10303 :param _headers: set to override the headers for a single 10304 request; this effectively ignores the headers 10305 in the spec for a single request. 10306 :type _headers: dict, optional 10307 :param _host_index: set to override the host_index for a single 10308 request; this effectively ignores the host_index 10309 in the spec for a single request. 10310 :type _host_index: int, optional 10311 :return: Returns the result object. 10312 """ # noqa: E501 10313 10314 _param = self._create_board_serialize( 10315 board_changes=board_changes, 10316 _request_auth=_request_auth, 10317 _content_type=_content_type, 10318 _headers=_headers, 10319 _host_index=_host_index, 10320 ) 10321 10322 _response_types_map: Dict[str, Optional[str]] = { 10323 "201": "BoardWithLinks", 10324 "400": None, 10325 "404": None, 10326 "409": None, 10327 "429": None, 10328 } 10329 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10330 response_data.read() 10331 return self.api_client.response_deserialize( 10332 response_data=response_data, 10333 response_types_map=_response_types_map, 10334 ).data
Create board
Creates a board with the specified name and sharing policies.
Note
You can only create up to 3 team boards with the free plan.Required scope
boards:writeRate limiting
Level 3:param board_changes: :type board_changes: BoardChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10393 @validate_call 10394 def delete_board( 10395 self, 10396 board_id: Annotated[ 10397 StrictStr, Field(description="Unique identifier (ID) of the board that you want to delete.") 10398 ], 10399 _request_timeout: Union[ 10400 None, 10401 Annotated[StrictFloat, Field(gt=0)], 10402 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10403 ] = None, 10404 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10405 _content_type: Optional[StrictStr] = None, 10406 _headers: Optional[Dict[StrictStr, Any]] = None, 10407 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10408 ) -> object: 10409 """Delete board 10410 10411 Deletes a board. Deleted boards go to Trash (on paid plans) and can be restored via UI within 90 days after deletion.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 10412 10413 :param board_id: Unique identifier (ID) of the board that you want to delete. (required) 10414 :type board_id: str 10415 :param _request_timeout: timeout setting for this request. If one 10416 number provided, it will be total request 10417 timeout. It can also be a pair (tuple) of 10418 (connection, read) timeouts. 10419 :type _request_timeout: int, tuple(int, int), optional 10420 :param _request_auth: set to override the auth_settings for an a single 10421 request; this effectively ignores the 10422 authentication in the spec for a single request. 10423 :type _request_auth: dict, optional 10424 :param _content_type: force content-type for the request. 10425 :type _content_type: str, Optional 10426 :param _headers: set to override the headers for a single 10427 request; this effectively ignores the headers 10428 in the spec for a single request. 10429 :type _headers: dict, optional 10430 :param _host_index: set to override the host_index for a single 10431 request; this effectively ignores the host_index 10432 in the spec for a single request. 10433 :type _host_index: int, optional 10434 :return: Returns the result object. 10435 """ # noqa: E501 10436 10437 _param = self._delete_board_serialize( 10438 board_id=board_id, 10439 _request_auth=_request_auth, 10440 _content_type=_content_type, 10441 _headers=_headers, 10442 _host_index=_host_index, 10443 ) 10444 10445 _response_types_map: Dict[str, Optional[str]] = { 10446 "204": "object", 10447 "400": None, 10448 "404": None, 10449 "409": None, 10450 "429": None, 10451 } 10452 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10453 response_data.read() 10454 return self.api_client.response_deserialize( 10455 response_data=response_data, 10456 response_types_map=_response_types_map, 10457 ).data
Delete board
Deletes a board. Deleted boards go to Trash (on paid plans) and can be restored via UI within 90 days after deletion.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board that you want to delete. (required) :type board_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10508 @validate_call 10509 def get_boards( 10510 self, 10511 team_id: Optional[StrictStr] = None, 10512 project_id: Optional[StrictStr] = None, 10513 query: Optional[Annotated[str, Field(strict=True, max_length=500)]] = None, 10514 owner: Optional[StrictStr] = None, 10515 limit: Optional[Annotated[str, Field(strict=True)]] = None, 10516 offset: Optional[StrictStr] = None, 10517 sort: Optional[StrictStr] = None, 10518 _request_timeout: Union[ 10519 None, 10520 Annotated[StrictFloat, Field(gt=0)], 10521 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10522 ] = None, 10523 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10524 _content_type: Optional[StrictStr] = None, 10525 _headers: Optional[Dict[StrictStr, Any]] = None, 10526 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10527 ) -> BoardsPagedResponse: 10528 """Get boards 10529 10530 Retrieves a list of boards accessible to the user associated with the provided access token. This endpoint supports filtering and sorting through URL query parameters. Customize the response by specifying `team_id`, `project_id`, or other query parameters. Filtering by `team_id` or `project_id` (or both) returns results instantly. For other filters, allow a few seconds for indexing of newly created boards. If you're an Enterprise customer with Company Admin permissions: - Enable **Content Admin** permissions to retrieve all boards, including private boards (those not explicitly shared with you). For details, see the [Content Admin Permissions for Company Admins](https://help.miro.com/hc/en-us/articles/360012777280-Content-Admin-permissions-for-Company-Admins). - Note that **Private board contents remain inaccessible**. The API allows you to verify their existence but prevents viewing their contents to uphold security best practices. Unauthorized access attempts will return an error. <h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 10531 10532 :param team_id: 10533 :type team_id: str 10534 :param project_id: 10535 :type project_id: str 10536 :param query: 10537 :type query: str 10538 :param owner: 10539 :type owner: str 10540 :param limit: 10541 :type limit: str 10542 :param offset: 10543 :type offset: str 10544 :param sort: 10545 :type sort: str 10546 :param _request_timeout: timeout setting for this request. If one 10547 number provided, it will be total request 10548 timeout. It can also be a pair (tuple) of 10549 (connection, read) timeouts. 10550 :type _request_timeout: int, tuple(int, int), optional 10551 :param _request_auth: set to override the auth_settings for an a single 10552 request; this effectively ignores the 10553 authentication in the spec for a single request. 10554 :type _request_auth: dict, optional 10555 :param _content_type: force content-type for the request. 10556 :type _content_type: str, Optional 10557 :param _headers: set to override the headers for a single 10558 request; this effectively ignores the headers 10559 in the spec for a single request. 10560 :type _headers: dict, optional 10561 :param _host_index: set to override the host_index for a single 10562 request; this effectively ignores the host_index 10563 in the spec for a single request. 10564 :type _host_index: int, optional 10565 :return: Returns the result object. 10566 """ # noqa: E501 10567 10568 _param = self._get_boards_serialize( 10569 team_id=team_id, 10570 project_id=project_id, 10571 query=query, 10572 owner=owner, 10573 limit=limit, 10574 offset=offset, 10575 sort=sort, 10576 _request_auth=_request_auth, 10577 _content_type=_content_type, 10578 _headers=_headers, 10579 _host_index=_host_index, 10580 ) 10581 10582 _response_types_map: Dict[str, Optional[str]] = { 10583 "200": "BoardsPagedResponse", 10584 "400": None, 10585 "404": None, 10586 "429": None, 10587 } 10588 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10589 response_data.read() 10590 return self.api_client.response_deserialize( 10591 response_data=response_data, 10592 response_types_map=_response_types_map, 10593 ).data
Get boards
Retrieves a list of boards accessible to the user associated with the provided access token. This endpoint supports filtering and sorting through URL query parameters. Customize the response by specifying team_id
, project_id
, or other query parameters. Filtering by team_id
or project_id
(or both) returns results instantly. For other filters, allow a few seconds for indexing of newly created boards. If you're an Enterprise customer with Company Admin permissions: - Enable Content Admin permissions to retrieve all boards, including private boards (those not explicitly shared with you). For details, see the Content Admin Permissions for Company Admins. - Note that Private board contents remain inaccessible. The API allows you to verify their existence but prevents viewing their contents to uphold security best practices. Unauthorized access attempts will return an error.
Required scope
boards:readRate limiting
Level 1:param team_id: :type team_id: str :param project_id: :type project_id: str :param query: :type query: str :param owner: :type owner: str :param limit: :type limit: str :param offset: :type offset: str :param sort: :type sort: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10676 @validate_call 10677 def get_specific_board( 10678 self, 10679 board_id: Annotated[ 10680 StrictStr, Field(description="Unique identifier (ID) of the board that you want to retrieve.") 10681 ], 10682 _request_timeout: Union[ 10683 None, 10684 Annotated[StrictFloat, Field(gt=0)], 10685 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10686 ] = None, 10687 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10688 _content_type: Optional[StrictStr] = None, 10689 _headers: Optional[Dict[StrictStr, Any]] = None, 10690 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10691 ) -> BoardWithLinksAndLastOpened: 10692 """Get specific board 10693 10694 Retrieves information about a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 10695 10696 :param board_id: Unique identifier (ID) of the board that you want to retrieve. (required) 10697 :type board_id: str 10698 :param _request_timeout: timeout setting for this request. If one 10699 number provided, it will be total request 10700 timeout. It can also be a pair (tuple) of 10701 (connection, read) timeouts. 10702 :type _request_timeout: int, tuple(int, int), optional 10703 :param _request_auth: set to override the auth_settings for an a single 10704 request; this effectively ignores the 10705 authentication in the spec for a single request. 10706 :type _request_auth: dict, optional 10707 :param _content_type: force content-type for the request. 10708 :type _content_type: str, Optional 10709 :param _headers: set to override the headers for a single 10710 request; this effectively ignores the headers 10711 in the spec for a single request. 10712 :type _headers: dict, optional 10713 :param _host_index: set to override the host_index for a single 10714 request; this effectively ignores the host_index 10715 in the spec for a single request. 10716 :type _host_index: int, optional 10717 :return: Returns the result object. 10718 """ # noqa: E501 10719 10720 _param = self._get_specific_board_serialize( 10721 board_id=board_id, 10722 _request_auth=_request_auth, 10723 _content_type=_content_type, 10724 _headers=_headers, 10725 _host_index=_host_index, 10726 ) 10727 10728 _response_types_map: Dict[str, Optional[str]] = { 10729 "200": "BoardWithLinksAndLastOpened", 10730 "400": None, 10731 "404": None, 10732 "429": None, 10733 } 10734 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10735 response_data.read() 10736 return self.api_client.response_deserialize( 10737 response_data=response_data, 10738 response_types_map=_response_types_map, 10739 ).data
Get specific board
Retrieves information about a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board that you want to retrieve. (required) :type board_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10790 @validate_call 10791 def update_board( 10792 self, 10793 board_id: Annotated[ 10794 StrictStr, Field(description="Unique identifier (ID) of the board that you want to update.") 10795 ], 10796 board_changes: BoardChanges, 10797 _request_timeout: Union[ 10798 None, 10799 Annotated[StrictFloat, Field(gt=0)], 10800 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10801 ] = None, 10802 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10803 _content_type: Optional[StrictStr] = None, 10804 _headers: Optional[Dict[StrictStr, Any]] = None, 10805 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10806 ) -> BoardWithLinks: 10807 """Update board 10808 10809 Updates a specific board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10810 10811 :param board_id: Unique identifier (ID) of the board that you want to update. (required) 10812 :type board_id: str 10813 :param board_changes: (required) 10814 :type board_changes: BoardChanges 10815 :param _request_timeout: timeout setting for this request. If one 10816 number provided, it will be total request 10817 timeout. It can also be a pair (tuple) of 10818 (connection, read) timeouts. 10819 :type _request_timeout: int, tuple(int, int), optional 10820 :param _request_auth: set to override the auth_settings for an a single 10821 request; this effectively ignores the 10822 authentication in the spec for a single request. 10823 :type _request_auth: dict, optional 10824 :param _content_type: force content-type for the request. 10825 :type _content_type: str, Optional 10826 :param _headers: set to override the headers for a single 10827 request; this effectively ignores the headers 10828 in the spec for a single request. 10829 :type _headers: dict, optional 10830 :param _host_index: set to override the host_index for a single 10831 request; this effectively ignores the host_index 10832 in the spec for a single request. 10833 :type _host_index: int, optional 10834 :return: Returns the result object. 10835 """ # noqa: E501 10836 10837 _param = self._update_board_serialize( 10838 board_id=board_id, 10839 board_changes=board_changes, 10840 _request_auth=_request_auth, 10841 _content_type=_content_type, 10842 _headers=_headers, 10843 _host_index=_host_index, 10844 ) 10845 10846 _response_types_map: Dict[str, Optional[str]] = { 10847 "200": "BoardWithLinks", 10848 "202": None, 10849 "400": None, 10850 "404": None, 10851 "409": None, 10852 "429": None, 10853 } 10854 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10855 response_data.read() 10856 return self.api_client.response_deserialize( 10857 response_data=response_data, 10858 response_types_map=_response_types_map, 10859 ).data
Update board
Updates a specific board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board that you want to update. (required) :type board_id: str :param board_changes: (required) :type board_changes: BoardChanges :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
10921 @validate_call 10922 def create_card_item( 10923 self, 10924 board_id: Annotated[ 10925 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 10926 ], 10927 card_create_request: CardCreateRequest, 10928 _request_timeout: Union[ 10929 None, 10930 Annotated[StrictFloat, Field(gt=0)], 10931 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 10932 ] = None, 10933 _request_auth: Optional[Dict[StrictStr, Any]] = None, 10934 _content_type: Optional[StrictStr] = None, 10935 _headers: Optional[Dict[StrictStr, Any]] = None, 10936 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 10937 ) -> CardItem: 10938 """Create card item 10939 10940 Adds a card item to a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 10941 10942 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 10943 :type board_id: str 10944 :param card_create_request: (required) 10945 :type card_create_request: CardCreateRequest 10946 :param _request_timeout: timeout setting for this request. If one 10947 number provided, it will be total request 10948 timeout. It can also be a pair (tuple) of 10949 (connection, read) timeouts. 10950 :type _request_timeout: int, tuple(int, int), optional 10951 :param _request_auth: set to override the auth_settings for an a single 10952 request; this effectively ignores the 10953 authentication in the spec for a single request. 10954 :type _request_auth: dict, optional 10955 :param _content_type: force content-type for the request. 10956 :type _content_type: str, Optional 10957 :param _headers: set to override the headers for a single 10958 request; this effectively ignores the headers 10959 in the spec for a single request. 10960 :type _headers: dict, optional 10961 :param _host_index: set to override the host_index for a single 10962 request; this effectively ignores the host_index 10963 in the spec for a single request. 10964 :type _host_index: int, optional 10965 :return: Returns the result object. 10966 """ # noqa: E501 10967 10968 _param = self._create_card_item_serialize( 10969 board_id=board_id, 10970 card_create_request=card_create_request, 10971 _request_auth=_request_auth, 10972 _content_type=_content_type, 10973 _headers=_headers, 10974 _host_index=_host_index, 10975 ) 10976 10977 _response_types_map: Dict[str, Optional[str]] = { 10978 "201": "CardItem", 10979 "400": None, 10980 "404": None, 10981 "429": None, 10982 } 10983 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 10984 response_data.read() 10985 return self.api_client.response_deserialize( 10986 response_data=response_data, 10987 response_types_map=_response_types_map, 10988 ).data
Create card item
Adds a card item to a board
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param card_create_request: (required) :type card_create_request: CardCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11050 @validate_call 11051 def delete_card_item( 11052 self, 11053 board_id: Annotated[ 11054 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 11055 ], 11056 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 11057 _request_timeout: Union[ 11058 None, 11059 Annotated[StrictFloat, Field(gt=0)], 11060 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11061 ] = None, 11062 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11063 _content_type: Optional[StrictStr] = None, 11064 _headers: Optional[Dict[StrictStr, Any]] = None, 11065 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11066 ) -> object: 11067 """Delete card item 11068 11069 Deletes a card item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 11070 11071 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 11072 :type board_id: str 11073 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 11074 :type item_id: str 11075 :param _request_timeout: timeout setting for this request. If one 11076 number provided, it will be total request 11077 timeout. It can also be a pair (tuple) of 11078 (connection, read) timeouts. 11079 :type _request_timeout: int, tuple(int, int), optional 11080 :param _request_auth: set to override the auth_settings for an a single 11081 request; this effectively ignores the 11082 authentication in the spec for a single request. 11083 :type _request_auth: dict, optional 11084 :param _content_type: force content-type for the request. 11085 :type _content_type: str, Optional 11086 :param _headers: set to override the headers for a single 11087 request; this effectively ignores the headers 11088 in the spec for a single request. 11089 :type _headers: dict, optional 11090 :param _host_index: set to override the host_index for a single 11091 request; this effectively ignores the host_index 11092 in the spec for a single request. 11093 :type _host_index: int, optional 11094 :return: Returns the result object. 11095 """ # noqa: E501 11096 11097 _param = self._delete_card_item_serialize( 11098 board_id=board_id, 11099 item_id=item_id, 11100 _request_auth=_request_auth, 11101 _content_type=_content_type, 11102 _headers=_headers, 11103 _host_index=_host_index, 11104 ) 11105 11106 _response_types_map: Dict[str, Optional[str]] = { 11107 "204": "object", 11108 "400": None, 11109 "404": None, 11110 "429": None, 11111 } 11112 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11113 response_data.read() 11114 return self.api_client.response_deserialize( 11115 response_data=response_data, 11116 response_types_map=_response_types_map, 11117 ).data
Delete card item
Deletes a card item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11171 @validate_call 11172 def get_card_item( 11173 self, 11174 board_id: Annotated[ 11175 StrictStr, 11176 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 11177 ], 11178 item_id: Annotated[ 11179 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 11180 ], 11181 _request_timeout: Union[ 11182 None, 11183 Annotated[StrictFloat, Field(gt=0)], 11184 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11185 ] = None, 11186 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11187 _content_type: Optional[StrictStr] = None, 11188 _headers: Optional[Dict[StrictStr, Any]] = None, 11189 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11190 ) -> CardItem: 11191 """Get card item 11192 11193 Retrieves information for a specific card item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 11194 11195 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 11196 :type board_id: str 11197 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 11198 :type item_id: str 11199 :param _request_timeout: timeout setting for this request. If one 11200 number provided, it will be total request 11201 timeout. It can also be a pair (tuple) of 11202 (connection, read) timeouts. 11203 :type _request_timeout: int, tuple(int, int), optional 11204 :param _request_auth: set to override the auth_settings for an a single 11205 request; this effectively ignores the 11206 authentication in the spec for a single request. 11207 :type _request_auth: dict, optional 11208 :param _content_type: force content-type for the request. 11209 :type _content_type: str, Optional 11210 :param _headers: set to override the headers for a single 11211 request; this effectively ignores the headers 11212 in the spec for a single request. 11213 :type _headers: dict, optional 11214 :param _host_index: set to override the host_index for a single 11215 request; this effectively ignores the host_index 11216 in the spec for a single request. 11217 :type _host_index: int, optional 11218 :return: Returns the result object. 11219 """ # noqa: E501 11220 11221 _param = self._get_card_item_serialize( 11222 board_id=board_id, 11223 item_id=item_id, 11224 _request_auth=_request_auth, 11225 _content_type=_content_type, 11226 _headers=_headers, 11227 _host_index=_host_index, 11228 ) 11229 11230 _response_types_map: Dict[str, Optional[str]] = { 11231 "200": "CardItem", 11232 "400": None, 11233 "404": None, 11234 "429": None, 11235 } 11236 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11237 response_data.read() 11238 return self.api_client.response_deserialize( 11239 response_data=response_data, 11240 response_types_map=_response_types_map, 11241 ).data
Get card item
Retrieves information for a specific card item on a board
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11295 @validate_call 11296 def update_card_item( 11297 self, 11298 board_id: Annotated[ 11299 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 11300 ], 11301 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 11302 card_update_request: CardUpdateRequest, 11303 _request_timeout: Union[ 11304 None, 11305 Annotated[StrictFloat, Field(gt=0)], 11306 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11307 ] = None, 11308 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11309 _content_type: Optional[StrictStr] = None, 11310 _headers: Optional[Dict[StrictStr, Any]] = None, 11311 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11312 ) -> CardItem: 11313 """Update card item 11314 11315 Updates a card item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11316 11317 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 11318 :type board_id: str 11319 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 11320 :type item_id: str 11321 :param card_update_request: (required) 11322 :type card_update_request: CardUpdateRequest 11323 :param _request_timeout: timeout setting for this request. If one 11324 number provided, it will be total request 11325 timeout. It can also be a pair (tuple) of 11326 (connection, read) timeouts. 11327 :type _request_timeout: int, tuple(int, int), optional 11328 :param _request_auth: set to override the auth_settings for an a single 11329 request; this effectively ignores the 11330 authentication in the spec for a single request. 11331 :type _request_auth: dict, optional 11332 :param _content_type: force content-type for the request. 11333 :type _content_type: str, Optional 11334 :param _headers: set to override the headers for a single 11335 request; this effectively ignores the headers 11336 in the spec for a single request. 11337 :type _headers: dict, optional 11338 :param _host_index: set to override the host_index for a single 11339 request; this effectively ignores the host_index 11340 in the spec for a single request. 11341 :type _host_index: int, optional 11342 :return: Returns the result object. 11343 """ # noqa: E501 11344 11345 _param = self._update_card_item_serialize( 11346 board_id=board_id, 11347 item_id=item_id, 11348 card_update_request=card_update_request, 11349 _request_auth=_request_auth, 11350 _content_type=_content_type, 11351 _headers=_headers, 11352 _host_index=_host_index, 11353 ) 11354 11355 _response_types_map: Dict[str, Optional[str]] = { 11356 "200": "CardItem", 11357 "400": None, 11358 "404": None, 11359 "409": None, 11360 "429": None, 11361 } 11362 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11363 response_data.read() 11364 return self.api_client.response_deserialize( 11365 response_data=response_data, 11366 response_types_map=_response_types_map, 11367 ).data
Update card item
Updates a card item on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param card_update_request: (required) :type card_update_request: CardUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11432 @validate_call 11433 def create_connector( 11434 self, 11435 board_id: Annotated[ 11436 StrictStr, 11437 Field(description="Unique identifier (ID) of the board for which you want to create the connector."), 11438 ], 11439 connector_creation_data: ConnectorCreationData, 11440 _request_timeout: Union[ 11441 None, 11442 Annotated[StrictFloat, Field(gt=0)], 11443 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11444 ] = None, 11445 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11446 _content_type: Optional[StrictStr] = None, 11447 _headers: Optional[Dict[StrictStr, Any]] = None, 11448 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11449 ) -> ConnectorWithLinks: 11450 """Create connector 11451 11452 Adds a connector to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11453 11454 :param board_id: Unique identifier (ID) of the board for which you want to create the connector. (required) 11455 :type board_id: str 11456 :param connector_creation_data: (required) 11457 :type connector_creation_data: ConnectorCreationData 11458 :param _request_timeout: timeout setting for this request. If one 11459 number provided, it will be total request 11460 timeout. It can also be a pair (tuple) of 11461 (connection, read) timeouts. 11462 :type _request_timeout: int, tuple(int, int), optional 11463 :param _request_auth: set to override the auth_settings for an a single 11464 request; this effectively ignores the 11465 authentication in the spec for a single request. 11466 :type _request_auth: dict, optional 11467 :param _content_type: force content-type for the request. 11468 :type _content_type: str, Optional 11469 :param _headers: set to override the headers for a single 11470 request; this effectively ignores the headers 11471 in the spec for a single request. 11472 :type _headers: dict, optional 11473 :param _host_index: set to override the host_index for a single 11474 request; this effectively ignores the host_index 11475 in the spec for a single request. 11476 :type _host_index: int, optional 11477 :return: Returns the result object. 11478 """ # noqa: E501 11479 11480 _param = self._create_connector_serialize( 11481 board_id=board_id, 11482 connector_creation_data=connector_creation_data, 11483 _request_auth=_request_auth, 11484 _content_type=_content_type, 11485 _headers=_headers, 11486 _host_index=_host_index, 11487 ) 11488 11489 _response_types_map: Dict[str, Optional[str]] = { 11490 "200": "ConnectorWithLinks", 11491 "400": None, 11492 "404": None, 11493 "429": None, 11494 } 11495 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11496 response_data.read() 11497 return self.api_client.response_deserialize( 11498 response_data=response_data, 11499 response_types_map=_response_types_map, 11500 ).data
Create connector
Adds a connector to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board for which you want to create the connector. (required) :type board_id: str :param connector_creation_data: (required) :type connector_creation_data: ConnectorCreationData :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11562 @validate_call 11563 def delete_connector( 11564 self, 11565 board_id: Annotated[ 11566 StrictStr, 11567 Field(description="Unique identifier (ID) of the board from which you want to delete the connector."), 11568 ], 11569 connector_id: Annotated[ 11570 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to delete.") 11571 ], 11572 _request_timeout: Union[ 11573 None, 11574 Annotated[StrictFloat, Field(gt=0)], 11575 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11576 ] = None, 11577 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11578 _content_type: Optional[StrictStr] = None, 11579 _headers: Optional[Dict[StrictStr, Any]] = None, 11580 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11581 ) -> object: 11582 """Delete connector 11583 11584 Deletes the specified connector from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 11585 11586 :param board_id: Unique identifier (ID) of the board from which you want to delete the connector. (required) 11587 :type board_id: str 11588 :param connector_id: Unique identifier (ID) of the connector that you want to delete. (required) 11589 :type connector_id: str 11590 :param _request_timeout: timeout setting for this request. If one 11591 number provided, it will be total request 11592 timeout. It can also be a pair (tuple) of 11593 (connection, read) timeouts. 11594 :type _request_timeout: int, tuple(int, int), optional 11595 :param _request_auth: set to override the auth_settings for an a single 11596 request; this effectively ignores the 11597 authentication in the spec for a single request. 11598 :type _request_auth: dict, optional 11599 :param _content_type: force content-type for the request. 11600 :type _content_type: str, Optional 11601 :param _headers: set to override the headers for a single 11602 request; this effectively ignores the headers 11603 in the spec for a single request. 11604 :type _headers: dict, optional 11605 :param _host_index: set to override the host_index for a single 11606 request; this effectively ignores the host_index 11607 in the spec for a single request. 11608 :type _host_index: int, optional 11609 :return: Returns the result object. 11610 """ # noqa: E501 11611 11612 _param = self._delete_connector_serialize( 11613 board_id=board_id, 11614 connector_id=connector_id, 11615 _request_auth=_request_auth, 11616 _content_type=_content_type, 11617 _headers=_headers, 11618 _host_index=_host_index, 11619 ) 11620 11621 _response_types_map: Dict[str, Optional[str]] = { 11622 "204": "object", 11623 "400": None, 11624 "404": None, 11625 "429": None, 11626 } 11627 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11628 response_data.read() 11629 return self.api_client.response_deserialize( 11630 response_data=response_data, 11631 response_types_map=_response_types_map, 11632 ).data
Delete connector
Deletes the specified connector from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the connector. (required) :type board_id: str :param connector_id: Unique identifier (ID) of the connector that you want to delete. (required) :type connector_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11686 @validate_call 11687 def get_connector( 11688 self, 11689 board_id: Annotated[ 11690 StrictStr, 11691 Field( 11692 description="Unique identifier (ID) of the board from which you want to retrieve a specific connector." 11693 ), 11694 ], 11695 connector_id: Annotated[ 11696 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to retrieve.") 11697 ], 11698 _request_timeout: Union[ 11699 None, 11700 Annotated[StrictFloat, Field(gt=0)], 11701 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11702 ] = None, 11703 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11704 _content_type: Optional[StrictStr] = None, 11705 _headers: Optional[Dict[StrictStr, Any]] = None, 11706 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11707 ) -> ConnectorWithLinks: 11708 """Get specific connector 11709 11710 Retrieves information for a specific connector on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 11711 11712 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific connector. (required) 11713 :type board_id: str 11714 :param connector_id: Unique identifier (ID) of the connector that you want to retrieve. (required) 11715 :type connector_id: str 11716 :param _request_timeout: timeout setting for this request. If one 11717 number provided, it will be total request 11718 timeout. It can also be a pair (tuple) of 11719 (connection, read) timeouts. 11720 :type _request_timeout: int, tuple(int, int), optional 11721 :param _request_auth: set to override the auth_settings for an a single 11722 request; this effectively ignores the 11723 authentication in the spec for a single request. 11724 :type _request_auth: dict, optional 11725 :param _content_type: force content-type for the request. 11726 :type _content_type: str, Optional 11727 :param _headers: set to override the headers for a single 11728 request; this effectively ignores the headers 11729 in the spec for a single request. 11730 :type _headers: dict, optional 11731 :param _host_index: set to override the host_index for a single 11732 request; this effectively ignores the host_index 11733 in the spec for a single request. 11734 :type _host_index: int, optional 11735 :return: Returns the result object. 11736 """ # noqa: E501 11737 11738 _param = self._get_connector_serialize( 11739 board_id=board_id, 11740 connector_id=connector_id, 11741 _request_auth=_request_auth, 11742 _content_type=_content_type, 11743 _headers=_headers, 11744 _host_index=_host_index, 11745 ) 11746 11747 _response_types_map: Dict[str, Optional[str]] = { 11748 "200": "ConnectorWithLinks", 11749 "400": None, 11750 "404": None, 11751 "429": None, 11752 } 11753 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11754 response_data.read() 11755 return self.api_client.response_deserialize( 11756 response_data=response_data, 11757 response_types_map=_response_types_map, 11758 ).data
Get specific connector
Retrieves information for a specific connector on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific connector. (required) :type board_id: str :param connector_id: Unique identifier (ID) of the connector that you want to retrieve. (required) :type connector_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11812 @validate_call 11813 def get_connectors( 11814 self, 11815 board_id: Annotated[ 11816 StrictStr, 11817 Field( 11818 description="Unique identifier (ID) of the board from which you want to retrieve a list of connectors." 11819 ), 11820 ], 11821 limit: Optional[Annotated[str, Field(strict=True)]] = None, 11822 cursor: Optional[StrictStr] = None, 11823 _request_timeout: Union[ 11824 None, 11825 Annotated[StrictFloat, Field(gt=0)], 11826 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11827 ] = None, 11828 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11829 _content_type: Optional[StrictStr] = None, 11830 _headers: Optional[Dict[StrictStr, Any]] = None, 11831 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11832 ) -> ConnectorsCursorPaged: 11833 """Get connectors 11834 11835 Retrieves a list of connectors for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11836 11837 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a list of connectors. (required) 11838 :type board_id: str 11839 :param limit: 11840 :type limit: str 11841 :param cursor: 11842 :type cursor: str 11843 :param _request_timeout: timeout setting for this request. If one 11844 number provided, it will be total request 11845 timeout. It can also be a pair (tuple) of 11846 (connection, read) timeouts. 11847 :type _request_timeout: int, tuple(int, int), optional 11848 :param _request_auth: set to override the auth_settings for an a single 11849 request; this effectively ignores the 11850 authentication in the spec for a single request. 11851 :type _request_auth: dict, optional 11852 :param _content_type: force content-type for the request. 11853 :type _content_type: str, Optional 11854 :param _headers: set to override the headers for a single 11855 request; this effectively ignores the headers 11856 in the spec for a single request. 11857 :type _headers: dict, optional 11858 :param _host_index: set to override the host_index for a single 11859 request; this effectively ignores the host_index 11860 in the spec for a single request. 11861 :type _host_index: int, optional 11862 :return: Returns the result object. 11863 """ # noqa: E501 11864 11865 _param = self._get_connectors_serialize( 11866 board_id=board_id, 11867 limit=limit, 11868 cursor=cursor, 11869 _request_auth=_request_auth, 11870 _content_type=_content_type, 11871 _headers=_headers, 11872 _host_index=_host_index, 11873 ) 11874 11875 _response_types_map: Dict[str, Optional[str]] = { 11876 "200": "ConnectorsCursorPaged", 11877 "400": None, 11878 "404": None, 11879 "429": None, 11880 } 11881 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 11882 response_data.read() 11883 return self.api_client.response_deserialize( 11884 response_data=response_data, 11885 response_types_map=_response_types_map, 11886 ).data
Get connectors
Retrieves a list of connectors for a specific board. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request. For example, if you set the limit
query parameter to 10
and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id: Unique identifier (ID) of the board from which you want to retrieve a list of connectors. (required) :type board_id: str :param limit: :type limit: str :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
11947 @validate_call 11948 def update_connector( 11949 self, 11950 board_id: Annotated[ 11951 StrictStr, 11952 Field(description="Unique identifier (ID) of the board for which you want to update the connector."), 11953 ], 11954 connector_id: Annotated[ 11955 StrictStr, Field(description="Unique identifier (ID) of the connector that you want to update.") 11956 ], 11957 connector_changes_data: ConnectorChangesData, 11958 _request_timeout: Union[ 11959 None, 11960 Annotated[StrictFloat, Field(gt=0)], 11961 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 11962 ] = None, 11963 _request_auth: Optional[Dict[StrictStr, Any]] = None, 11964 _content_type: Optional[StrictStr] = None, 11965 _headers: Optional[Dict[StrictStr, Any]] = None, 11966 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 11967 ) -> ConnectorWithLinks: 11968 """Update connector 11969 11970 Updates a connector on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 11971 11972 :param board_id: Unique identifier (ID) of the board for which you want to update the connector. (required) 11973 :type board_id: str 11974 :param connector_id: Unique identifier (ID) of the connector that you want to update. (required) 11975 :type connector_id: str 11976 :param connector_changes_data: (required) 11977 :type connector_changes_data: ConnectorChangesData 11978 :param _request_timeout: timeout setting for this request. If one 11979 number provided, it will be total request 11980 timeout. It can also be a pair (tuple) of 11981 (connection, read) timeouts. 11982 :type _request_timeout: int, tuple(int, int), optional 11983 :param _request_auth: set to override the auth_settings for an a single 11984 request; this effectively ignores the 11985 authentication in the spec for a single request. 11986 :type _request_auth: dict, optional 11987 :param _content_type: force content-type for the request. 11988 :type _content_type: str, Optional 11989 :param _headers: set to override the headers for a single 11990 request; this effectively ignores the headers 11991 in the spec for a single request. 11992 :type _headers: dict, optional 11993 :param _host_index: set to override the host_index for a single 11994 request; this effectively ignores the host_index 11995 in the spec for a single request. 11996 :type _host_index: int, optional 11997 :return: Returns the result object. 11998 """ # noqa: E501 11999 12000 _param = self._update_connector_serialize( 12001 board_id=board_id, 12002 connector_id=connector_id, 12003 connector_changes_data=connector_changes_data, 12004 _request_auth=_request_auth, 12005 _content_type=_content_type, 12006 _headers=_headers, 12007 _host_index=_host_index, 12008 ) 12009 12010 _response_types_map: Dict[str, Optional[str]] = { 12011 "200": "ConnectorWithLinks", 12012 "400": None, 12013 "404": None, 12014 "409": None, 12015 "429": None, 12016 } 12017 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12018 response_data.read() 12019 return self.api_client.response_deserialize( 12020 response_data=response_data, 12021 response_types_map=_response_types_map, 12022 ).data
Update connector
Updates a connector on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board for which you want to update the connector. (required) :type board_id: str :param connector_id: Unique identifier (ID) of the connector that you want to update. (required) :type connector_id: str :param connector_changes_data: (required) :type connector_changes_data: ConnectorChangesData :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12087 @validate_call 12088 def create_document_item_using_file_from_device( 12089 self, 12090 board_id_platform_file_upload: Annotated[ 12091 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12092 ], 12093 resource: Annotated[ 12094 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 12095 ], 12096 data: Optional[CreateDocumentItemUsingFileFromDeviceRequestData] = None, 12097 _request_timeout: Union[ 12098 None, 12099 Annotated[StrictFloat, Field(gt=0)], 12100 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12101 ] = None, 12102 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12103 _content_type: Optional[StrictStr] = None, 12104 _headers: Optional[Dict[StrictStr, Any]] = None, 12105 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12106 ) -> DocumentItem: 12107 """Create document item using file from device 12108 12109 Adds a document item to a board by selecting file from device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12110 12111 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) 12112 :type board_id_platform_file_upload: str 12113 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 12114 :type resource: bytearray 12115 :param data: 12116 :type data: CreateDocumentItemUsingFileFromDeviceRequestData 12117 :param _request_timeout: timeout setting for this request. If one 12118 number provided, it will be total request 12119 timeout. It can also be a pair (tuple) of 12120 (connection, read) timeouts. 12121 :type _request_timeout: int, tuple(int, int), optional 12122 :param _request_auth: set to override the auth_settings for an a single 12123 request; this effectively ignores the 12124 authentication in the spec for a single request. 12125 :type _request_auth: dict, optional 12126 :param _content_type: force content-type for the request. 12127 :type _content_type: str, Optional 12128 :param _headers: set to override the headers for a single 12129 request; this effectively ignores the headers 12130 in the spec for a single request. 12131 :type _headers: dict, optional 12132 :param _host_index: set to override the host_index for a single 12133 request; this effectively ignores the host_index 12134 in the spec for a single request. 12135 :type _host_index: int, optional 12136 :return: Returns the result object. 12137 """ # noqa: E501 12138 12139 _param = self._create_document_item_using_file_from_device_serialize( 12140 board_id_platform_file_upload=board_id_platform_file_upload, 12141 resource=resource, 12142 data=data, 12143 _request_auth=_request_auth, 12144 _content_type=_content_type, 12145 _headers=_headers, 12146 _host_index=_host_index, 12147 ) 12148 12149 _response_types_map: Dict[str, Optional[str]] = { 12150 "201": "DocumentItem", 12151 } 12152 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12153 response_data.read() 12154 return self.api_client.response_deserialize( 12155 response_data=response_data, 12156 response_types_map=_response_types_map, 12157 ).data
Create document item using file from device
Adds a document item to a board by selecting file from device.
Required scope
boards:writeRate limiting
Level 2:param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id_platform_file_upload: str :param resource: Select a file to upload. Maximum file size is 6 MB. (required) :type resource: bytearray :param data: :type data: CreateDocumentItemUsingFileFromDeviceRequestData :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12222 @validate_call 12223 def create_document_item_using_url( 12224 self, 12225 board_id: Annotated[ 12226 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12227 ], 12228 document_create_request: DocumentCreateRequest, 12229 _request_timeout: Union[ 12230 None, 12231 Annotated[StrictFloat, Field(gt=0)], 12232 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12233 ] = None, 12234 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12235 _content_type: Optional[StrictStr] = None, 12236 _headers: Optional[Dict[StrictStr, Any]] = None, 12237 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12238 ) -> DocumentItem: 12239 """Create document item using URL 12240 12241 Adds a document item to a board by specifying the URL where the document is hosted.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12242 12243 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 12244 :type board_id: str 12245 :param document_create_request: (required) 12246 :type document_create_request: DocumentCreateRequest 12247 :param _request_timeout: timeout setting for this request. If one 12248 number provided, it will be total request 12249 timeout. It can also be a pair (tuple) of 12250 (connection, read) timeouts. 12251 :type _request_timeout: int, tuple(int, int), optional 12252 :param _request_auth: set to override the auth_settings for an a single 12253 request; this effectively ignores the 12254 authentication in the spec for a single request. 12255 :type _request_auth: dict, optional 12256 :param _content_type: force content-type for the request. 12257 :type _content_type: str, Optional 12258 :param _headers: set to override the headers for a single 12259 request; this effectively ignores the headers 12260 in the spec for a single request. 12261 :type _headers: dict, optional 12262 :param _host_index: set to override the host_index for a single 12263 request; this effectively ignores the host_index 12264 in the spec for a single request. 12265 :type _host_index: int, optional 12266 :return: Returns the result object. 12267 """ # noqa: E501 12268 12269 _param = self._create_document_item_using_url_serialize( 12270 board_id=board_id, 12271 document_create_request=document_create_request, 12272 _request_auth=_request_auth, 12273 _content_type=_content_type, 12274 _headers=_headers, 12275 _host_index=_host_index, 12276 ) 12277 12278 _response_types_map: Dict[str, Optional[str]] = { 12279 "201": "DocumentItem", 12280 "400": None, 12281 "404": None, 12282 "429": None, 12283 } 12284 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12285 response_data.read() 12286 return self.api_client.response_deserialize( 12287 response_data=response_data, 12288 response_types_map=_response_types_map, 12289 ).data
Create document item using URL
Adds a document item to a board by specifying the URL where the document is hosted.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param document_create_request: (required) :type document_create_request: DocumentCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12351 @validate_call 12352 def delete_document_item( 12353 self, 12354 board_id: Annotated[ 12355 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 12356 ], 12357 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 12358 _request_timeout: Union[ 12359 None, 12360 Annotated[StrictFloat, Field(gt=0)], 12361 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12362 ] = None, 12363 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12364 _content_type: Optional[StrictStr] = None, 12365 _headers: Optional[Dict[StrictStr, Any]] = None, 12366 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12367 ) -> object: 12368 """Delete document item 12369 12370 Deletes a document item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 12371 12372 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 12373 :type board_id: str 12374 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 12375 :type item_id: str 12376 :param _request_timeout: timeout setting for this request. If one 12377 number provided, it will be total request 12378 timeout. It can also be a pair (tuple) of 12379 (connection, read) timeouts. 12380 :type _request_timeout: int, tuple(int, int), optional 12381 :param _request_auth: set to override the auth_settings for an a single 12382 request; this effectively ignores the 12383 authentication in the spec for a single request. 12384 :type _request_auth: dict, optional 12385 :param _content_type: force content-type for the request. 12386 :type _content_type: str, Optional 12387 :param _headers: set to override the headers for a single 12388 request; this effectively ignores the headers 12389 in the spec for a single request. 12390 :type _headers: dict, optional 12391 :param _host_index: set to override the host_index for a single 12392 request; this effectively ignores the host_index 12393 in the spec for a single request. 12394 :type _host_index: int, optional 12395 :return: Returns the result object. 12396 """ # noqa: E501 12397 12398 _param = self._delete_document_item_serialize( 12399 board_id=board_id, 12400 item_id=item_id, 12401 _request_auth=_request_auth, 12402 _content_type=_content_type, 12403 _headers=_headers, 12404 _host_index=_host_index, 12405 ) 12406 12407 _response_types_map: Dict[str, Optional[str]] = { 12408 "204": "object", 12409 "400": None, 12410 "404": None, 12411 "429": None, 12412 } 12413 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12414 response_data.read() 12415 return self.api_client.response_deserialize( 12416 response_data=response_data, 12417 response_types_map=_response_types_map, 12418 ).data
Delete document item
Deletes a document item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12472 @validate_call 12473 def get_document_item( 12474 self, 12475 board_id: Annotated[ 12476 StrictStr, 12477 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 12478 ], 12479 item_id: Annotated[ 12480 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 12481 ], 12482 _request_timeout: Union[ 12483 None, 12484 Annotated[StrictFloat, Field(gt=0)], 12485 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12486 ] = None, 12487 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12488 _content_type: Optional[StrictStr] = None, 12489 _headers: Optional[Dict[StrictStr, Any]] = None, 12490 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12491 ) -> DocumentItem: 12492 """Get document item 12493 12494 Retrieves information for a specific document item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 12495 12496 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 12497 :type board_id: str 12498 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 12499 :type item_id: str 12500 :param _request_timeout: timeout setting for this request. If one 12501 number provided, it will be total request 12502 timeout. It can also be a pair (tuple) of 12503 (connection, read) timeouts. 12504 :type _request_timeout: int, tuple(int, int), optional 12505 :param _request_auth: set to override the auth_settings for an a single 12506 request; this effectively ignores the 12507 authentication in the spec for a single request. 12508 :type _request_auth: dict, optional 12509 :param _content_type: force content-type for the request. 12510 :type _content_type: str, Optional 12511 :param _headers: set to override the headers for a single 12512 request; this effectively ignores the headers 12513 in the spec for a single request. 12514 :type _headers: dict, optional 12515 :param _host_index: set to override the host_index for a single 12516 request; this effectively ignores the host_index 12517 in the spec for a single request. 12518 :type _host_index: int, optional 12519 :return: Returns the result object. 12520 """ # noqa: E501 12521 12522 _param = self._get_document_item_serialize( 12523 board_id=board_id, 12524 item_id=item_id, 12525 _request_auth=_request_auth, 12526 _content_type=_content_type, 12527 _headers=_headers, 12528 _host_index=_host_index, 12529 ) 12530 12531 _response_types_map: Dict[str, Optional[str]] = { 12532 "200": "DocumentItem", 12533 "400": None, 12534 "404": None, 12535 "429": None, 12536 } 12537 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12538 response_data.read() 12539 return self.api_client.response_deserialize( 12540 response_data=response_data, 12541 response_types_map=_response_types_map, 12542 ).data
Get document item
Retrieves information for a specific document item on a board
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12596 @validate_call 12597 def update_document_item_using_file_from_device( 12598 self, 12599 board_id_platform_file_upload: Annotated[ 12600 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 12601 ], 12602 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 12603 resource: Annotated[ 12604 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 12605 ], 12606 data: Optional[UploadFileFromDeviceData] = None, 12607 _request_timeout: Union[ 12608 None, 12609 Annotated[StrictFloat, Field(gt=0)], 12610 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12611 ] = None, 12612 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12613 _content_type: Optional[StrictStr] = None, 12614 _headers: Optional[Dict[StrictStr, Any]] = None, 12615 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12616 ) -> DocumentItem: 12617 """Update document item using file from device 12618 12619 Updates a document item on a board by using file from a device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12620 12621 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) 12622 :type board_id_platform_file_upload: str 12623 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 12624 :type item_id: str 12625 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 12626 :type resource: bytearray 12627 :param data: 12628 :type data: UploadFileFromDeviceData 12629 :param _request_timeout: timeout setting for this request. If one 12630 number provided, it will be total request 12631 timeout. It can also be a pair (tuple) of 12632 (connection, read) timeouts. 12633 :type _request_timeout: int, tuple(int, int), optional 12634 :param _request_auth: set to override the auth_settings for an a single 12635 request; this effectively ignores the 12636 authentication in the spec for a single request. 12637 :type _request_auth: dict, optional 12638 :param _content_type: force content-type for the request. 12639 :type _content_type: str, Optional 12640 :param _headers: set to override the headers for a single 12641 request; this effectively ignores the headers 12642 in the spec for a single request. 12643 :type _headers: dict, optional 12644 :param _host_index: set to override the host_index for a single 12645 request; this effectively ignores the host_index 12646 in the spec for a single request. 12647 :type _host_index: int, optional 12648 :return: Returns the result object. 12649 """ # noqa: E501 12650 12651 _param = self._update_document_item_using_file_from_device_serialize( 12652 board_id_platform_file_upload=board_id_platform_file_upload, 12653 item_id=item_id, 12654 resource=resource, 12655 data=data, 12656 _request_auth=_request_auth, 12657 _content_type=_content_type, 12658 _headers=_headers, 12659 _host_index=_host_index, 12660 ) 12661 12662 _response_types_map: Dict[str, Optional[str]] = { 12663 "200": "DocumentItem", 12664 } 12665 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12666 response_data.read() 12667 return self.api_client.response_deserialize( 12668 response_data=response_data, 12669 response_types_map=_response_types_map, 12670 ).data
Update document item using file from device
Updates a document item on a board by using file from a device.
Required scope
boards:writeRate limiting
Level 2:param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id_platform_file_upload: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param resource: Select a file to upload. Maximum file size is 6 MB. (required) :type resource: bytearray :param data: :type data: UploadFileFromDeviceData :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12738 @validate_call 12739 def update_document_item_using_url( 12740 self, 12741 board_id: Annotated[ 12742 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 12743 ], 12744 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 12745 document_update_request: DocumentUpdateRequest, 12746 _request_timeout: Union[ 12747 None, 12748 Annotated[StrictFloat, Field(gt=0)], 12749 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12750 ] = None, 12751 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12752 _content_type: Optional[StrictStr] = None, 12753 _headers: Optional[Dict[StrictStr, Any]] = None, 12754 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12755 ) -> DocumentItem: 12756 """Update document item using URL 12757 12758 Updates a document item on a board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12759 12760 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 12761 :type board_id: str 12762 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 12763 :type item_id: str 12764 :param document_update_request: (required) 12765 :type document_update_request: DocumentUpdateRequest 12766 :param _request_timeout: timeout setting for this request. If one 12767 number provided, it will be total request 12768 timeout. It can also be a pair (tuple) of 12769 (connection, read) timeouts. 12770 :type _request_timeout: int, tuple(int, int), optional 12771 :param _request_auth: set to override the auth_settings for an a single 12772 request; this effectively ignores the 12773 authentication in the spec for a single request. 12774 :type _request_auth: dict, optional 12775 :param _content_type: force content-type for the request. 12776 :type _content_type: str, Optional 12777 :param _headers: set to override the headers for a single 12778 request; this effectively ignores the headers 12779 in the spec for a single request. 12780 :type _headers: dict, optional 12781 :param _host_index: set to override the host_index for a single 12782 request; this effectively ignores the host_index 12783 in the spec for a single request. 12784 :type _host_index: int, optional 12785 :return: Returns the result object. 12786 """ # noqa: E501 12787 12788 _param = self._update_document_item_using_url_serialize( 12789 board_id=board_id, 12790 item_id=item_id, 12791 document_update_request=document_update_request, 12792 _request_auth=_request_auth, 12793 _content_type=_content_type, 12794 _headers=_headers, 12795 _host_index=_host_index, 12796 ) 12797 12798 _response_types_map: Dict[str, Optional[str]] = { 12799 "200": "DocumentItem", 12800 "400": None, 12801 "404": None, 12802 "409": None, 12803 "429": None, 12804 } 12805 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12806 response_data.read() 12807 return self.api_client.response_deserialize( 12808 response_data=response_data, 12809 response_types_map=_response_types_map, 12810 ).data
Update document item using URL
Updates a document item on a board
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param document_update_request: (required) :type document_update_request: DocumentUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
12875 @validate_call 12876 def create_embed_item( 12877 self, 12878 board_id: Annotated[ 12879 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 12880 ], 12881 embed_create_request: EmbedCreateRequest, 12882 _request_timeout: Union[ 12883 None, 12884 Annotated[StrictFloat, Field(gt=0)], 12885 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 12886 ] = None, 12887 _request_auth: Optional[Dict[StrictStr, Any]] = None, 12888 _content_type: Optional[StrictStr] = None, 12889 _headers: Optional[Dict[StrictStr, Any]] = None, 12890 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 12891 ) -> EmbedItem: 12892 """Create embed item 12893 12894 Adds an embed item containing external content to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 12895 12896 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 12897 :type board_id: str 12898 :param embed_create_request: (required) 12899 :type embed_create_request: EmbedCreateRequest 12900 :param _request_timeout: timeout setting for this request. If one 12901 number provided, it will be total request 12902 timeout. It can also be a pair (tuple) of 12903 (connection, read) timeouts. 12904 :type _request_timeout: int, tuple(int, int), optional 12905 :param _request_auth: set to override the auth_settings for an a single 12906 request; this effectively ignores the 12907 authentication in the spec for a single request. 12908 :type _request_auth: dict, optional 12909 :param _content_type: force content-type for the request. 12910 :type _content_type: str, Optional 12911 :param _headers: set to override the headers for a single 12912 request; this effectively ignores the headers 12913 in the spec for a single request. 12914 :type _headers: dict, optional 12915 :param _host_index: set to override the host_index for a single 12916 request; this effectively ignores the host_index 12917 in the spec for a single request. 12918 :type _host_index: int, optional 12919 :return: Returns the result object. 12920 """ # noqa: E501 12921 12922 _param = self._create_embed_item_serialize( 12923 board_id=board_id, 12924 embed_create_request=embed_create_request, 12925 _request_auth=_request_auth, 12926 _content_type=_content_type, 12927 _headers=_headers, 12928 _host_index=_host_index, 12929 ) 12930 12931 _response_types_map: Dict[str, Optional[str]] = { 12932 "201": "EmbedItem", 12933 "400": None, 12934 "404": None, 12935 "429": None, 12936 } 12937 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 12938 response_data.read() 12939 return self.api_client.response_deserialize( 12940 response_data=response_data, 12941 response_types_map=_response_types_map, 12942 ).data
Create embed item
Adds an embed item containing external content to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param embed_create_request: (required) :type embed_create_request: EmbedCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13004 @validate_call 13005 def delete_embed_item( 13006 self, 13007 board_id: Annotated[ 13008 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 13009 ], 13010 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 13011 _request_timeout: Union[ 13012 None, 13013 Annotated[StrictFloat, Field(gt=0)], 13014 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13015 ] = None, 13016 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13017 _content_type: Optional[StrictStr] = None, 13018 _headers: Optional[Dict[StrictStr, Any]] = None, 13019 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13020 ) -> object: 13021 """Delete embed item 13022 13023 Deletes an embed item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 13024 13025 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 13026 :type board_id: str 13027 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 13028 :type item_id: str 13029 :param _request_timeout: timeout setting for this request. If one 13030 number provided, it will be total request 13031 timeout. It can also be a pair (tuple) of 13032 (connection, read) timeouts. 13033 :type _request_timeout: int, tuple(int, int), optional 13034 :param _request_auth: set to override the auth_settings for an a single 13035 request; this effectively ignores the 13036 authentication in the spec for a single request. 13037 :type _request_auth: dict, optional 13038 :param _content_type: force content-type for the request. 13039 :type _content_type: str, Optional 13040 :param _headers: set to override the headers for a single 13041 request; this effectively ignores the headers 13042 in the spec for a single request. 13043 :type _headers: dict, optional 13044 :param _host_index: set to override the host_index for a single 13045 request; this effectively ignores the host_index 13046 in the spec for a single request. 13047 :type _host_index: int, optional 13048 :return: Returns the result object. 13049 """ # noqa: E501 13050 13051 _param = self._delete_embed_item_serialize( 13052 board_id=board_id, 13053 item_id=item_id, 13054 _request_auth=_request_auth, 13055 _content_type=_content_type, 13056 _headers=_headers, 13057 _host_index=_host_index, 13058 ) 13059 13060 _response_types_map: Dict[str, Optional[str]] = { 13061 "204": "object", 13062 "400": None, 13063 "404": None, 13064 "429": None, 13065 } 13066 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13067 response_data.read() 13068 return self.api_client.response_deserialize( 13069 response_data=response_data, 13070 response_types_map=_response_types_map, 13071 ).data
Delete embed item
Deletes an embed item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13125 @validate_call 13126 def get_embed_item( 13127 self, 13128 board_id: Annotated[ 13129 StrictStr, 13130 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 13131 ], 13132 item_id: Annotated[ 13133 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 13134 ], 13135 _request_timeout: Union[ 13136 None, 13137 Annotated[StrictFloat, Field(gt=0)], 13138 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13139 ] = None, 13140 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13141 _content_type: Optional[StrictStr] = None, 13142 _headers: Optional[Dict[StrictStr, Any]] = None, 13143 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13144 ) -> EmbedItem: 13145 """Get embed item 13146 13147 Retrieves information for a specific embed item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 13148 13149 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 13150 :type board_id: str 13151 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 13152 :type item_id: str 13153 :param _request_timeout: timeout setting for this request. If one 13154 number provided, it will be total request 13155 timeout. It can also be a pair (tuple) of 13156 (connection, read) timeouts. 13157 :type _request_timeout: int, tuple(int, int), optional 13158 :param _request_auth: set to override the auth_settings for an a single 13159 request; this effectively ignores the 13160 authentication in the spec for a single request. 13161 :type _request_auth: dict, optional 13162 :param _content_type: force content-type for the request. 13163 :type _content_type: str, Optional 13164 :param _headers: set to override the headers for a single 13165 request; this effectively ignores the headers 13166 in the spec for a single request. 13167 :type _headers: dict, optional 13168 :param _host_index: set to override the host_index for a single 13169 request; this effectively ignores the host_index 13170 in the spec for a single request. 13171 :type _host_index: int, optional 13172 :return: Returns the result object. 13173 """ # noqa: E501 13174 13175 _param = self._get_embed_item_serialize( 13176 board_id=board_id, 13177 item_id=item_id, 13178 _request_auth=_request_auth, 13179 _content_type=_content_type, 13180 _headers=_headers, 13181 _host_index=_host_index, 13182 ) 13183 13184 _response_types_map: Dict[str, Optional[str]] = { 13185 "200": "EmbedItem", 13186 "400": None, 13187 "404": None, 13188 "429": None, 13189 } 13190 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13191 response_data.read() 13192 return self.api_client.response_deserialize( 13193 response_data=response_data, 13194 response_types_map=_response_types_map, 13195 ).data
Get embed item
Retrieves information for a specific embed item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13249 @validate_call 13250 def update_embed_item( 13251 self, 13252 board_id: Annotated[ 13253 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 13254 ], 13255 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 13256 embed_update_request: EmbedUpdateRequest, 13257 _request_timeout: Union[ 13258 None, 13259 Annotated[StrictFloat, Field(gt=0)], 13260 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13261 ] = None, 13262 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13263 _content_type: Optional[StrictStr] = None, 13264 _headers: Optional[Dict[StrictStr, Any]] = None, 13265 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13266 ) -> EmbedItem: 13267 """Update embed item 13268 13269 Updates an embed item on a board based on the data properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13270 13271 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 13272 :type board_id: str 13273 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 13274 :type item_id: str 13275 :param embed_update_request: (required) 13276 :type embed_update_request: EmbedUpdateRequest 13277 :param _request_timeout: timeout setting for this request. If one 13278 number provided, it will be total request 13279 timeout. It can also be a pair (tuple) of 13280 (connection, read) timeouts. 13281 :type _request_timeout: int, tuple(int, int), optional 13282 :param _request_auth: set to override the auth_settings for an a single 13283 request; this effectively ignores the 13284 authentication in the spec for a single request. 13285 :type _request_auth: dict, optional 13286 :param _content_type: force content-type for the request. 13287 :type _content_type: str, Optional 13288 :param _headers: set to override the headers for a single 13289 request; this effectively ignores the headers 13290 in the spec for a single request. 13291 :type _headers: dict, optional 13292 :param _host_index: set to override the host_index for a single 13293 request; this effectively ignores the host_index 13294 in the spec for a single request. 13295 :type _host_index: int, optional 13296 :return: Returns the result object. 13297 """ # noqa: E501 13298 13299 _param = self._update_embed_item_serialize( 13300 board_id=board_id, 13301 item_id=item_id, 13302 embed_update_request=embed_update_request, 13303 _request_auth=_request_auth, 13304 _content_type=_content_type, 13305 _headers=_headers, 13306 _host_index=_host_index, 13307 ) 13308 13309 _response_types_map: Dict[str, Optional[str]] = { 13310 "200": "EmbedItem", 13311 "400": None, 13312 "404": None, 13313 "409": None, 13314 "429": None, 13315 } 13316 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13317 response_data.read() 13318 return self.api_client.response_deserialize( 13319 response_data=response_data, 13320 response_types_map=_response_types_map, 13321 ).data
Update embed item
Updates an embed item on a board based on the data properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param embed_update_request: (required) :type embed_update_request: EmbedUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13386 @validate_call 13387 def create_frame_item( 13388 self, 13389 board_id: Annotated[ 13390 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create a frame.") 13391 ], 13392 frame_create_request: FrameCreateRequest, 13393 _request_timeout: Union[ 13394 None, 13395 Annotated[StrictFloat, Field(gt=0)], 13396 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13397 ] = None, 13398 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13399 _content_type: Optional[StrictStr] = None, 13400 _headers: Optional[Dict[StrictStr, Any]] = None, 13401 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13402 ) -> FrameItem: 13403 """Create frame 13404 13405 Adds a frame to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13406 13407 :param board_id: Unique identifier (ID) of the board where you want to create a frame. (required) 13408 :type board_id: str 13409 :param frame_create_request: (required) 13410 :type frame_create_request: FrameCreateRequest 13411 :param _request_timeout: timeout setting for this request. If one 13412 number provided, it will be total request 13413 timeout. It can also be a pair (tuple) of 13414 (connection, read) timeouts. 13415 :type _request_timeout: int, tuple(int, int), optional 13416 :param _request_auth: set to override the auth_settings for an a single 13417 request; this effectively ignores the 13418 authentication in the spec for a single request. 13419 :type _request_auth: dict, optional 13420 :param _content_type: force content-type for the request. 13421 :type _content_type: str, Optional 13422 :param _headers: set to override the headers for a single 13423 request; this effectively ignores the headers 13424 in the spec for a single request. 13425 :type _headers: dict, optional 13426 :param _host_index: set to override the host_index for a single 13427 request; this effectively ignores the host_index 13428 in the spec for a single request. 13429 :type _host_index: int, optional 13430 :return: Returns the result object. 13431 """ # noqa: E501 13432 13433 _param = self._create_frame_item_serialize( 13434 board_id=board_id, 13435 frame_create_request=frame_create_request, 13436 _request_auth=_request_auth, 13437 _content_type=_content_type, 13438 _headers=_headers, 13439 _host_index=_host_index, 13440 ) 13441 13442 _response_types_map: Dict[str, Optional[str]] = { 13443 "201": "FrameItem", 13444 "400": "CreateFrameItem400Response", 13445 "404": "CreateFrameItem400Response", 13446 "429": "CreateFrameItem400Response", 13447 } 13448 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13449 response_data.read() 13450 return self.api_client.response_deserialize( 13451 response_data=response_data, 13452 response_types_map=_response_types_map, 13453 ).data
Create frame
Adds a frame to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create a frame. (required) :type board_id: str :param frame_create_request: (required) :type frame_create_request: FrameCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13515 @validate_call 13516 def delete_frame_item( 13517 self, 13518 board_id: Annotated[ 13519 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the frame.") 13520 ], 13521 item_id: Annotated[ 13522 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to delete.") 13523 ], 13524 _request_timeout: Union[ 13525 None, 13526 Annotated[StrictFloat, Field(gt=0)], 13527 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13528 ] = None, 13529 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13530 _content_type: Optional[StrictStr] = None, 13531 _headers: Optional[Dict[StrictStr, Any]] = None, 13532 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13533 ) -> object: 13534 """Delete frame 13535 13536 Deletes a frame from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 13537 13538 :param board_id: Unique identifier (ID) of the board from which you want to delete the frame. (required) 13539 :type board_id: str 13540 :param item_id: Unique identifier (ID) of the frame that you want to delete. (required) 13541 :type item_id: str 13542 :param _request_timeout: timeout setting for this request. If one 13543 number provided, it will be total request 13544 timeout. It can also be a pair (tuple) of 13545 (connection, read) timeouts. 13546 :type _request_timeout: int, tuple(int, int), optional 13547 :param _request_auth: set to override the auth_settings for an a single 13548 request; this effectively ignores the 13549 authentication in the spec for a single request. 13550 :type _request_auth: dict, optional 13551 :param _content_type: force content-type for the request. 13552 :type _content_type: str, Optional 13553 :param _headers: set to override the headers for a single 13554 request; this effectively ignores the headers 13555 in the spec for a single request. 13556 :type _headers: dict, optional 13557 :param _host_index: set to override the host_index for a single 13558 request; this effectively ignores the host_index 13559 in the spec for a single request. 13560 :type _host_index: int, optional 13561 :return: Returns the result object. 13562 """ # noqa: E501 13563 13564 _param = self._delete_frame_item_serialize( 13565 board_id=board_id, 13566 item_id=item_id, 13567 _request_auth=_request_auth, 13568 _content_type=_content_type, 13569 _headers=_headers, 13570 _host_index=_host_index, 13571 ) 13572 13573 _response_types_map: Dict[str, Optional[str]] = { 13574 "204": "object", 13575 "400": "CreateFrameItem400Response", 13576 "404": "CreateFrameItem400Response", 13577 "429": "CreateFrameItem400Response", 13578 } 13579 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13580 response_data.read() 13581 return self.api_client.response_deserialize( 13582 response_data=response_data, 13583 response_types_map=_response_types_map, 13584 ).data
Delete frame
Deletes a frame from a board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the frame. (required) :type board_id: str :param item_id: Unique identifier (ID) of the frame that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13638 @validate_call 13639 def get_frame_item( 13640 self, 13641 board_id: Annotated[ 13642 StrictStr, 13643 Field(description="Unique identifier (ID) of the board that contains the frame that you want to retrieve"), 13644 ], 13645 item_id: Annotated[ 13646 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to retrieve.") 13647 ], 13648 _request_timeout: Union[ 13649 None, 13650 Annotated[StrictFloat, Field(gt=0)], 13651 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13652 ] = None, 13653 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13654 _content_type: Optional[StrictStr] = None, 13655 _headers: Optional[Dict[StrictStr, Any]] = None, 13656 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13657 ) -> FrameItem: 13658 """Get frame 13659 13660 Retrieves information for a specific frame on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 13661 13662 :param board_id: Unique identifier (ID) of the board that contains the frame that you want to retrieve (required) 13663 :type board_id: str 13664 :param item_id: Unique identifier (ID) of the frame that you want to retrieve. (required) 13665 :type item_id: str 13666 :param _request_timeout: timeout setting for this request. If one 13667 number provided, it will be total request 13668 timeout. It can also be a pair (tuple) of 13669 (connection, read) timeouts. 13670 :type _request_timeout: int, tuple(int, int), optional 13671 :param _request_auth: set to override the auth_settings for an a single 13672 request; this effectively ignores the 13673 authentication in the spec for a single request. 13674 :type _request_auth: dict, optional 13675 :param _content_type: force content-type for the request. 13676 :type _content_type: str, Optional 13677 :param _headers: set to override the headers for a single 13678 request; this effectively ignores the headers 13679 in the spec for a single request. 13680 :type _headers: dict, optional 13681 :param _host_index: set to override the host_index for a single 13682 request; this effectively ignores the host_index 13683 in the spec for a single request. 13684 :type _host_index: int, optional 13685 :return: Returns the result object. 13686 """ # noqa: E501 13687 13688 _param = self._get_frame_item_serialize( 13689 board_id=board_id, 13690 item_id=item_id, 13691 _request_auth=_request_auth, 13692 _content_type=_content_type, 13693 _headers=_headers, 13694 _host_index=_host_index, 13695 ) 13696 13697 _response_types_map: Dict[str, Optional[str]] = { 13698 "200": "FrameItem", 13699 "400": "CreateFrameItem400Response", 13700 "404": "CreateFrameItem400Response", 13701 "429": "CreateFrameItem400Response", 13702 } 13703 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13704 response_data.read() 13705 return self.api_client.response_deserialize( 13706 response_data=response_data, 13707 response_types_map=_response_types_map, 13708 ).data
Get frame
Retrieves information for a specific frame on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board that contains the frame that you want to retrieve (required) :type board_id: str :param item_id: Unique identifier (ID) of the frame that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13762 @validate_call 13763 def update_frame_item( 13764 self, 13765 board_id: Annotated[ 13766 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the frame.") 13767 ], 13768 item_id: Annotated[ 13769 StrictStr, Field(description="Unique identifier (ID) of the frame that you want to update.") 13770 ], 13771 frame_update_request: FrameUpdateRequest, 13772 _request_timeout: Union[ 13773 None, 13774 Annotated[StrictFloat, Field(gt=0)], 13775 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13776 ] = None, 13777 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13778 _content_type: Optional[StrictStr] = None, 13779 _headers: Optional[Dict[StrictStr, Any]] = None, 13780 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13781 ) -> FrameItem: 13782 """Update frame 13783 13784 Updates a frame on a board based on the data, style, or geometry properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13785 13786 :param board_id: Unique identifier (ID) of the board where you want to update the frame. (required) 13787 :type board_id: str 13788 :param item_id: Unique identifier (ID) of the frame that you want to update. (required) 13789 :type item_id: str 13790 :param frame_update_request: (required) 13791 :type frame_update_request: FrameUpdateRequest 13792 :param _request_timeout: timeout setting for this request. If one 13793 number provided, it will be total request 13794 timeout. It can also be a pair (tuple) of 13795 (connection, read) timeouts. 13796 :type _request_timeout: int, tuple(int, int), optional 13797 :param _request_auth: set to override the auth_settings for an a single 13798 request; this effectively ignores the 13799 authentication in the spec for a single request. 13800 :type _request_auth: dict, optional 13801 :param _content_type: force content-type for the request. 13802 :type _content_type: str, Optional 13803 :param _headers: set to override the headers for a single 13804 request; this effectively ignores the headers 13805 in the spec for a single request. 13806 :type _headers: dict, optional 13807 :param _host_index: set to override the host_index for a single 13808 request; this effectively ignores the host_index 13809 in the spec for a single request. 13810 :type _host_index: int, optional 13811 :return: Returns the result object. 13812 """ # noqa: E501 13813 13814 _param = self._update_frame_item_serialize( 13815 board_id=board_id, 13816 item_id=item_id, 13817 frame_update_request=frame_update_request, 13818 _request_auth=_request_auth, 13819 _content_type=_content_type, 13820 _headers=_headers, 13821 _host_index=_host_index, 13822 ) 13823 13824 _response_types_map: Dict[str, Optional[str]] = { 13825 "200": "FrameItem", 13826 "400": "CreateFrameItem400Response", 13827 "404": "CreateFrameItem400Response", 13828 "409": "UpdateFrameItem409Response", 13829 "429": "CreateFrameItem400Response", 13830 } 13831 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13832 response_data.read() 13833 return self.api_client.response_deserialize( 13834 response_data=response_data, 13835 response_types_map=_response_types_map, 13836 ).data
Update frame
Updates a frame on a board based on the data, style, or geometry properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the frame. (required) :type board_id: str :param item_id: Unique identifier (ID) of the frame that you want to update. (required) :type item_id: str :param frame_update_request: (required) :type frame_update_request: FrameUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
13901 @validate_call 13902 def create_group( 13903 self, 13904 board_id: StrictStr, 13905 group: Group, 13906 _request_timeout: Union[ 13907 None, 13908 Annotated[StrictFloat, Field(gt=0)], 13909 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 13910 ] = None, 13911 _request_auth: Optional[Dict[StrictStr, Any]] = None, 13912 _content_type: Optional[StrictStr] = None, 13913 _headers: Optional[Dict[StrictStr, Any]] = None, 13914 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 13915 ) -> GroupResponseShort: 13916 """Create group 13917 13918 Creates a group of items on a board. The group is created with the items that are passed in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 13919 13920 :param board_id: (required) 13921 :type board_id: str 13922 :param group: (required) 13923 :type group: Group 13924 :param _request_timeout: timeout setting for this request. If one 13925 number provided, it will be total request 13926 timeout. It can also be a pair (tuple) of 13927 (connection, read) timeouts. 13928 :type _request_timeout: int, tuple(int, int), optional 13929 :param _request_auth: set to override the auth_settings for an a single 13930 request; this effectively ignores the 13931 authentication in the spec for a single request. 13932 :type _request_auth: dict, optional 13933 :param _content_type: force content-type for the request. 13934 :type _content_type: str, Optional 13935 :param _headers: set to override the headers for a single 13936 request; this effectively ignores the headers 13937 in the spec for a single request. 13938 :type _headers: dict, optional 13939 :param _host_index: set to override the host_index for a single 13940 request; this effectively ignores the host_index 13941 in the spec for a single request. 13942 :type _host_index: int, optional 13943 :return: Returns the result object. 13944 """ # noqa: E501 13945 13946 _param = self._create_group_serialize( 13947 board_id=board_id, 13948 group=group, 13949 _request_auth=_request_auth, 13950 _content_type=_content_type, 13951 _headers=_headers, 13952 _host_index=_host_index, 13953 ) 13954 13955 _response_types_map: Dict[str, Optional[str]] = { 13956 "201": "GroupResponseShort", 13957 "400": "GetAllGroups400Response", 13958 "404": "GetAllGroups404Response", 13959 "429": "GetAllGroups429Response", 13960 } 13961 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 13962 response_data.read() 13963 return self.api_client.response_deserialize( 13964 response_data=response_data, 13965 response_types_map=_response_types_map, 13966 ).data
Create group
Creates a group of items on a board. The group is created with the items that are passed in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: (required) :type board_id: str :param group: (required) :type group: Group :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14028 @validate_call 14029 def delete_group( 14030 self, 14031 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14032 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14033 delete_items: Annotated[ 14034 StrictBool, 14035 Field( 14036 description="Indicates whether the items should be removed. Set to `true` to delete items in the group." 14037 ), 14038 ], 14039 _request_timeout: Union[ 14040 None, 14041 Annotated[StrictFloat, Field(gt=0)], 14042 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14043 ] = None, 14044 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14045 _content_type: Optional[StrictStr] = None, 14046 _headers: Optional[Dict[StrictStr, Any]] = None, 14047 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14048 ) -> object: 14049 """Deletes the group 14050 14051 Deletes a group from a board. All the items in the groups are deleted along with the group.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 14052 14053 :param board_id: Unique identifier (ID) of the board. (required) 14054 :type board_id: str 14055 :param group_id: Unique identifier (ID) of the group. (required) 14056 :type group_id: str 14057 :param delete_items: Indicates whether the items should be removed. Set to `true` to delete items in the group. (required) 14058 :type delete_items: bool 14059 :param _request_timeout: timeout setting for this request. If one 14060 number provided, it will be total request 14061 timeout. It can also be a pair (tuple) of 14062 (connection, read) timeouts. 14063 :type _request_timeout: int, tuple(int, int), optional 14064 :param _request_auth: set to override the auth_settings for an a single 14065 request; this effectively ignores the 14066 authentication in the spec for a single request. 14067 :type _request_auth: dict, optional 14068 :param _content_type: force content-type for the request. 14069 :type _content_type: str, Optional 14070 :param _headers: set to override the headers for a single 14071 request; this effectively ignores the headers 14072 in the spec for a single request. 14073 :type _headers: dict, optional 14074 :param _host_index: set to override the host_index for a single 14075 request; this effectively ignores the host_index 14076 in the spec for a single request. 14077 :type _host_index: int, optional 14078 :return: Returns the result object. 14079 """ # noqa: E501 14080 14081 _param = self._delete_group_serialize( 14082 board_id=board_id, 14083 group_id=group_id, 14084 delete_items=delete_items, 14085 _request_auth=_request_auth, 14086 _content_type=_content_type, 14087 _headers=_headers, 14088 _host_index=_host_index, 14089 ) 14090 14091 _response_types_map: Dict[str, Optional[str]] = { 14092 "204": "object", 14093 "400": "UnGroup400Response", 14094 "404": "UnGroup404Response", 14095 "429": "UnGroup429Response", 14096 } 14097 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14098 response_data.read() 14099 return self.api_client.response_deserialize( 14100 response_data=response_data, 14101 response_types_map=_response_types_map, 14102 ).data
Deletes the group
Deletes a group from a board. All the items in the groups are deleted along with the group.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board. (required)
:type board_id: str
:param group_id: Unique identifier (ID) of the group. (required)
:type group_id: str
:param delete_items: Indicates whether the items should be removed. Set to true
to delete items in the group. (required)
:type delete_items: bool
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
14161 @validate_call 14162 def get_all_groups( 14163 self, 14164 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14165 limit: Annotated[ 14166 Optional[Annotated[int, Field(le=50, strict=True, ge=10)]], 14167 Field(description="The maximum number of items to return at one time, default is 10, maximum is 50."), 14168 ] = None, 14169 cursor: Optional[StrictStr] = None, 14170 _request_timeout: Union[ 14171 None, 14172 Annotated[StrictFloat, Field(gt=0)], 14173 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14174 ] = None, 14175 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14176 _content_type: Optional[StrictStr] = None, 14177 _headers: Optional[Dict[StrictStr, Any]] = None, 14178 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14179 ) -> GetAllGroups200Response: 14180 """Get all groups on a board 14181 14182 Returns all the groups and the items of the respective groups within a specific board.<br/> This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request.<br/> For example, if you set the `limit` query parameter to `10` and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14183 14184 :param board_id: Unique identifier (ID) of the board. (required) 14185 :type board_id: str 14186 :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. 14187 :type limit: int 14188 :param cursor: 14189 :type cursor: str 14190 :param _request_timeout: timeout setting for this request. If one 14191 number provided, it will be total request 14192 timeout. It can also be a pair (tuple) of 14193 (connection, read) timeouts. 14194 :type _request_timeout: int, tuple(int, int), optional 14195 :param _request_auth: set to override the auth_settings for an a single 14196 request; this effectively ignores the 14197 authentication in the spec for a single request. 14198 :type _request_auth: dict, optional 14199 :param _content_type: force content-type for the request. 14200 :type _content_type: str, Optional 14201 :param _headers: set to override the headers for a single 14202 request; this effectively ignores the headers 14203 in the spec for a single request. 14204 :type _headers: dict, optional 14205 :param _host_index: set to override the host_index for a single 14206 request; this effectively ignores the host_index 14207 in the spec for a single request. 14208 :type _host_index: int, optional 14209 :return: Returns the result object. 14210 """ # noqa: E501 14211 14212 _param = self._get_all_groups_serialize( 14213 board_id=board_id, 14214 limit=limit, 14215 cursor=cursor, 14216 _request_auth=_request_auth, 14217 _content_type=_content_type, 14218 _headers=_headers, 14219 _host_index=_host_index, 14220 ) 14221 14222 _response_types_map: Dict[str, Optional[str]] = { 14223 "200": "GetAllGroups200Response", 14224 "400": "GetAllGroups400Response", 14225 "404": "GetAllGroups404Response", 14226 "429": "GetAllGroups429Response", 14227 } 14228 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14229 response_data.read() 14230 return self.api_client.response_deserialize( 14231 response_data=response_data, 14232 response_types_map=_response_types_map, 14233 ).data
Get all groups on a board
Returns all the groups and the items of the respective groups within a specific board.
This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request.
For example, if you set the limit
query parameter to 10
and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id: Unique identifier (ID) of the board. (required) :type board_id: str :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. :type limit: int :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14294 @validate_call 14295 def get_group_by_id( 14296 self, 14297 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14298 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14299 _request_timeout: Union[ 14300 None, 14301 Annotated[StrictFloat, Field(gt=0)], 14302 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14303 ] = None, 14304 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14305 _content_type: Optional[StrictStr] = None, 14306 _headers: Optional[Dict[StrictStr, Any]] = None, 14307 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14308 ) -> GroupResponseShort: 14309 """Get a group by its ID 14310 14311 Returns a list of items in a specific group. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a> per item ID 14312 14313 :param board_id: Unique identifier (ID) of the board. (required) 14314 :type board_id: str 14315 :param group_id: Unique identifier (ID) of the group. (required) 14316 :type group_id: str 14317 :param _request_timeout: timeout setting for this request. If one 14318 number provided, it will be total request 14319 timeout. It can also be a pair (tuple) of 14320 (connection, read) timeouts. 14321 :type _request_timeout: int, tuple(int, int), optional 14322 :param _request_auth: set to override the auth_settings for an a single 14323 request; this effectively ignores the 14324 authentication in the spec for a single request. 14325 :type _request_auth: dict, optional 14326 :param _content_type: force content-type for the request. 14327 :type _content_type: str, Optional 14328 :param _headers: set to override the headers for a single 14329 request; this effectively ignores the headers 14330 in the spec for a single request. 14331 :type _headers: dict, optional 14332 :param _host_index: set to override the host_index for a single 14333 request; this effectively ignores the host_index 14334 in the spec for a single request. 14335 :type _host_index: int, optional 14336 :return: Returns the result object. 14337 """ # noqa: E501 14338 14339 _param = self._get_group_by_id_serialize( 14340 board_id=board_id, 14341 group_id=group_id, 14342 _request_auth=_request_auth, 14343 _content_type=_content_type, 14344 _headers=_headers, 14345 _host_index=_host_index, 14346 ) 14347 14348 _response_types_map: Dict[str, Optional[str]] = { 14349 "200": "GroupResponseShort", 14350 "400": "GetAllGroups400Response", 14351 "404": "GetAllGroups404Response", 14352 "429": "GetAllGroups429Response", 14353 } 14354 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14355 response_data.read() 14356 return self.api_client.response_deserialize( 14357 response_data=response_data, 14358 response_types_map=_response_types_map, 14359 ).data
Get a group by its ID
Returns a list of items in a specific group.
Required scope
boards:readRate limiting
Level 2 per item ID:param board_id: Unique identifier (ID) of the board. (required) :type board_id: str :param group_id: Unique identifier (ID) of the group. (required) :type group_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14413 @validate_call 14414 def get_items_by_group_id( 14415 self, 14416 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14417 group_item_id: Annotated[StrictStr, Field(description="The ID of the group item to retrieve.")], 14418 limit: Annotated[ 14419 Optional[Annotated[int, Field(le=50, strict=True, ge=10)]], 14420 Field(description="The maximum number of items to return at one time, default is 10, maximum is 50."), 14421 ] = None, 14422 cursor: Optional[StrictStr] = None, 14423 _request_timeout: Union[ 14424 None, 14425 Annotated[StrictFloat, Field(gt=0)], 14426 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14427 ] = None, 14428 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14429 _content_type: Optional[StrictStr] = None, 14430 _headers: Optional[Dict[StrictStr, Any]] = None, 14431 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14432 ) -> GetItemsByGroupId200Response: 14433 """Get items of a group by ID 14434 14435 Returns a list of items that are a part of any group, within a specific board.<br/> This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request.<br/> For example, if you set the `limit` query parameter to `10` and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items (not 10 groups) in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14436 14437 :param board_id: Unique identifier (ID) of the board. (required) 14438 :type board_id: str 14439 :param group_item_id: The ID of the group item to retrieve. (required) 14440 :type group_item_id: str 14441 :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. 14442 :type limit: int 14443 :param cursor: 14444 :type cursor: str 14445 :param _request_timeout: timeout setting for this request. If one 14446 number provided, it will be total request 14447 timeout. It can also be a pair (tuple) of 14448 (connection, read) timeouts. 14449 :type _request_timeout: int, tuple(int, int), optional 14450 :param _request_auth: set to override the auth_settings for an a single 14451 request; this effectively ignores the 14452 authentication in the spec for a single request. 14453 :type _request_auth: dict, optional 14454 :param _content_type: force content-type for the request. 14455 :type _content_type: str, Optional 14456 :param _headers: set to override the headers for a single 14457 request; this effectively ignores the headers 14458 in the spec for a single request. 14459 :type _headers: dict, optional 14460 :param _host_index: set to override the host_index for a single 14461 request; this effectively ignores the host_index 14462 in the spec for a single request. 14463 :type _host_index: int, optional 14464 :return: Returns the result object. 14465 """ # noqa: E501 14466 14467 _param = self._get_items_by_group_id_serialize( 14468 board_id=board_id, 14469 group_item_id=group_item_id, 14470 limit=limit, 14471 cursor=cursor, 14472 _request_auth=_request_auth, 14473 _content_type=_content_type, 14474 _headers=_headers, 14475 _host_index=_host_index, 14476 ) 14477 14478 _response_types_map: Dict[str, Optional[str]] = { 14479 "200": "GetItemsByGroupId200Response", 14480 "400": "GetAllGroups400Response", 14481 "404": "GetAllGroups404Response", 14482 "429": "GetAllGroups429Response", 14483 } 14484 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14485 response_data.read() 14486 return self.api_client.response_deserialize( 14487 response_data=response_data, 14488 response_types_map=_response_types_map, 14489 ).data
Get items of a group by ID
Returns a list of items that are a part of any group, within a specific board.
This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request.
For example, if you set the limit
query parameter to 10
and the board contains 20 items that are a part of a group, the first call will return information about the first 10 items (not 10 groups) in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id: Unique identifier (ID) of the board. (required) :type board_id: str :param group_item_id: The ID of the group item to retrieve. (required) :type group_item_id: str :param limit: The maximum number of items to return at one time, default is 10, maximum is 50. :type limit: int :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14555 @validate_call 14556 def un_group( 14557 self, 14558 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14559 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14560 delete_items: Annotated[ 14561 Optional[StrictBool], Field(description="Indicates whether the items should be removed. By default, false.") 14562 ] = None, 14563 _request_timeout: Union[ 14564 None, 14565 Annotated[StrictFloat, Field(gt=0)], 14566 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14567 ] = None, 14568 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14569 _content_type: Optional[StrictStr] = None, 14570 _headers: Optional[Dict[StrictStr, Any]] = None, 14571 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14572 ) -> object: 14573 """Ungroup items 14574 14575 Ungroups items from a group.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 14576 14577 :param board_id: Unique identifier (ID) of the board. (required) 14578 :type board_id: str 14579 :param group_id: Unique identifier (ID) of the group. (required) 14580 :type group_id: str 14581 :param delete_items: Indicates whether the items should be removed. By default, false. 14582 :type delete_items: bool 14583 :param _request_timeout: timeout setting for this request. If one 14584 number provided, it will be total request 14585 timeout. It can also be a pair (tuple) of 14586 (connection, read) timeouts. 14587 :type _request_timeout: int, tuple(int, int), optional 14588 :param _request_auth: set to override the auth_settings for an a single 14589 request; this effectively ignores the 14590 authentication in the spec for a single request. 14591 :type _request_auth: dict, optional 14592 :param _content_type: force content-type for the request. 14593 :type _content_type: str, Optional 14594 :param _headers: set to override the headers for a single 14595 request; this effectively ignores the headers 14596 in the spec for a single request. 14597 :type _headers: dict, optional 14598 :param _host_index: set to override the host_index for a single 14599 request; this effectively ignores the host_index 14600 in the spec for a single request. 14601 :type _host_index: int, optional 14602 :return: Returns the result object. 14603 """ # noqa: E501 14604 14605 _param = self._un_group_serialize( 14606 board_id=board_id, 14607 group_id=group_id, 14608 delete_items=delete_items, 14609 _request_auth=_request_auth, 14610 _content_type=_content_type, 14611 _headers=_headers, 14612 _host_index=_host_index, 14613 ) 14614 14615 _response_types_map: Dict[str, Optional[str]] = { 14616 "204": "object", 14617 "400": "UnGroup400Response", 14618 "404": "UnGroup404Response", 14619 "429": "UnGroup429Response", 14620 } 14621 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14622 response_data.read() 14623 return self.api_client.response_deserialize( 14624 response_data=response_data, 14625 response_types_map=_response_types_map, 14626 ).data
Ungroup items
Ungroups items from a group.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board. (required) :type board_id: str :param group_id: Unique identifier (ID) of the group. (required) :type group_id: str :param delete_items: Indicates whether the items should be removed. By default, false. :type delete_items: bool :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14685 @validate_call 14686 def update_group( 14687 self, 14688 board_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the board.")], 14689 group_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the group.")], 14690 group: Group, 14691 _request_timeout: Union[ 14692 None, 14693 Annotated[StrictFloat, Field(gt=0)], 14694 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14695 ] = None, 14696 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14697 _content_type: Optional[StrictStr] = None, 14698 _headers: Optional[Dict[StrictStr, Any]] = None, 14699 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14700 ) -> GroupResponseShort: 14701 """Updates a group with new items 14702 14703 This endpoint updates an existing group by replacing it entirely with a new group. When the update is made, the original group is completely replaced, and a new group ID is assigned. <br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14704 14705 :param board_id: Unique identifier (ID) of the board. (required) 14706 :type board_id: str 14707 :param group_id: Unique identifier (ID) of the group. (required) 14708 :type group_id: str 14709 :param group: (required) 14710 :type group: Group 14711 :param _request_timeout: timeout setting for this request. If one 14712 number provided, it will be total request 14713 timeout. It can also be a pair (tuple) of 14714 (connection, read) timeouts. 14715 :type _request_timeout: int, tuple(int, int), optional 14716 :param _request_auth: set to override the auth_settings for an a single 14717 request; this effectively ignores the 14718 authentication in the spec for a single request. 14719 :type _request_auth: dict, optional 14720 :param _content_type: force content-type for the request. 14721 :type _content_type: str, Optional 14722 :param _headers: set to override the headers for a single 14723 request; this effectively ignores the headers 14724 in the spec for a single request. 14725 :type _headers: dict, optional 14726 :param _host_index: set to override the host_index for a single 14727 request; this effectively ignores the host_index 14728 in the spec for a single request. 14729 :type _host_index: int, optional 14730 :return: Returns the result object. 14731 """ # noqa: E501 14732 14733 _param = self._update_group_serialize( 14734 board_id=board_id, 14735 group_id=group_id, 14736 group=group, 14737 _request_auth=_request_auth, 14738 _content_type=_content_type, 14739 _headers=_headers, 14740 _host_index=_host_index, 14741 ) 14742 14743 _response_types_map: Dict[str, Optional[str]] = { 14744 "200": "GroupResponseShort", 14745 "400": "GetAllGroups400Response", 14746 "404": "GetAllGroups404Response", 14747 "429": "GetAllGroups429Response", 14748 } 14749 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14750 response_data.read() 14751 return self.api_client.response_deserialize( 14752 response_data=response_data, 14753 response_types_map=_response_types_map, 14754 ).data
Updates a group with new items
This endpoint updates an existing group by replacing it entirely with a new group. When the update is made, the original group is completely replaced, and a new group ID is assigned.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board. (required) :type board_id: str :param group_id: Unique identifier (ID) of the group. (required) :type group_id: str :param group: (required) :type group: Group :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14819 @validate_call 14820 def create_image_item_using_local_file( 14821 self, 14822 board_id_platform_file_upload: Annotated[ 14823 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 14824 ], 14825 resource: Annotated[ 14826 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 14827 ], 14828 data: Optional[UploadFileFromDeviceData] = None, 14829 _request_timeout: Union[ 14830 None, 14831 Annotated[StrictFloat, Field(gt=0)], 14832 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14833 ] = None, 14834 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14835 _content_type: Optional[StrictStr] = None, 14836 _headers: Optional[Dict[StrictStr, Any]] = None, 14837 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14838 ) -> ImageItem: 14839 """Create image item using file from device 14840 14841 Adds an image item to a board by specifying a file from device.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14842 14843 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) 14844 :type board_id_platform_file_upload: str 14845 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 14846 :type resource: bytearray 14847 :param data: 14848 :type data: UploadFileFromDeviceData 14849 :param _request_timeout: timeout setting for this request. If one 14850 number provided, it will be total request 14851 timeout. It can also be a pair (tuple) of 14852 (connection, read) timeouts. 14853 :type _request_timeout: int, tuple(int, int), optional 14854 :param _request_auth: set to override the auth_settings for an a single 14855 request; this effectively ignores the 14856 authentication in the spec for a single request. 14857 :type _request_auth: dict, optional 14858 :param _content_type: force content-type for the request. 14859 :type _content_type: str, Optional 14860 :param _headers: set to override the headers for a single 14861 request; this effectively ignores the headers 14862 in the spec for a single request. 14863 :type _headers: dict, optional 14864 :param _host_index: set to override the host_index for a single 14865 request; this effectively ignores the host_index 14866 in the spec for a single request. 14867 :type _host_index: int, optional 14868 :return: Returns the result object. 14869 """ # noqa: E501 14870 14871 _param = self._create_image_item_using_local_file_serialize( 14872 board_id_platform_file_upload=board_id_platform_file_upload, 14873 resource=resource, 14874 data=data, 14875 _request_auth=_request_auth, 14876 _content_type=_content_type, 14877 _headers=_headers, 14878 _host_index=_host_index, 14879 ) 14880 14881 _response_types_map: Dict[str, Optional[str]] = { 14882 "201": "ImageItem", 14883 } 14884 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 14885 response_data.read() 14886 return self.api_client.response_deserialize( 14887 response_data=response_data, 14888 response_types_map=_response_types_map, 14889 ).data
Create image item using file from device
Adds an image item to a board by specifying a file from device.
Required scope
boards:writeRate limiting
Level 2:param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id_platform_file_upload: str :param resource: Select a file to upload. Maximum file size is 6 MB. (required) :type resource: bytearray :param data: :type data: UploadFileFromDeviceData :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
14954 @validate_call 14955 def create_image_item_using_url( 14956 self, 14957 board_id: Annotated[ 14958 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 14959 ], 14960 image_create_request: ImageCreateRequest, 14961 _request_timeout: Union[ 14962 None, 14963 Annotated[StrictFloat, Field(gt=0)], 14964 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 14965 ] = None, 14966 _request_auth: Optional[Dict[StrictStr, Any]] = None, 14967 _content_type: Optional[StrictStr] = None, 14968 _headers: Optional[Dict[StrictStr, Any]] = None, 14969 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 14970 ) -> ImageItem: 14971 """Create image item using URL 14972 14973 Adds an image item to a board by specifying an image URL.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 14974 14975 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 14976 :type board_id: str 14977 :param image_create_request: (required) 14978 :type image_create_request: ImageCreateRequest 14979 :param _request_timeout: timeout setting for this request. If one 14980 number provided, it will be total request 14981 timeout. It can also be a pair (tuple) of 14982 (connection, read) timeouts. 14983 :type _request_timeout: int, tuple(int, int), optional 14984 :param _request_auth: set to override the auth_settings for an a single 14985 request; this effectively ignores the 14986 authentication in the spec for a single request. 14987 :type _request_auth: dict, optional 14988 :param _content_type: force content-type for the request. 14989 :type _content_type: str, Optional 14990 :param _headers: set to override the headers for a single 14991 request; this effectively ignores the headers 14992 in the spec for a single request. 14993 :type _headers: dict, optional 14994 :param _host_index: set to override the host_index for a single 14995 request; this effectively ignores the host_index 14996 in the spec for a single request. 14997 :type _host_index: int, optional 14998 :return: Returns the result object. 14999 """ # noqa: E501 15000 15001 _param = self._create_image_item_using_url_serialize( 15002 board_id=board_id, 15003 image_create_request=image_create_request, 15004 _request_auth=_request_auth, 15005 _content_type=_content_type, 15006 _headers=_headers, 15007 _host_index=_host_index, 15008 ) 15009 15010 _response_types_map: Dict[str, Optional[str]] = { 15011 "201": "ImageItem", 15012 "400": None, 15013 "404": None, 15014 "429": None, 15015 } 15016 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15017 response_data.read() 15018 return self.api_client.response_deserialize( 15019 response_data=response_data, 15020 response_types_map=_response_types_map, 15021 ).data
Create image item using URL
Adds an image item to a board by specifying an image URL.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param image_create_request: (required) :type image_create_request: ImageCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15083 @validate_call 15084 def delete_image_item( 15085 self, 15086 board_id: Annotated[ 15087 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15088 ], 15089 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15090 _request_timeout: Union[ 15091 None, 15092 Annotated[StrictFloat, Field(gt=0)], 15093 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15094 ] = None, 15095 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15096 _content_type: Optional[StrictStr] = None, 15097 _headers: Optional[Dict[StrictStr, Any]] = None, 15098 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15099 ) -> object: 15100 """Delete image item 15101 15102 Deletes an image item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15103 15104 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15105 :type board_id: str 15106 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15107 :type item_id: str 15108 :param _request_timeout: timeout setting for this request. If one 15109 number provided, it will be total request 15110 timeout. It can also be a pair (tuple) of 15111 (connection, read) timeouts. 15112 :type _request_timeout: int, tuple(int, int), optional 15113 :param _request_auth: set to override the auth_settings for an a single 15114 request; this effectively ignores the 15115 authentication in the spec for a single request. 15116 :type _request_auth: dict, optional 15117 :param _content_type: force content-type for the request. 15118 :type _content_type: str, Optional 15119 :param _headers: set to override the headers for a single 15120 request; this effectively ignores the headers 15121 in the spec for a single request. 15122 :type _headers: dict, optional 15123 :param _host_index: set to override the host_index for a single 15124 request; this effectively ignores the host_index 15125 in the spec for a single request. 15126 :type _host_index: int, optional 15127 :return: Returns the result object. 15128 """ # noqa: E501 15129 15130 _param = self._delete_image_item_serialize( 15131 board_id=board_id, 15132 item_id=item_id, 15133 _request_auth=_request_auth, 15134 _content_type=_content_type, 15135 _headers=_headers, 15136 _host_index=_host_index, 15137 ) 15138 15139 _response_types_map: Dict[str, Optional[str]] = { 15140 "204": "object", 15141 "400": None, 15142 "404": None, 15143 "429": None, 15144 } 15145 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15146 response_data.read() 15147 return self.api_client.response_deserialize( 15148 response_data=response_data, 15149 response_types_map=_response_types_map, 15150 ).data
Delete image item
Deletes an image item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15204 @validate_call 15205 def get_image_item( 15206 self, 15207 board_id: Annotated[ 15208 StrictStr, 15209 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 15210 ], 15211 item_id: Annotated[ 15212 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 15213 ], 15214 _request_timeout: Union[ 15215 None, 15216 Annotated[StrictFloat, Field(gt=0)], 15217 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15218 ] = None, 15219 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15220 _content_type: Optional[StrictStr] = None, 15221 _headers: Optional[Dict[StrictStr, Any]] = None, 15222 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15223 ) -> ImageItem: 15224 """Get image item 15225 15226 Retrieves information for a specific image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 15227 15228 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 15229 :type board_id: str 15230 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 15231 :type item_id: str 15232 :param _request_timeout: timeout setting for this request. If one 15233 number provided, it will be total request 15234 timeout. It can also be a pair (tuple) of 15235 (connection, read) timeouts. 15236 :type _request_timeout: int, tuple(int, int), optional 15237 :param _request_auth: set to override the auth_settings for an a single 15238 request; this effectively ignores the 15239 authentication in the spec for a single request. 15240 :type _request_auth: dict, optional 15241 :param _content_type: force content-type for the request. 15242 :type _content_type: str, Optional 15243 :param _headers: set to override the headers for a single 15244 request; this effectively ignores the headers 15245 in the spec for a single request. 15246 :type _headers: dict, optional 15247 :param _host_index: set to override the host_index for a single 15248 request; this effectively ignores the host_index 15249 in the spec for a single request. 15250 :type _host_index: int, optional 15251 :return: Returns the result object. 15252 """ # noqa: E501 15253 15254 _param = self._get_image_item_serialize( 15255 board_id=board_id, 15256 item_id=item_id, 15257 _request_auth=_request_auth, 15258 _content_type=_content_type, 15259 _headers=_headers, 15260 _host_index=_host_index, 15261 ) 15262 15263 _response_types_map: Dict[str, Optional[str]] = { 15264 "200": "ImageItem", 15265 "400": None, 15266 "404": None, 15267 "429": None, 15268 } 15269 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15270 response_data.read() 15271 return self.api_client.response_deserialize( 15272 response_data=response_data, 15273 response_types_map=_response_types_map, 15274 ).data
Get image item
Retrieves information for a specific image item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15328 @validate_call 15329 def update_image_item_using_file_from_device( 15330 self, 15331 board_id_platform_file_upload: Annotated[ 15332 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 15333 ], 15334 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 15335 resource: Annotated[ 15336 Union[StrictBytes, StrictStr], Field(description="Select a file to upload. Maximum file size is 6 MB.") 15337 ], 15338 data: Optional[UploadFileFromDeviceData] = None, 15339 _request_timeout: Union[ 15340 None, 15341 Annotated[StrictFloat, Field(gt=0)], 15342 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15343 ] = None, 15344 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15345 _content_type: Optional[StrictStr] = None, 15346 _headers: Optional[Dict[StrictStr, Any]] = None, 15347 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15348 ) -> ImageItem: 15349 """Update image item using file from device 15350 15351 Updates an image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15352 15353 :param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) 15354 :type board_id_platform_file_upload: str 15355 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 15356 :type item_id: str 15357 :param resource: Select a file to upload. Maximum file size is 6 MB. (required) 15358 :type resource: bytearray 15359 :param data: 15360 :type data: UploadFileFromDeviceData 15361 :param _request_timeout: timeout setting for this request. If one 15362 number provided, it will be total request 15363 timeout. It can also be a pair (tuple) of 15364 (connection, read) timeouts. 15365 :type _request_timeout: int, tuple(int, int), optional 15366 :param _request_auth: set to override the auth_settings for an a single 15367 request; this effectively ignores the 15368 authentication in the spec for a single request. 15369 :type _request_auth: dict, optional 15370 :param _content_type: force content-type for the request. 15371 :type _content_type: str, Optional 15372 :param _headers: set to override the headers for a single 15373 request; this effectively ignores the headers 15374 in the spec for a single request. 15375 :type _headers: dict, optional 15376 :param _host_index: set to override the host_index for a single 15377 request; this effectively ignores the host_index 15378 in the spec for a single request. 15379 :type _host_index: int, optional 15380 :return: Returns the result object. 15381 """ # noqa: E501 15382 15383 _param = self._update_image_item_using_file_from_device_serialize( 15384 board_id_platform_file_upload=board_id_platform_file_upload, 15385 item_id=item_id, 15386 resource=resource, 15387 data=data, 15388 _request_auth=_request_auth, 15389 _content_type=_content_type, 15390 _headers=_headers, 15391 _host_index=_host_index, 15392 ) 15393 15394 _response_types_map: Dict[str, Optional[str]] = { 15395 "200": "ImageItem", 15396 } 15397 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15398 response_data.read() 15399 return self.api_client.response_deserialize( 15400 response_data=response_data, 15401 response_types_map=_response_types_map, 15402 ).data
Update image item using file from device
Updates an image item on a board.
Required scope
boards:writeRate limiting
Level 2:param board_id_platform_file_upload: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id_platform_file_upload: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param resource: Select a file to upload. Maximum file size is 6 MB. (required) :type resource: bytearray :param data: :type data: UploadFileFromDeviceData :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15470 @validate_call 15471 def update_image_item_using_url( 15472 self, 15473 board_id: Annotated[ 15474 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 15475 ], 15476 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 15477 image_update_request: ImageUpdateRequest, 15478 _request_timeout: Union[ 15479 None, 15480 Annotated[StrictFloat, Field(gt=0)], 15481 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15482 ] = None, 15483 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15484 _content_type: Optional[StrictStr] = None, 15485 _headers: Optional[Dict[StrictStr, Any]] = None, 15486 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15487 ) -> ImageItem: 15488 """Update image item using URL 15489 15490 Updates an image item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15491 15492 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 15493 :type board_id: str 15494 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 15495 :type item_id: str 15496 :param image_update_request: (required) 15497 :type image_update_request: ImageUpdateRequest 15498 :param _request_timeout: timeout setting for this request. If one 15499 number provided, it will be total request 15500 timeout. It can also be a pair (tuple) of 15501 (connection, read) timeouts. 15502 :type _request_timeout: int, tuple(int, int), optional 15503 :param _request_auth: set to override the auth_settings for an a single 15504 request; this effectively ignores the 15505 authentication in the spec for a single request. 15506 :type _request_auth: dict, optional 15507 :param _content_type: force content-type for the request. 15508 :type _content_type: str, Optional 15509 :param _headers: set to override the headers for a single 15510 request; this effectively ignores the headers 15511 in the spec for a single request. 15512 :type _headers: dict, optional 15513 :param _host_index: set to override the host_index for a single 15514 request; this effectively ignores the host_index 15515 in the spec for a single request. 15516 :type _host_index: int, optional 15517 :return: Returns the result object. 15518 """ # noqa: E501 15519 15520 _param = self._update_image_item_using_url_serialize( 15521 board_id=board_id, 15522 item_id=item_id, 15523 image_update_request=image_update_request, 15524 _request_auth=_request_auth, 15525 _content_type=_content_type, 15526 _headers=_headers, 15527 _host_index=_host_index, 15528 ) 15529 15530 _response_types_map: Dict[str, Optional[str]] = { 15531 "200": "ImageItem", 15532 "400": None, 15533 "404": None, 15534 "409": None, 15535 "429": None, 15536 } 15537 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15538 response_data.read() 15539 return self.api_client.response_deserialize( 15540 response_data=response_data, 15541 response_types_map=_response_types_map, 15542 ).data
Update image item using URL
Updates an image item on a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param image_update_request: (required) :type image_update_request: ImageUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15607 @validate_call 15608 def delete_item( 15609 self, 15610 board_id: Annotated[ 15611 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15612 ], 15613 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15614 _request_timeout: Union[ 15615 None, 15616 Annotated[StrictFloat, Field(gt=0)], 15617 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15618 ] = None, 15619 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15620 _content_type: Optional[StrictStr] = None, 15621 _headers: Optional[Dict[StrictStr, Any]] = None, 15622 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15623 ) -> object: 15624 """Delete item 15625 15626 Deletes an item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15627 15628 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15629 :type board_id: str 15630 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15631 :type item_id: str 15632 :param _request_timeout: timeout setting for this request. If one 15633 number provided, it will be total request 15634 timeout. It can also be a pair (tuple) of 15635 (connection, read) timeouts. 15636 :type _request_timeout: int, tuple(int, int), optional 15637 :param _request_auth: set to override the auth_settings for an a single 15638 request; this effectively ignores the 15639 authentication in the spec for a single request. 15640 :type _request_auth: dict, optional 15641 :param _content_type: force content-type for the request. 15642 :type _content_type: str, Optional 15643 :param _headers: set to override the headers for a single 15644 request; this effectively ignores the headers 15645 in the spec for a single request. 15646 :type _headers: dict, optional 15647 :param _host_index: set to override the host_index for a single 15648 request; this effectively ignores the host_index 15649 in the spec for a single request. 15650 :type _host_index: int, optional 15651 :return: Returns the result object. 15652 """ # noqa: E501 15653 15654 _param = self._delete_item_serialize( 15655 board_id=board_id, 15656 item_id=item_id, 15657 _request_auth=_request_auth, 15658 _content_type=_content_type, 15659 _headers=_headers, 15660 _host_index=_host_index, 15661 ) 15662 15663 _response_types_map: Dict[str, Optional[str]] = { 15664 "204": "object", 15665 "400": None, 15666 "404": None, 15667 "429": None, 15668 } 15669 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15670 response_data.read() 15671 return self.api_client.response_deserialize( 15672 response_data=response_data, 15673 response_types_map=_response_types_map, 15674 ).data
Delete item
Deletes an item from a board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15728 @validate_call 15729 def delete_item_experimental( 15730 self, 15731 board_id: Annotated[ 15732 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 15733 ], 15734 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 15735 _request_timeout: Union[ 15736 None, 15737 Annotated[StrictFloat, Field(gt=0)], 15738 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15739 ] = None, 15740 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15741 _content_type: Optional[StrictStr] = None, 15742 _headers: Optional[Dict[StrictStr, Any]] = None, 15743 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15744 ) -> object: 15745 """Delete item 15746 15747 Deletes an item from a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 15748 15749 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 15750 :type board_id: str 15751 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 15752 :type item_id: str 15753 :param _request_timeout: timeout setting for this request. If one 15754 number provided, it will be total request 15755 timeout. It can also be a pair (tuple) of 15756 (connection, read) timeouts. 15757 :type _request_timeout: int, tuple(int, int), optional 15758 :param _request_auth: set to override the auth_settings for an a single 15759 request; this effectively ignores the 15760 authentication in the spec for a single request. 15761 :type _request_auth: dict, optional 15762 :param _content_type: force content-type for the request. 15763 :type _content_type: str, Optional 15764 :param _headers: set to override the headers for a single 15765 request; this effectively ignores the headers 15766 in the spec for a single request. 15767 :type _headers: dict, optional 15768 :param _host_index: set to override the host_index for a single 15769 request; this effectively ignores the host_index 15770 in the spec for a single request. 15771 :type _host_index: int, optional 15772 :return: Returns the result object. 15773 """ # noqa: E501 15774 15775 _param = self._delete_item_experimental_serialize( 15776 board_id=board_id, 15777 item_id=item_id, 15778 _request_auth=_request_auth, 15779 _content_type=_content_type, 15780 _headers=_headers, 15781 _host_index=_host_index, 15782 ) 15783 15784 _response_types_map: Dict[str, Optional[str]] = { 15785 "204": "object", 15786 "400": "CreateFrameItem400Response", 15787 "404": "CreateFrameItem400Response", 15788 "429": "CreateFrameItem400Response", 15789 } 15790 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15791 response_data.read() 15792 return self.api_client.response_deserialize( 15793 response_data=response_data, 15794 response_types_map=_response_types_map, 15795 ).data
Delete item
Deletes an item from a board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15849 @validate_call 15850 def get_items( 15851 self, 15852 board_id: Annotated[ 15853 StrictStr, 15854 Field( 15855 description="Unique identifier (ID) of the board for which you want to retrieve the list of available items." 15856 ), 15857 ], 15858 limit: Optional[Annotated[str, Field(strict=True)]] = None, 15859 type: Optional[StrictStr] = None, 15860 cursor: Optional[StrictStr] = None, 15861 _request_timeout: Union[ 15862 None, 15863 Annotated[StrictFloat, Field(gt=0)], 15864 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 15865 ] = None, 15866 _request_auth: Optional[Dict[StrictStr, Any]] = None, 15867 _content_type: Optional[StrictStr] = None, 15868 _headers: Optional[Dict[StrictStr, Any]] = None, 15869 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 15870 ) -> GenericItemCursorPaged: 15871 """Get items on board 15872 15873 Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 15874 15875 :param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) 15876 :type board_id: str 15877 :param limit: 15878 :type limit: str 15879 :param type: 15880 :type type: str 15881 :param cursor: 15882 :type cursor: str 15883 :param _request_timeout: timeout setting for this request. If one 15884 number provided, it will be total request 15885 timeout. It can also be a pair (tuple) of 15886 (connection, read) timeouts. 15887 :type _request_timeout: int, tuple(int, int), optional 15888 :param _request_auth: set to override the auth_settings for an a single 15889 request; this effectively ignores the 15890 authentication in the spec for a single request. 15891 :type _request_auth: dict, optional 15892 :param _content_type: force content-type for the request. 15893 :type _content_type: str, Optional 15894 :param _headers: set to override the headers for a single 15895 request; this effectively ignores the headers 15896 in the spec for a single request. 15897 :type _headers: dict, optional 15898 :param _host_index: set to override the host_index for a single 15899 request; this effectively ignores the host_index 15900 in the spec for a single request. 15901 :type _host_index: int, optional 15902 :return: Returns the result object. 15903 """ # noqa: E501 15904 15905 _param = self._get_items_serialize( 15906 board_id=board_id, 15907 limit=limit, 15908 type=type, 15909 cursor=cursor, 15910 _request_auth=_request_auth, 15911 _content_type=_content_type, 15912 _headers=_headers, 15913 _host_index=_host_index, 15914 ) 15915 15916 _response_types_map: Dict[str, Optional[str]] = { 15917 "200": "GenericItemCursorPaged", 15918 "400": None, 15919 "404": None, 15920 "429": None, 15921 } 15922 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 15923 response_data.read() 15924 return self.api_client.response_deserialize( 15925 response_data=response_data, 15926 response_types_map=_response_types_map, 15927 ).data
Get items on board
Retrieves a list of items for a specific board. You can retrieve all items on the board, a list of child items inside a parent item, or a list of specific types of items by specifying URL query parameter values. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request. For example, if you set the limit
query parameter to 10
and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id: Unique identifier (ID) of the board for which you want to retrieve the list of available items. (required) :type board_id: str :param limit: :type limit: str :param type: :type type: str :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
15993 @validate_call 15994 def get_items_within_frame( 15995 self, 15996 board_id_platform_containers: Annotated[ 15997 StrictStr, 15998 Field( 15999 description="Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items." 16000 ), 16001 ], 16002 parent_item_id: Annotated[ 16003 str, 16004 Field( 16005 strict=True, description="ID of the frame for which you want to retrieve the list of available items." 16006 ), 16007 ], 16008 limit: Optional[Annotated[str, Field(strict=True)]] = None, 16009 type: Optional[StrictStr] = None, 16010 cursor: Optional[StrictStr] = None, 16011 _request_timeout: Union[ 16012 None, 16013 Annotated[StrictFloat, Field(gt=0)], 16014 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16015 ] = None, 16016 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16017 _content_type: Optional[StrictStr] = None, 16018 _headers: Optional[Dict[StrictStr, Any]] = None, 16019 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16020 ) -> GenericItemCursorPaged: 16021 """Get items within frame 16022 16023 Retrieves a list of items within a specific frame. A frame is a parent item and all items within a frame are child items. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the `cursor` parameter equal to the `cursor` value you received in the response of the previous request. For example, if you set the `limit` query parameter to `10` and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is `foo`. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to `foo`.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16024 16025 :param board_id_platform_containers: Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items. (required) 16026 :type board_id_platform_containers: str 16027 :param parent_item_id: ID of the frame for which you want to retrieve the list of available items. (required) 16028 :type parent_item_id: str 16029 :param limit: 16030 :type limit: str 16031 :param type: 16032 :type type: str 16033 :param cursor: 16034 :type cursor: str 16035 :param _request_timeout: timeout setting for this request. If one 16036 number provided, it will be total request 16037 timeout. It can also be a pair (tuple) of 16038 (connection, read) timeouts. 16039 :type _request_timeout: int, tuple(int, int), optional 16040 :param _request_auth: set to override the auth_settings for an a single 16041 request; this effectively ignores the 16042 authentication in the spec for a single request. 16043 :type _request_auth: dict, optional 16044 :param _content_type: force content-type for the request. 16045 :type _content_type: str, Optional 16046 :param _headers: set to override the headers for a single 16047 request; this effectively ignores the headers 16048 in the spec for a single request. 16049 :type _headers: dict, optional 16050 :param _host_index: set to override the host_index for a single 16051 request; this effectively ignores the host_index 16052 in the spec for a single request. 16053 :type _host_index: int, optional 16054 :return: Returns the result object. 16055 """ # noqa: E501 16056 16057 _param = self._get_items_within_frame_serialize( 16058 board_id_platform_containers=board_id_platform_containers, 16059 parent_item_id=parent_item_id, 16060 limit=limit, 16061 type=type, 16062 cursor=cursor, 16063 _request_auth=_request_auth, 16064 _content_type=_content_type, 16065 _headers=_headers, 16066 _host_index=_host_index, 16067 ) 16068 16069 _response_types_map: Dict[str, Optional[str]] = { 16070 "200": "GenericItemCursorPaged", 16071 "400": "CreateFrameItem400Response", 16072 "404": "CreateFrameItem400Response", 16073 "429": "CreateFrameItem400Response", 16074 } 16075 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16076 response_data.read() 16077 return self.api_client.response_deserialize( 16078 response_data=response_data, 16079 response_types_map=_response_types_map, 16080 ).data
Get items within frame
Retrieves a list of items within a specific frame. A frame is a parent item and all items within a frame are child items. This method returns results using a cursor-based approach. A cursor-paginated method returns a portion of the total set of results based on the limit specified and a cursor that points to the next portion of the results. To retrieve the next portion of the collection, on your next call to the same method, set the cursor
parameter equal to the cursor
value you received in the response of the previous request. For example, if you set the limit
query parameter to 10
and the board contains 20 objects, the first call will return information about the first 10 objects in the response along with a cursor parameter and value. In this example, let's say the cursor parameter value returned in the response is foo
. If you want to retrieve the next set of objects, on your next call to the same method, set the cursor parameter value to foo
.
Required scope
boards:readRate limiting
Level 2:param board_id_platform_containers: Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items. (required) :type board_id_platform_containers: str :param parent_item_id: ID of the frame for which you want to retrieve the list of available items. (required) :type parent_item_id: str :param limit: :type limit: str :param type: :type type: str :param cursor: :type cursor: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16151 @validate_call 16152 def get_specific_item( 16153 self, 16154 board_id: Annotated[ 16155 StrictStr, 16156 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 16157 ], 16158 item_id: Annotated[ 16159 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 16160 ], 16161 _request_timeout: Union[ 16162 None, 16163 Annotated[StrictFloat, Field(gt=0)], 16164 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16165 ] = None, 16166 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16167 _content_type: Optional[StrictStr] = None, 16168 _headers: Optional[Dict[StrictStr, Any]] = None, 16169 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16170 ) -> GenericItem: 16171 """Get specific item on board 16172 16173 Retrieves information for a specific item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 16174 16175 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 16176 :type board_id: str 16177 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 16178 :type item_id: str 16179 :param _request_timeout: timeout setting for this request. If one 16180 number provided, it will be total request 16181 timeout. It can also be a pair (tuple) of 16182 (connection, read) timeouts. 16183 :type _request_timeout: int, tuple(int, int), optional 16184 :param _request_auth: set to override the auth_settings for an a single 16185 request; this effectively ignores the 16186 authentication in the spec for a single request. 16187 :type _request_auth: dict, optional 16188 :param _content_type: force content-type for the request. 16189 :type _content_type: str, Optional 16190 :param _headers: set to override the headers for a single 16191 request; this effectively ignores the headers 16192 in the spec for a single request. 16193 :type _headers: dict, optional 16194 :param _host_index: set to override the host_index for a single 16195 request; this effectively ignores the host_index 16196 in the spec for a single request. 16197 :type _host_index: int, optional 16198 :return: Returns the result object. 16199 """ # noqa: E501 16200 16201 _param = self._get_specific_item_serialize( 16202 board_id=board_id, 16203 item_id=item_id, 16204 _request_auth=_request_auth, 16205 _content_type=_content_type, 16206 _headers=_headers, 16207 _host_index=_host_index, 16208 ) 16209 16210 _response_types_map: Dict[str, Optional[str]] = { 16211 "200": "GenericItem", 16212 "400": None, 16213 "404": None, 16214 "429": None, 16215 } 16216 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16217 response_data.read() 16218 return self.api_client.response_deserialize( 16219 response_data=response_data, 16220 response_types_map=_response_types_map, 16221 ).data
Get specific item on board
Retrieves information for a specific item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16275 @validate_call 16276 def update_item_position_or_parent( 16277 self, 16278 board_id: Annotated[ 16279 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 16280 ], 16281 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 16282 generic_item_update: GenericItemUpdate, 16283 _request_timeout: Union[ 16284 None, 16285 Annotated[StrictFloat, Field(gt=0)], 16286 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16287 ] = None, 16288 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16289 _content_type: Optional[StrictStr] = None, 16290 _headers: Optional[Dict[StrictStr, Any]] = None, 16291 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16292 ) -> GenericItem: 16293 """Update item position or parent 16294 16295 Updates the position or the parent of an item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16296 16297 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 16298 :type board_id: str 16299 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 16300 :type item_id: str 16301 :param generic_item_update: (required) 16302 :type generic_item_update: GenericItemUpdate 16303 :param _request_timeout: timeout setting for this request. If one 16304 number provided, it will be total request 16305 timeout. It can also be a pair (tuple) of 16306 (connection, read) timeouts. 16307 :type _request_timeout: int, tuple(int, int), optional 16308 :param _request_auth: set to override the auth_settings for an a single 16309 request; this effectively ignores the 16310 authentication in the spec for a single request. 16311 :type _request_auth: dict, optional 16312 :param _content_type: force content-type for the request. 16313 :type _content_type: str, Optional 16314 :param _headers: set to override the headers for a single 16315 request; this effectively ignores the headers 16316 in the spec for a single request. 16317 :type _headers: dict, optional 16318 :param _host_index: set to override the host_index for a single 16319 request; this effectively ignores the host_index 16320 in the spec for a single request. 16321 :type _host_index: int, optional 16322 :return: Returns the result object. 16323 """ # noqa: E501 16324 16325 _param = self._update_item_position_or_parent_serialize( 16326 board_id=board_id, 16327 item_id=item_id, 16328 generic_item_update=generic_item_update, 16329 _request_auth=_request_auth, 16330 _content_type=_content_type, 16331 _headers=_headers, 16332 _host_index=_host_index, 16333 ) 16334 16335 _response_types_map: Dict[str, Optional[str]] = { 16336 "200": "GenericItem", 16337 "400": None, 16338 "404": None, 16339 "429": None, 16340 } 16341 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16342 response_data.read() 16343 return self.api_client.response_deserialize( 16344 response_data=response_data, 16345 response_types_map=_response_types_map, 16346 ).data
Update item position or parent
Updates the position or the parent of an item on a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param generic_item_update: (required) :type generic_item_update: GenericItemUpdate :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16411 @validate_call 16412 def create_shape_item( 16413 self, 16414 board_id: Annotated[ 16415 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 16416 ], 16417 shape_create_request: ShapeCreateRequest, 16418 _request_timeout: Union[ 16419 None, 16420 Annotated[StrictFloat, Field(gt=0)], 16421 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16422 ] = None, 16423 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16424 _content_type: Optional[StrictStr] = None, 16425 _headers: Optional[Dict[StrictStr, Any]] = None, 16426 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16427 ) -> ShapeItem: 16428 """Create shape item 16429 16430 Adds a shape item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16431 16432 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 16433 :type board_id: str 16434 :param shape_create_request: (required) 16435 :type shape_create_request: ShapeCreateRequest 16436 :param _request_timeout: timeout setting for this request. If one 16437 number provided, it will be total request 16438 timeout. It can also be a pair (tuple) of 16439 (connection, read) timeouts. 16440 :type _request_timeout: int, tuple(int, int), optional 16441 :param _request_auth: set to override the auth_settings for an a single 16442 request; this effectively ignores the 16443 authentication in the spec for a single request. 16444 :type _request_auth: dict, optional 16445 :param _content_type: force content-type for the request. 16446 :type _content_type: str, Optional 16447 :param _headers: set to override the headers for a single 16448 request; this effectively ignores the headers 16449 in the spec for a single request. 16450 :type _headers: dict, optional 16451 :param _host_index: set to override the host_index for a single 16452 request; this effectively ignores the host_index 16453 in the spec for a single request. 16454 :type _host_index: int, optional 16455 :return: Returns the result object. 16456 """ # noqa: E501 16457 16458 _param = self._create_shape_item_serialize( 16459 board_id=board_id, 16460 shape_create_request=shape_create_request, 16461 _request_auth=_request_auth, 16462 _content_type=_content_type, 16463 _headers=_headers, 16464 _host_index=_host_index, 16465 ) 16466 16467 _response_types_map: Dict[str, Optional[str]] = { 16468 "201": "ShapeItem", 16469 "400": None, 16470 "404": None, 16471 "429": None, 16472 } 16473 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16474 response_data.read() 16475 return self.api_client.response_deserialize( 16476 response_data=response_data, 16477 response_types_map=_response_types_map, 16478 ).data
Create shape item
Adds a shape item to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param shape_create_request: (required) :type shape_create_request: ShapeCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16540 @validate_call 16541 def delete_shape_item( 16542 self, 16543 board_id: Annotated[ 16544 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 16545 ], 16546 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 16547 _request_timeout: Union[ 16548 None, 16549 Annotated[StrictFloat, Field(gt=0)], 16550 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16551 ] = None, 16552 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16553 _content_type: Optional[StrictStr] = None, 16554 _headers: Optional[Dict[StrictStr, Any]] = None, 16555 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16556 ) -> object: 16557 """Delete shape item 16558 16559 Deletes a shape item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 16560 16561 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 16562 :type board_id: str 16563 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 16564 :type item_id: str 16565 :param _request_timeout: timeout setting for this request. If one 16566 number provided, it will be total request 16567 timeout. It can also be a pair (tuple) of 16568 (connection, read) timeouts. 16569 :type _request_timeout: int, tuple(int, int), optional 16570 :param _request_auth: set to override the auth_settings for an a single 16571 request; this effectively ignores the 16572 authentication in the spec for a single request. 16573 :type _request_auth: dict, optional 16574 :param _content_type: force content-type for the request. 16575 :type _content_type: str, Optional 16576 :param _headers: set to override the headers for a single 16577 request; this effectively ignores the headers 16578 in the spec for a single request. 16579 :type _headers: dict, optional 16580 :param _host_index: set to override the host_index for a single 16581 request; this effectively ignores the host_index 16582 in the spec for a single request. 16583 :type _host_index: int, optional 16584 :return: Returns the result object. 16585 """ # noqa: E501 16586 16587 _param = self._delete_shape_item_serialize( 16588 board_id=board_id, 16589 item_id=item_id, 16590 _request_auth=_request_auth, 16591 _content_type=_content_type, 16592 _headers=_headers, 16593 _host_index=_host_index, 16594 ) 16595 16596 _response_types_map: Dict[str, Optional[str]] = { 16597 "204": "object", 16598 "400": None, 16599 "404": None, 16600 "429": None, 16601 } 16602 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16603 response_data.read() 16604 return self.api_client.response_deserialize( 16605 response_data=response_data, 16606 response_types_map=_response_types_map, 16607 ).data
Delete shape item
Deletes a shape item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16661 @validate_call 16662 def get_shape_item( 16663 self, 16664 board_id: Annotated[ 16665 StrictStr, 16666 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 16667 ], 16668 item_id: Annotated[ 16669 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 16670 ], 16671 _request_timeout: Union[ 16672 None, 16673 Annotated[StrictFloat, Field(gt=0)], 16674 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16675 ] = None, 16676 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16677 _content_type: Optional[StrictStr] = None, 16678 _headers: Optional[Dict[StrictStr, Any]] = None, 16679 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16680 ) -> ShapeItem: 16681 """Get shape item 16682 16683 Retrieves information for a specific shape item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 16684 16685 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 16686 :type board_id: str 16687 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 16688 :type item_id: str 16689 :param _request_timeout: timeout setting for this request. If one 16690 number provided, it will be total request 16691 timeout. It can also be a pair (tuple) of 16692 (connection, read) timeouts. 16693 :type _request_timeout: int, tuple(int, int), optional 16694 :param _request_auth: set to override the auth_settings for an a single 16695 request; this effectively ignores the 16696 authentication in the spec for a single request. 16697 :type _request_auth: dict, optional 16698 :param _content_type: force content-type for the request. 16699 :type _content_type: str, Optional 16700 :param _headers: set to override the headers for a single 16701 request; this effectively ignores the headers 16702 in the spec for a single request. 16703 :type _headers: dict, optional 16704 :param _host_index: set to override the host_index for a single 16705 request; this effectively ignores the host_index 16706 in the spec for a single request. 16707 :type _host_index: int, optional 16708 :return: Returns the result object. 16709 """ # noqa: E501 16710 16711 _param = self._get_shape_item_serialize( 16712 board_id=board_id, 16713 item_id=item_id, 16714 _request_auth=_request_auth, 16715 _content_type=_content_type, 16716 _headers=_headers, 16717 _host_index=_host_index, 16718 ) 16719 16720 _response_types_map: Dict[str, Optional[str]] = { 16721 "200": "ShapeItem", 16722 "400": None, 16723 "404": None, 16724 "429": None, 16725 } 16726 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16727 response_data.read() 16728 return self.api_client.response_deserialize( 16729 response_data=response_data, 16730 response_types_map=_response_types_map, 16731 ).data
Get shape item
Retrieves information for a specific shape item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16785 @validate_call 16786 def update_shape_item( 16787 self, 16788 board_id: Annotated[ 16789 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 16790 ], 16791 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 16792 shape_update_request: ShapeUpdateRequest, 16793 _request_timeout: Union[ 16794 None, 16795 Annotated[StrictFloat, Field(gt=0)], 16796 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16797 ] = None, 16798 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16799 _content_type: Optional[StrictStr] = None, 16800 _headers: Optional[Dict[StrictStr, Any]] = None, 16801 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16802 ) -> ShapeItem: 16803 """Update shape item 16804 16805 Updates a shape item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16806 16807 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 16808 :type board_id: str 16809 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 16810 :type item_id: str 16811 :param shape_update_request: (required) 16812 :type shape_update_request: ShapeUpdateRequest 16813 :param _request_timeout: timeout setting for this request. If one 16814 number provided, it will be total request 16815 timeout. It can also be a pair (tuple) of 16816 (connection, read) timeouts. 16817 :type _request_timeout: int, tuple(int, int), optional 16818 :param _request_auth: set to override the auth_settings for an a single 16819 request; this effectively ignores the 16820 authentication in the spec for a single request. 16821 :type _request_auth: dict, optional 16822 :param _content_type: force content-type for the request. 16823 :type _content_type: str, Optional 16824 :param _headers: set to override the headers for a single 16825 request; this effectively ignores the headers 16826 in the spec for a single request. 16827 :type _headers: dict, optional 16828 :param _host_index: set to override the host_index for a single 16829 request; this effectively ignores the host_index 16830 in the spec for a single request. 16831 :type _host_index: int, optional 16832 :return: Returns the result object. 16833 """ # noqa: E501 16834 16835 _param = self._update_shape_item_serialize( 16836 board_id=board_id, 16837 item_id=item_id, 16838 shape_update_request=shape_update_request, 16839 _request_auth=_request_auth, 16840 _content_type=_content_type, 16841 _headers=_headers, 16842 _host_index=_host_index, 16843 ) 16844 16845 _response_types_map: Dict[str, Optional[str]] = { 16846 "200": "ShapeItem", 16847 "400": None, 16848 "404": None, 16849 "409": None, 16850 "429": None, 16851 } 16852 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16853 response_data.read() 16854 return self.api_client.response_deserialize( 16855 response_data=response_data, 16856 response_types_map=_response_types_map, 16857 ).data
Update shape item
Updates a shape item on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param shape_update_request: (required) :type shape_update_request: ShapeUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
16922 @validate_call 16923 def create_sticky_note_item( 16924 self, 16925 board_id: Annotated[ 16926 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 16927 ], 16928 sticky_note_create_request: StickyNoteCreateRequest, 16929 _request_timeout: Union[ 16930 None, 16931 Annotated[StrictFloat, Field(gt=0)], 16932 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 16933 ] = None, 16934 _request_auth: Optional[Dict[StrictStr, Any]] = None, 16935 _content_type: Optional[StrictStr] = None, 16936 _headers: Optional[Dict[StrictStr, Any]] = None, 16937 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 16938 ) -> StickyNoteItem: 16939 """Create sticky note item 16940 16941 Adds a sticky note item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 16942 16943 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 16944 :type board_id: str 16945 :param sticky_note_create_request: (required) 16946 :type sticky_note_create_request: StickyNoteCreateRequest 16947 :param _request_timeout: timeout setting for this request. If one 16948 number provided, it will be total request 16949 timeout. It can also be a pair (tuple) of 16950 (connection, read) timeouts. 16951 :type _request_timeout: int, tuple(int, int), optional 16952 :param _request_auth: set to override the auth_settings for an a single 16953 request; this effectively ignores the 16954 authentication in the spec for a single request. 16955 :type _request_auth: dict, optional 16956 :param _content_type: force content-type for the request. 16957 :type _content_type: str, Optional 16958 :param _headers: set to override the headers for a single 16959 request; this effectively ignores the headers 16960 in the spec for a single request. 16961 :type _headers: dict, optional 16962 :param _host_index: set to override the host_index for a single 16963 request; this effectively ignores the host_index 16964 in the spec for a single request. 16965 :type _host_index: int, optional 16966 :return: Returns the result object. 16967 """ # noqa: E501 16968 16969 _param = self._create_sticky_note_item_serialize( 16970 board_id=board_id, 16971 sticky_note_create_request=sticky_note_create_request, 16972 _request_auth=_request_auth, 16973 _content_type=_content_type, 16974 _headers=_headers, 16975 _host_index=_host_index, 16976 ) 16977 16978 _response_types_map: Dict[str, Optional[str]] = { 16979 "201": "StickyNoteItem", 16980 "400": None, 16981 "404": None, 16982 "429": None, 16983 } 16984 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 16985 response_data.read() 16986 return self.api_client.response_deserialize( 16987 response_data=response_data, 16988 response_types_map=_response_types_map, 16989 ).data
Create sticky note item
Adds a sticky note item to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param sticky_note_create_request: (required) :type sticky_note_create_request: StickyNoteCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17051 @validate_call 17052 def delete_sticky_note_item( 17053 self, 17054 board_id: Annotated[ 17055 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 17056 ], 17057 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 17058 _request_timeout: Union[ 17059 None, 17060 Annotated[StrictFloat, Field(gt=0)], 17061 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17062 ] = None, 17063 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17064 _content_type: Optional[StrictStr] = None, 17065 _headers: Optional[Dict[StrictStr, Any]] = None, 17066 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17067 ) -> object: 17068 """Delete sticky note item 17069 17070 Deletes a sticky note item from the board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 17071 17072 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 17073 :type board_id: str 17074 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 17075 :type item_id: str 17076 :param _request_timeout: timeout setting for this request. If one 17077 number provided, it will be total request 17078 timeout. It can also be a pair (tuple) of 17079 (connection, read) timeouts. 17080 :type _request_timeout: int, tuple(int, int), optional 17081 :param _request_auth: set to override the auth_settings for an a single 17082 request; this effectively ignores the 17083 authentication in the spec for a single request. 17084 :type _request_auth: dict, optional 17085 :param _content_type: force content-type for the request. 17086 :type _content_type: str, Optional 17087 :param _headers: set to override the headers for a single 17088 request; this effectively ignores the headers 17089 in the spec for a single request. 17090 :type _headers: dict, optional 17091 :param _host_index: set to override the host_index for a single 17092 request; this effectively ignores the host_index 17093 in the spec for a single request. 17094 :type _host_index: int, optional 17095 :return: Returns the result object. 17096 """ # noqa: E501 17097 17098 _param = self._delete_sticky_note_item_serialize( 17099 board_id=board_id, 17100 item_id=item_id, 17101 _request_auth=_request_auth, 17102 _content_type=_content_type, 17103 _headers=_headers, 17104 _host_index=_host_index, 17105 ) 17106 17107 _response_types_map: Dict[str, Optional[str]] = { 17108 "204": "object", 17109 "400": None, 17110 "404": None, 17111 "429": None, 17112 } 17113 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17114 response_data.read() 17115 return self.api_client.response_deserialize( 17116 response_data=response_data, 17117 response_types_map=_response_types_map, 17118 ).data
Delete sticky note item
Deletes a sticky note item from the board.
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17172 @validate_call 17173 def get_sticky_note_item( 17174 self, 17175 board_id: Annotated[ 17176 StrictStr, 17177 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 17178 ], 17179 item_id: Annotated[ 17180 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 17181 ], 17182 _request_timeout: Union[ 17183 None, 17184 Annotated[StrictFloat, Field(gt=0)], 17185 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17186 ] = None, 17187 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17188 _content_type: Optional[StrictStr] = None, 17189 _headers: Optional[Dict[StrictStr, Any]] = None, 17190 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17191 ) -> StickyNoteItem: 17192 """Get sticky note item 17193 17194 Retrieves information for a specific sticky note item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17195 17196 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 17197 :type board_id: str 17198 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 17199 :type item_id: str 17200 :param _request_timeout: timeout setting for this request. If one 17201 number provided, it will be total request 17202 timeout. It can also be a pair (tuple) of 17203 (connection, read) timeouts. 17204 :type _request_timeout: int, tuple(int, int), optional 17205 :param _request_auth: set to override the auth_settings for an a single 17206 request; this effectively ignores the 17207 authentication in the spec for a single request. 17208 :type _request_auth: dict, optional 17209 :param _content_type: force content-type for the request. 17210 :type _content_type: str, Optional 17211 :param _headers: set to override the headers for a single 17212 request; this effectively ignores the headers 17213 in the spec for a single request. 17214 :type _headers: dict, optional 17215 :param _host_index: set to override the host_index for a single 17216 request; this effectively ignores the host_index 17217 in the spec for a single request. 17218 :type _host_index: int, optional 17219 :return: Returns the result object. 17220 """ # noqa: E501 17221 17222 _param = self._get_sticky_note_item_serialize( 17223 board_id=board_id, 17224 item_id=item_id, 17225 _request_auth=_request_auth, 17226 _content_type=_content_type, 17227 _headers=_headers, 17228 _host_index=_host_index, 17229 ) 17230 17231 _response_types_map: Dict[str, Optional[str]] = { 17232 "200": "StickyNoteItem", 17233 "400": None, 17234 "404": None, 17235 "429": None, 17236 } 17237 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17238 response_data.read() 17239 return self.api_client.response_deserialize( 17240 response_data=response_data, 17241 response_types_map=_response_types_map, 17242 ).data
Get sticky note item
Retrieves information for a specific sticky note item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17296 @validate_call 17297 def update_sticky_note_item( 17298 self, 17299 board_id: Annotated[ 17300 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 17301 ], 17302 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 17303 sticky_note_update_request: StickyNoteUpdateRequest, 17304 _request_timeout: Union[ 17305 None, 17306 Annotated[StrictFloat, Field(gt=0)], 17307 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17308 ] = None, 17309 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17310 _content_type: Optional[StrictStr] = None, 17311 _headers: Optional[Dict[StrictStr, Any]] = None, 17312 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17313 ) -> StickyNoteItem: 17314 """Update sticky note item 17315 17316 Updates a sticky note item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 17317 17318 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 17319 :type board_id: str 17320 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 17321 :type item_id: str 17322 :param sticky_note_update_request: (required) 17323 :type sticky_note_update_request: StickyNoteUpdateRequest 17324 :param _request_timeout: timeout setting for this request. If one 17325 number provided, it will be total request 17326 timeout. It can also be a pair (tuple) of 17327 (connection, read) timeouts. 17328 :type _request_timeout: int, tuple(int, int), optional 17329 :param _request_auth: set to override the auth_settings for an a single 17330 request; this effectively ignores the 17331 authentication in the spec for a single request. 17332 :type _request_auth: dict, optional 17333 :param _content_type: force content-type for the request. 17334 :type _content_type: str, Optional 17335 :param _headers: set to override the headers for a single 17336 request; this effectively ignores the headers 17337 in the spec for a single request. 17338 :type _headers: dict, optional 17339 :param _host_index: set to override the host_index for a single 17340 request; this effectively ignores the host_index 17341 in the spec for a single request. 17342 :type _host_index: int, optional 17343 :return: Returns the result object. 17344 """ # noqa: E501 17345 17346 _param = self._update_sticky_note_item_serialize( 17347 board_id=board_id, 17348 item_id=item_id, 17349 sticky_note_update_request=sticky_note_update_request, 17350 _request_auth=_request_auth, 17351 _content_type=_content_type, 17352 _headers=_headers, 17353 _host_index=_host_index, 17354 ) 17355 17356 _response_types_map: Dict[str, Optional[str]] = { 17357 "200": "StickyNoteItem", 17358 "400": None, 17359 "404": None, 17360 "409": None, 17361 "429": None, 17362 } 17363 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17364 response_data.read() 17365 return self.api_client.response_deserialize( 17366 response_data=response_data, 17367 response_types_map=_response_types_map, 17368 ).data
Update sticky note item
Updates a sticky note item on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param sticky_note_update_request: (required) :type sticky_note_update_request: StickyNoteUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17433 @validate_call 17434 def attach_tag_to_item( 17435 self, 17436 board_id_platform_tags: Annotated[ 17437 StrictStr, 17438 Field(description="Unique identifier (ID) of the board with the item that you want to add a tag to."), 17439 ], 17440 item_id: Annotated[ 17441 StrictStr, Field(description="Unique identifier (ID) of the item to which you want to add a tag.") 17442 ], 17443 tag_id: Annotated[ 17444 StrictStr, Field(description="Unique identifier (ID) of the tag you want to add to the item.") 17445 ], 17446 _request_timeout: Union[ 17447 None, 17448 Annotated[StrictFloat, Field(gt=0)], 17449 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17450 ] = None, 17451 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17452 _content_type: Optional[StrictStr] = None, 17453 _headers: Optional[Dict[StrictStr, Any]] = None, 17454 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17455 ) -> object: 17456 """Attach tag to item 17457 17458 Attach an existing tag to the specified item. Card and sticky note items can have up to 8 tags. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17459 17460 :param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to add a tag to. (required) 17461 :type board_id_platform_tags: str 17462 :param item_id: Unique identifier (ID) of the item to which you want to add a tag. (required) 17463 :type item_id: str 17464 :param tag_id: Unique identifier (ID) of the tag you want to add to the item. (required) 17465 :type tag_id: str 17466 :param _request_timeout: timeout setting for this request. If one 17467 number provided, it will be total request 17468 timeout. It can also be a pair (tuple) of 17469 (connection, read) timeouts. 17470 :type _request_timeout: int, tuple(int, int), optional 17471 :param _request_auth: set to override the auth_settings for an a single 17472 request; this effectively ignores the 17473 authentication in the spec for a single request. 17474 :type _request_auth: dict, optional 17475 :param _content_type: force content-type for the request. 17476 :type _content_type: str, Optional 17477 :param _headers: set to override the headers for a single 17478 request; this effectively ignores the headers 17479 in the spec for a single request. 17480 :type _headers: dict, optional 17481 :param _host_index: set to override the host_index for a single 17482 request; this effectively ignores the host_index 17483 in the spec for a single request. 17484 :type _host_index: int, optional 17485 :return: Returns the result object. 17486 """ # noqa: E501 17487 17488 _param = self._attach_tag_to_item_serialize( 17489 board_id_platform_tags=board_id_platform_tags, 17490 item_id=item_id, 17491 tag_id=tag_id, 17492 _request_auth=_request_auth, 17493 _content_type=_content_type, 17494 _headers=_headers, 17495 _host_index=_host_index, 17496 ) 17497 17498 _response_types_map: Dict[str, Optional[str]] = { 17499 "204": "object", 17500 "400": "GetTagsFromItem400Response", 17501 "404": "GetTagsFromItem400Response", 17502 "429": "GetTagsFromItem400Response", 17503 } 17504 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17505 response_data.read() 17506 return self.api_client.response_deserialize( 17507 response_data=response_data, 17508 response_types_map=_response_types_map, 17509 ).data
Attach tag to item
Attach an existing tag to the specified item. Card and sticky note items can have up to 8 tags.
Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: Remove tag from item, Update tag, Delete tag.
Required scope
boards:writeRate limiting
Level 1:param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to add a tag to. (required) :type board_id_platform_tags: str :param item_id: Unique identifier (ID) of the item to which you want to add a tag. (required) :type item_id: str :param tag_id: Unique identifier (ID) of the tag you want to add to the item. (required) :type tag_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17568 @validate_call 17569 def create_tag( 17570 self, 17571 board_id: Annotated[ 17572 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the tag.") 17573 ], 17574 tag_create_request: TagCreateRequest, 17575 _request_timeout: Union[ 17576 None, 17577 Annotated[StrictFloat, Field(gt=0)], 17578 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17579 ] = None, 17580 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17581 _content_type: Optional[StrictStr] = None, 17582 _headers: Optional[Dict[StrictStr, Any]] = None, 17583 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17584 ) -> TagWithLinks: 17585 """Create tag 17586 17587 Creates a tag on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17588 17589 :param board_id: Unique identifier (ID) of the board where you want to create the tag. (required) 17590 :type board_id: str 17591 :param tag_create_request: (required) 17592 :type tag_create_request: TagCreateRequest 17593 :param _request_timeout: timeout setting for this request. If one 17594 number provided, it will be total request 17595 timeout. It can also be a pair (tuple) of 17596 (connection, read) timeouts. 17597 :type _request_timeout: int, tuple(int, int), optional 17598 :param _request_auth: set to override the auth_settings for an a single 17599 request; this effectively ignores the 17600 authentication in the spec for a single request. 17601 :type _request_auth: dict, optional 17602 :param _content_type: force content-type for the request. 17603 :type _content_type: str, Optional 17604 :param _headers: set to override the headers for a single 17605 request; this effectively ignores the headers 17606 in the spec for a single request. 17607 :type _headers: dict, optional 17608 :param _host_index: set to override the host_index for a single 17609 request; this effectively ignores the host_index 17610 in the spec for a single request. 17611 :type _host_index: int, optional 17612 :return: Returns the result object. 17613 """ # noqa: E501 17614 17615 _param = self._create_tag_serialize( 17616 board_id=board_id, 17617 tag_create_request=tag_create_request, 17618 _request_auth=_request_auth, 17619 _content_type=_content_type, 17620 _headers=_headers, 17621 _host_index=_host_index, 17622 ) 17623 17624 _response_types_map: Dict[str, Optional[str]] = { 17625 "201": "TagWithLinks", 17626 "400": "GetTagsFromItem400Response", 17627 "404": "GetTagsFromItem400Response", 17628 "429": "GetTagsFromItem400Response", 17629 } 17630 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17631 response_data.read() 17632 return self.api_client.response_deserialize( 17633 response_data=response_data, 17634 response_types_map=_response_types_map, 17635 ).data
Create tag
Creates a tag on a board.
Required scope
boards:writeRate limiting
Level 1:param board_id: Unique identifier (ID) of the board where you want to create the tag. (required) :type board_id: str :param tag_create_request: (required) :type tag_create_request: TagCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17697 @validate_call 17698 def delete_tag( 17699 self, 17700 board_id: Annotated[ 17701 StrictStr, Field(description="Unique identifier (ID) of the board where you want to delete a specific tag.") 17702 ], 17703 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to delete.")], 17704 _request_timeout: Union[ 17705 None, 17706 Annotated[StrictFloat, Field(gt=0)], 17707 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17708 ] = None, 17709 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17710 _content_type: Optional[StrictStr] = None, 17711 _headers: Optional[Dict[StrictStr, Any]] = None, 17712 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17713 ) -> object: 17714 """Delete tag 17715 17716 Deletes the specified tag from the board. The tag is also removed from all cards and sticky notes on the board. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Update tag](https://developers.miro.com/reference/update-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17717 17718 :param board_id: Unique identifier (ID) of the board where you want to delete a specific tag. (required) 17719 :type board_id: str 17720 :param tag_id: Unique identifier (ID) of the tag that you want to delete. (required) 17721 :type tag_id: str 17722 :param _request_timeout: timeout setting for this request. If one 17723 number provided, it will be total request 17724 timeout. It can also be a pair (tuple) of 17725 (connection, read) timeouts. 17726 :type _request_timeout: int, tuple(int, int), optional 17727 :param _request_auth: set to override the auth_settings for an a single 17728 request; this effectively ignores the 17729 authentication in the spec for a single request. 17730 :type _request_auth: dict, optional 17731 :param _content_type: force content-type for the request. 17732 :type _content_type: str, Optional 17733 :param _headers: set to override the headers for a single 17734 request; this effectively ignores the headers 17735 in the spec for a single request. 17736 :type _headers: dict, optional 17737 :param _host_index: set to override the host_index for a single 17738 request; this effectively ignores the host_index 17739 in the spec for a single request. 17740 :type _host_index: int, optional 17741 :return: Returns the result object. 17742 """ # noqa: E501 17743 17744 _param = self._delete_tag_serialize( 17745 board_id=board_id, 17746 tag_id=tag_id, 17747 _request_auth=_request_auth, 17748 _content_type=_content_type, 17749 _headers=_headers, 17750 _host_index=_host_index, 17751 ) 17752 17753 _response_types_map: Dict[str, Optional[str]] = { 17754 "204": "object", 17755 "400": "GetTagsFromItem400Response", 17756 "404": "GetTagsFromItem400Response", 17757 "429": "GetTagsFromItem400Response", 17758 } 17759 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17760 response_data.read() 17761 return self.api_client.response_deserialize( 17762 response_data=response_data, 17763 response_types_map=_response_types_map, 17764 ).data
Delete tag
Deletes the specified tag from the board. The tag is also removed from all cards and sticky notes on the board.
Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: Attach tag to item, Remove tag from item, Update tag.
Required scope
boards:writeRate limiting
Level 1:param board_id: Unique identifier (ID) of the board where you want to delete a specific tag. (required) :type board_id: str :param tag_id: Unique identifier (ID) of the tag that you want to delete. (required) :type tag_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17818 @validate_call 17819 def get_items_by_tag( 17820 self, 17821 board_id_platform_tags: Annotated[ 17822 StrictStr, 17823 Field(description="Unique identifier (ID) of the board where you want to retrieve a specific tag."), 17824 ], 17825 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to retrieve.")], 17826 limit: Optional[Annotated[str, Field(strict=True)]] = None, 17827 offset: Optional[StrictStr] = None, 17828 _request_timeout: Union[ 17829 None, 17830 Annotated[StrictFloat, Field(gt=0)], 17831 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17832 ] = None, 17833 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17834 _content_type: Optional[StrictStr] = None, 17835 _headers: Optional[Dict[StrictStr, Any]] = None, 17836 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17837 ) -> ItemPagedResponse: 17838 """Get items by tag 17839 17840 Retrieves all the items that have the specified tag.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17841 17842 :param board_id_platform_tags: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) 17843 :type board_id_platform_tags: str 17844 :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) 17845 :type tag_id: str 17846 :param limit: 17847 :type limit: str 17848 :param offset: 17849 :type offset: str 17850 :param _request_timeout: timeout setting for this request. If one 17851 number provided, it will be total request 17852 timeout. It can also be a pair (tuple) of 17853 (connection, read) timeouts. 17854 :type _request_timeout: int, tuple(int, int), optional 17855 :param _request_auth: set to override the auth_settings for an a single 17856 request; this effectively ignores the 17857 authentication in the spec for a single request. 17858 :type _request_auth: dict, optional 17859 :param _content_type: force content-type for the request. 17860 :type _content_type: str, Optional 17861 :param _headers: set to override the headers for a single 17862 request; this effectively ignores the headers 17863 in the spec for a single request. 17864 :type _headers: dict, optional 17865 :param _host_index: set to override the host_index for a single 17866 request; this effectively ignores the host_index 17867 in the spec for a single request. 17868 :type _host_index: int, optional 17869 :return: Returns the result object. 17870 """ # noqa: E501 17871 17872 _param = self._get_items_by_tag_serialize( 17873 board_id_platform_tags=board_id_platform_tags, 17874 tag_id=tag_id, 17875 limit=limit, 17876 offset=offset, 17877 _request_auth=_request_auth, 17878 _content_type=_content_type, 17879 _headers=_headers, 17880 _host_index=_host_index, 17881 ) 17882 17883 _response_types_map: Dict[str, Optional[str]] = { 17884 "200": "ItemPagedResponse", 17885 "400": "GetTagsFromItem400Response", 17886 "404": "GetTagsFromItem400Response", 17887 "429": "GetTagsFromItem400Response", 17888 } 17889 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 17890 response_data.read() 17891 return self.api_client.response_deserialize( 17892 response_data=response_data, 17893 response_types_map=_response_types_map, 17894 ).data
Get items by tag
Retrieves all the items that have the specified tag.
Required scope
boards:readRate limiting
Level 1:param board_id_platform_tags: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) :type board_id_platform_tags: str :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) :type tag_id: str :param limit: :type limit: str :param offset: :type offset: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
17960 @validate_call 17961 def get_tag( 17962 self, 17963 board_id: Annotated[ 17964 StrictStr, 17965 Field(description="Unique identifier (ID) of the board where you want to retrieve a specific tag."), 17966 ], 17967 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to retrieve.")], 17968 _request_timeout: Union[ 17969 None, 17970 Annotated[StrictFloat, Field(gt=0)], 17971 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 17972 ] = None, 17973 _request_auth: Optional[Dict[StrictStr, Any]] = None, 17974 _content_type: Optional[StrictStr] = None, 17975 _headers: Optional[Dict[StrictStr, Any]] = None, 17976 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 17977 ) -> TagWithLinks: 17978 """Get tag 17979 17980 Retrieves information for a specific tag.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 17981 17982 :param board_id: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) 17983 :type board_id: str 17984 :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) 17985 :type tag_id: str 17986 :param _request_timeout: timeout setting for this request. If one 17987 number provided, it will be total request 17988 timeout. It can also be a pair (tuple) of 17989 (connection, read) timeouts. 17990 :type _request_timeout: int, tuple(int, int), optional 17991 :param _request_auth: set to override the auth_settings for an a single 17992 request; this effectively ignores the 17993 authentication in the spec for a single request. 17994 :type _request_auth: dict, optional 17995 :param _content_type: force content-type for the request. 17996 :type _content_type: str, Optional 17997 :param _headers: set to override the headers for a single 17998 request; this effectively ignores the headers 17999 in the spec for a single request. 18000 :type _headers: dict, optional 18001 :param _host_index: set to override the host_index for a single 18002 request; this effectively ignores the host_index 18003 in the spec for a single request. 18004 :type _host_index: int, optional 18005 :return: Returns the result object. 18006 """ # noqa: E501 18007 18008 _param = self._get_tag_serialize( 18009 board_id=board_id, 18010 tag_id=tag_id, 18011 _request_auth=_request_auth, 18012 _content_type=_content_type, 18013 _headers=_headers, 18014 _host_index=_host_index, 18015 ) 18016 18017 _response_types_map: Dict[str, Optional[str]] = { 18018 "200": "TagWithLinks", 18019 "400": "GetTagsFromItem400Response", 18020 "404": "GetTagsFromItem400Response", 18021 "429": "GetTagsFromItem400Response", 18022 } 18023 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18024 response_data.read() 18025 return self.api_client.response_deserialize( 18026 response_data=response_data, 18027 response_types_map=_response_types_map, 18028 ).data
Get tag
Retrieves information for a specific tag.
Required scope
boards:writeRate limiting
Level 1:param board_id: Unique identifier (ID) of the board where you want to retrieve a specific tag. (required) :type board_id: str :param tag_id: Unique identifier (ID) of the tag that you want to retrieve. (required) :type tag_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
18338 @validate_call 18339 def remove_tag_from_item( 18340 self, 18341 board_id_platform_tags: Annotated[ 18342 StrictStr, 18343 Field(description="Unique identifier (ID) of the board with the item that you want to remove a tag from."), 18344 ], 18345 item_id: Annotated[ 18346 StrictStr, Field(description="Unique identifier (ID) of the item that you want to remove the tag from.") 18347 ], 18348 tag_id: Annotated[ 18349 StrictStr, Field(description="Unique identifier (ID) of the tag that you want to remove from the item.") 18350 ], 18351 _request_timeout: Union[ 18352 None, 18353 Annotated[StrictFloat, Field(gt=0)], 18354 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18355 ] = None, 18356 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18357 _content_type: Optional[StrictStr] = None, 18358 _headers: Optional[Dict[StrictStr, Any]] = None, 18359 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18360 ) -> object: 18361 """Remove tag from item 18362 18363 Removes the specified tag from the specified item. The tag still exists on the board. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Update tag](https://developers.miro.com/reference/update-tag), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18364 18365 :param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to remove a tag from. (required) 18366 :type board_id_platform_tags: str 18367 :param item_id: Unique identifier (ID) of the item that you want to remove the tag from. (required) 18368 :type item_id: str 18369 :param tag_id: Unique identifier (ID) of the tag that you want to remove from the item. (required) 18370 :type tag_id: str 18371 :param _request_timeout: timeout setting for this request. If one 18372 number provided, it will be total request 18373 timeout. It can also be a pair (tuple) of 18374 (connection, read) timeouts. 18375 :type _request_timeout: int, tuple(int, int), optional 18376 :param _request_auth: set to override the auth_settings for an a single 18377 request; this effectively ignores the 18378 authentication in the spec for a single request. 18379 :type _request_auth: dict, optional 18380 :param _content_type: force content-type for the request. 18381 :type _content_type: str, Optional 18382 :param _headers: set to override the headers for a single 18383 request; this effectively ignores the headers 18384 in the spec for a single request. 18385 :type _headers: dict, optional 18386 :param _host_index: set to override the host_index for a single 18387 request; this effectively ignores the host_index 18388 in the spec for a single request. 18389 :type _host_index: int, optional 18390 :return: Returns the result object. 18391 """ # noqa: E501 18392 18393 _param = self._remove_tag_from_item_serialize( 18394 board_id_platform_tags=board_id_platform_tags, 18395 item_id=item_id, 18396 tag_id=tag_id, 18397 _request_auth=_request_auth, 18398 _content_type=_content_type, 18399 _headers=_headers, 18400 _host_index=_host_index, 18401 ) 18402 18403 _response_types_map: Dict[str, Optional[str]] = { 18404 "204": "object", 18405 "400": "GetTagsFromItem400Response", 18406 "404": "GetTagsFromItem400Response", 18407 "429": "GetTagsFromItem400Response", 18408 } 18409 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18410 response_data.read() 18411 return self.api_client.response_deserialize( 18412 response_data=response_data, 18413 response_types_map=_response_types_map, 18414 ).data
Remove tag from item
Removes the specified tag from the specified item. The tag still exists on the board.
Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: Attach tag to item, Update tag, Delete tag.
Required scope
boards:writeRate limiting
Level 1:param board_id_platform_tags: Unique identifier (ID) of the board with the item that you want to remove a tag from. (required) :type board_id_platform_tags: str :param item_id: Unique identifier (ID) of the item that you want to remove the tag from. (required) :type item_id: str :param tag_id: Unique identifier (ID) of the tag that you want to remove from the item. (required) :type tag_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
18473 @validate_call 18474 def update_tag( 18475 self, 18476 board_id: Annotated[ 18477 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update a specific tag.") 18478 ], 18479 tag_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the tag that you want to update.")], 18480 tag_update_request: TagUpdateRequest, 18481 _request_timeout: Union[ 18482 None, 18483 Annotated[StrictFloat, Field(gt=0)], 18484 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18485 ] = None, 18486 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18487 _content_type: Optional[StrictStr] = None, 18488 _headers: Optional[Dict[StrictStr, Any]] = None, 18489 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18490 ) -> TagWithLinks: 18491 """Update tag 18492 18493 Updates a tag based on the data properties provided in the request body. <br><blockquote><strong>Note:</strong> Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: [Attach tag to item](https://developers.miro.com/reference/attach-tag-to-item), [Remove tag from item](https://developers.miro.com/reference/remove-tag-from-item), [Delete tag](https://developers.miro.com/reference/delete-tag).</blockquote><br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18494 18495 :param board_id: Unique identifier (ID) of the board where you want to update a specific tag. (required) 18496 :type board_id: str 18497 :param tag_id: Unique identifier (ID) of the tag that you want to update. (required) 18498 :type tag_id: str 18499 :param tag_update_request: (required) 18500 :type tag_update_request: TagUpdateRequest 18501 :param _request_timeout: timeout setting for this request. If one 18502 number provided, it will be total request 18503 timeout. It can also be a pair (tuple) of 18504 (connection, read) timeouts. 18505 :type _request_timeout: int, tuple(int, int), optional 18506 :param _request_auth: set to override the auth_settings for an a single 18507 request; this effectively ignores the 18508 authentication in the spec for a single request. 18509 :type _request_auth: dict, optional 18510 :param _content_type: force content-type for the request. 18511 :type _content_type: str, Optional 18512 :param _headers: set to override the headers for a single 18513 request; this effectively ignores the headers 18514 in the spec for a single request. 18515 :type _headers: dict, optional 18516 :param _host_index: set to override the host_index for a single 18517 request; this effectively ignores the host_index 18518 in the spec for a single request. 18519 :type _host_index: int, optional 18520 :return: Returns the result object. 18521 """ # noqa: E501 18522 18523 _param = self._update_tag_serialize( 18524 board_id=board_id, 18525 tag_id=tag_id, 18526 tag_update_request=tag_update_request, 18527 _request_auth=_request_auth, 18528 _content_type=_content_type, 18529 _headers=_headers, 18530 _host_index=_host_index, 18531 ) 18532 18533 _response_types_map: Dict[str, Optional[str]] = { 18534 "200": "TagWithLinks", 18535 "400": "GetTagsFromItem400Response", 18536 "404": "GetTagsFromItem400Response", 18537 "429": "GetTagsFromItem400Response", 18538 } 18539 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18540 response_data.read() 18541 return self.api_client.response_deserialize( 18542 response_data=response_data, 18543 response_types_map=_response_types_map, 18544 ).data
Update tag
Updates a tag based on the data properties provided in the request body.
Note: Updates to tags made via the REST API will not be reflected on the board in realtime. To see REST API updates to tags on a board, you need to refresh the board. This applies to the following endpoints: Attach tag to item, Remove tag from item, Delete tag.
Required scope
boards:writeRate limiting
Level 1:param board_id: Unique identifier (ID) of the board where you want to update a specific tag. (required) :type board_id: str :param tag_id: Unique identifier (ID) of the tag that you want to update. (required) :type tag_id: str :param tag_update_request: (required) :type tag_update_request: TagUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
18609 @validate_call 18610 def create_text_item( 18611 self, 18612 board_id: Annotated[ 18613 StrictStr, Field(description="Unique identifier (ID) of the board where you want to create the item.") 18614 ], 18615 text_create_request: TextCreateRequest, 18616 _request_timeout: Union[ 18617 None, 18618 Annotated[StrictFloat, Field(gt=0)], 18619 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18620 ] = None, 18621 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18622 _content_type: Optional[StrictStr] = None, 18623 _headers: Optional[Dict[StrictStr, Any]] = None, 18624 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18625 ) -> TextItem: 18626 """Create text item 18627 18628 Adds a text item to a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 18629 18630 :param board_id: Unique identifier (ID) of the board where you want to create the item. (required) 18631 :type board_id: str 18632 :param text_create_request: (required) 18633 :type text_create_request: TextCreateRequest 18634 :param _request_timeout: timeout setting for this request. If one 18635 number provided, it will be total request 18636 timeout. It can also be a pair (tuple) of 18637 (connection, read) timeouts. 18638 :type _request_timeout: int, tuple(int, int), optional 18639 :param _request_auth: set to override the auth_settings for an a single 18640 request; this effectively ignores the 18641 authentication in the spec for a single request. 18642 :type _request_auth: dict, optional 18643 :param _content_type: force content-type for the request. 18644 :type _content_type: str, Optional 18645 :param _headers: set to override the headers for a single 18646 request; this effectively ignores the headers 18647 in the spec for a single request. 18648 :type _headers: dict, optional 18649 :param _host_index: set to override the host_index for a single 18650 request; this effectively ignores the host_index 18651 in the spec for a single request. 18652 :type _host_index: int, optional 18653 :return: Returns the result object. 18654 """ # noqa: E501 18655 18656 _param = self._create_text_item_serialize( 18657 board_id=board_id, 18658 text_create_request=text_create_request, 18659 _request_auth=_request_auth, 18660 _content_type=_content_type, 18661 _headers=_headers, 18662 _host_index=_host_index, 18663 ) 18664 18665 _response_types_map: Dict[str, Optional[str]] = { 18666 "201": "TextItem", 18667 "400": None, 18668 "404": None, 18669 "429": None, 18670 } 18671 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18672 response_data.read() 18673 return self.api_client.response_deserialize( 18674 response_data=response_data, 18675 response_types_map=_response_types_map, 18676 ).data
Create text item
Adds a text item to a board.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to create the item. (required) :type board_id: str :param text_create_request: (required) :type text_create_request: TextCreateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
18738 @validate_call 18739 def delete_text_item( 18740 self, 18741 board_id: Annotated[ 18742 StrictStr, Field(description="Unique identifier (ID) of the board from which you want to delete the item.") 18743 ], 18744 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to delete.")], 18745 _request_timeout: Union[ 18746 None, 18747 Annotated[StrictFloat, Field(gt=0)], 18748 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18749 ] = None, 18750 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18751 _content_type: Optional[StrictStr] = None, 18752 _headers: Optional[Dict[StrictStr, Any]] = None, 18753 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18754 ) -> object: 18755 """Delete text item 18756 18757 Deletes a text item from the board<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 3</a><br/> 18758 18759 :param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) 18760 :type board_id: str 18761 :param item_id: Unique identifier (ID) of the item that you want to delete. (required) 18762 :type item_id: str 18763 :param _request_timeout: timeout setting for this request. If one 18764 number provided, it will be total request 18765 timeout. It can also be a pair (tuple) of 18766 (connection, read) timeouts. 18767 :type _request_timeout: int, tuple(int, int), optional 18768 :param _request_auth: set to override the auth_settings for an a single 18769 request; this effectively ignores the 18770 authentication in the spec for a single request. 18771 :type _request_auth: dict, optional 18772 :param _content_type: force content-type for the request. 18773 :type _content_type: str, Optional 18774 :param _headers: set to override the headers for a single 18775 request; this effectively ignores the headers 18776 in the spec for a single request. 18777 :type _headers: dict, optional 18778 :param _host_index: set to override the host_index for a single 18779 request; this effectively ignores the host_index 18780 in the spec for a single request. 18781 :type _host_index: int, optional 18782 :return: Returns the result object. 18783 """ # noqa: E501 18784 18785 _param = self._delete_text_item_serialize( 18786 board_id=board_id, 18787 item_id=item_id, 18788 _request_auth=_request_auth, 18789 _content_type=_content_type, 18790 _headers=_headers, 18791 _host_index=_host_index, 18792 ) 18793 18794 _response_types_map: Dict[str, Optional[str]] = { 18795 "204": "object", 18796 "400": None, 18797 "404": None, 18798 "429": None, 18799 } 18800 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18801 response_data.read() 18802 return self.api_client.response_deserialize( 18803 response_data=response_data, 18804 response_types_map=_response_types_map, 18805 ).data
Delete text item
Deletes a text item from the board
Required scope
boards:writeRate limiting
Level 3:param board_id: Unique identifier (ID) of the board from which you want to delete the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to delete. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
18859 @validate_call 18860 def get_text_item( 18861 self, 18862 board_id: Annotated[ 18863 StrictStr, 18864 Field(description="Unique identifier (ID) of the board from which you want to retrieve a specific item."), 18865 ], 18866 item_id: Annotated[ 18867 StrictStr, Field(description="Unique identifier (ID) of the item that you want to retrieve.") 18868 ], 18869 _request_timeout: Union[ 18870 None, 18871 Annotated[StrictFloat, Field(gt=0)], 18872 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18873 ] = None, 18874 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18875 _content_type: Optional[StrictStr] = None, 18876 _headers: Optional[Dict[StrictStr, Any]] = None, 18877 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 18878 ) -> TextItem: 18879 """Get text item 18880 18881 Retrieves information for a specific text item on a board.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:read</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 1</a><br/> 18882 18883 :param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) 18884 :type board_id: str 18885 :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) 18886 :type item_id: str 18887 :param _request_timeout: timeout setting for this request. If one 18888 number provided, it will be total request 18889 timeout. It can also be a pair (tuple) of 18890 (connection, read) timeouts. 18891 :type _request_timeout: int, tuple(int, int), optional 18892 :param _request_auth: set to override the auth_settings for an a single 18893 request; this effectively ignores the 18894 authentication in the spec for a single request. 18895 :type _request_auth: dict, optional 18896 :param _content_type: force content-type for the request. 18897 :type _content_type: str, Optional 18898 :param _headers: set to override the headers for a single 18899 request; this effectively ignores the headers 18900 in the spec for a single request. 18901 :type _headers: dict, optional 18902 :param _host_index: set to override the host_index for a single 18903 request; this effectively ignores the host_index 18904 in the spec for a single request. 18905 :type _host_index: int, optional 18906 :return: Returns the result object. 18907 """ # noqa: E501 18908 18909 _param = self._get_text_item_serialize( 18910 board_id=board_id, 18911 item_id=item_id, 18912 _request_auth=_request_auth, 18913 _content_type=_content_type, 18914 _headers=_headers, 18915 _host_index=_host_index, 18916 ) 18917 18918 _response_types_map: Dict[str, Optional[str]] = { 18919 "200": "TextItem", 18920 "400": None, 18921 "404": None, 18922 "429": None, 18923 } 18924 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 18925 response_data.read() 18926 return self.api_client.response_deserialize( 18927 response_data=response_data, 18928 response_types_map=_response_types_map, 18929 ).data
Get text item
Retrieves information for a specific text item on a board.
Required scope
boards:readRate limiting
Level 1:param board_id: Unique identifier (ID) of the board from which you want to retrieve a specific item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to retrieve. (required) :type item_id: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
18983 @validate_call 18984 def update_text_item( 18985 self, 18986 board_id: Annotated[ 18987 StrictStr, Field(description="Unique identifier (ID) of the board where you want to update the item.") 18988 ], 18989 item_id: Annotated[StrictStr, Field(description="Unique identifier (ID) of the item that you want to update.")], 18990 text_update_request: TextUpdateRequest, 18991 _request_timeout: Union[ 18992 None, 18993 Annotated[StrictFloat, Field(gt=0)], 18994 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 18995 ] = None, 18996 _request_auth: Optional[Dict[StrictStr, Any]] = None, 18997 _content_type: Optional[StrictStr] = None, 18998 _headers: Optional[Dict[StrictStr, Any]] = None, 18999 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19000 ) -> TextItem: 19001 """Update text item 19002 19003 Updates a text item on a board based on the data and style properties provided in the request body.<br/><h3>Required scope</h3> <a target=_blank href=https://developers.miro.com/reference/scopes>boards:write</a> <br/><h3>Rate limiting</h3> <a target=_blank href=\"/docs/miro-rest-api-introduction#rate-limiting\">Level 2</a><br/> 19004 19005 :param board_id: Unique identifier (ID) of the board where you want to update the item. (required) 19006 :type board_id: str 19007 :param item_id: Unique identifier (ID) of the item that you want to update. (required) 19008 :type item_id: str 19009 :param text_update_request: (required) 19010 :type text_update_request: TextUpdateRequest 19011 :param _request_timeout: timeout setting for this request. If one 19012 number provided, it will be total request 19013 timeout. It can also be a pair (tuple) of 19014 (connection, read) timeouts. 19015 :type _request_timeout: int, tuple(int, int), optional 19016 :param _request_auth: set to override the auth_settings for an a single 19017 request; this effectively ignores the 19018 authentication in the spec for a single request. 19019 :type _request_auth: dict, optional 19020 :param _content_type: force content-type for the request. 19021 :type _content_type: str, Optional 19022 :param _headers: set to override the headers for a single 19023 request; this effectively ignores the headers 19024 in the spec for a single request. 19025 :type _headers: dict, optional 19026 :param _host_index: set to override the host_index for a single 19027 request; this effectively ignores the host_index 19028 in the spec for a single request. 19029 :type _host_index: int, optional 19030 :return: Returns the result object. 19031 """ # noqa: E501 19032 19033 _param = self._update_text_item_serialize( 19034 board_id=board_id, 19035 item_id=item_id, 19036 text_update_request=text_update_request, 19037 _request_auth=_request_auth, 19038 _content_type=_content_type, 19039 _headers=_headers, 19040 _host_index=_host_index, 19041 ) 19042 19043 _response_types_map: Dict[str, Optional[str]] = { 19044 "200": "TextItem", 19045 "400": None, 19046 "404": None, 19047 "409": None, 19048 "429": None, 19049 } 19050 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19051 response_data.read() 19052 return self.api_client.response_deserialize( 19053 response_data=response_data, 19054 response_types_map=_response_types_map, 19055 ).data
Update text item
Updates a text item on a board based on the data and style properties provided in the request body.
Required scope
boards:writeRate limiting
Level 2:param board_id: Unique identifier (ID) of the board where you want to update the item. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item that you want to update. (required) :type item_id: str :param text_update_request: (required) :type text_update_request: TextUpdateRequest :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
19120 @validate_call 19121 def revoke_token( 19122 self, 19123 access_token: Annotated[StrictStr, Field(description="Access token that you want to revoke")], 19124 _request_timeout: Union[ 19125 None, 19126 Annotated[StrictFloat, Field(gt=0)], 19127 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 19128 ] = None, 19129 _request_auth: Optional[Dict[StrictStr, Any]] = None, 19130 _content_type: Optional[StrictStr] = None, 19131 _headers: Optional[Dict[StrictStr, Any]] = None, 19132 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19133 ) -> None: 19134 """(Deprecated) Revoke token (v1) 19135 19136 <p><b>Please use the new revoke endpoint <code>/v2/oauth/revoke</code>. This endpoint is considered vulnerable and deprecated due to access token passed publicly in the URL.</b></p> Revoke the current access token. Revoking an access token means that the access token will no longer work. When an access token is revoked, the refresh token is also revoked and no longer valid. This does not uninstall the application for the user. 19137 19138 :param access_token: Access token that you want to revoke (required) 19139 :type access_token: str 19140 :param _request_timeout: timeout setting for this request. If one 19141 number provided, it will be total request 19142 timeout. It can also be a pair (tuple) of 19143 (connection, read) timeouts. 19144 :type _request_timeout: int, tuple(int, int), optional 19145 :param _request_auth: set to override the auth_settings for an a single 19146 request; this effectively ignores the 19147 authentication in the spec for a single request. 19148 :type _request_auth: dict, optional 19149 :param _content_type: force content-type for the request. 19150 :type _content_type: str, Optional 19151 :param _headers: set to override the headers for a single 19152 request; this effectively ignores the headers 19153 in the spec for a single request. 19154 :type _headers: dict, optional 19155 :param _host_index: set to override the host_index for a single 19156 request; this effectively ignores the host_index 19157 in the spec for a single request. 19158 :type _host_index: int, optional 19159 :return: Returns the result object. 19160 """ # noqa: E501 19161 warnings.warn("POST /v1/oauth/revoke is deprecated.", DeprecationWarning) 19162 19163 _param = self._revoke_token_serialize( 19164 access_token=access_token, 19165 _request_auth=_request_auth, 19166 _content_type=_content_type, 19167 _headers=_headers, 19168 _host_index=_host_index, 19169 ) 19170 19171 _response_types_map: Dict[str, Optional[str]] = { 19172 "204": None, 19173 "400": None, 19174 } 19175 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19176 response_data.read() 19177 return self.api_client.response_deserialize( 19178 response_data=response_data, 19179 response_types_map=_response_types_map, 19180 ).data
(Deprecated) Revoke token (v1)
Please use the new revoke endpoint /v2/oauth/revoke
. This endpoint is considered vulnerable and deprecated due to access token passed publicly in the URL.
:param access_token: Access token that you want to revoke (required) :type access_token: str :param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.
19230 @validate_call 19231 def token_info( 19232 self, 19233 _request_timeout: Union[ 19234 None, 19235 Annotated[StrictFloat, Field(gt=0)], 19236 Tuple[Annotated[StrictFloat, Field(gt=0)], Annotated[StrictFloat, Field(gt=0)]], 19237 ] = None, 19238 _request_auth: Optional[Dict[StrictStr, Any]] = None, 19239 _content_type: Optional[StrictStr] = None, 19240 _headers: Optional[Dict[StrictStr, Any]] = None, 19241 _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0, 19242 ) -> TokenInformation: 19243 """Get access token information 19244 19245 Get information about an access token, such as the token type, scopes, team, user, token creation date and time, and the user who created the token. 19246 19247 :param _request_timeout: timeout setting for this request. If one 19248 number provided, it will be total request 19249 timeout. It can also be a pair (tuple) of 19250 (connection, read) timeouts. 19251 :type _request_timeout: int, tuple(int, int), optional 19252 :param _request_auth: set to override the auth_settings for an a single 19253 request; this effectively ignores the 19254 authentication in the spec for a single request. 19255 :type _request_auth: dict, optional 19256 :param _content_type: force content-type for the request. 19257 :type _content_type: str, Optional 19258 :param _headers: set to override the headers for a single 19259 request; this effectively ignores the headers 19260 in the spec for a single request. 19261 :type _headers: dict, optional 19262 :param _host_index: set to override the host_index for a single 19263 request; this effectively ignores the host_index 19264 in the spec for a single request. 19265 :type _host_index: int, optional 19266 :return: Returns the result object. 19267 """ # noqa: E501 19268 19269 _param = self._token_info_serialize( 19270 _request_auth=_request_auth, _content_type=_content_type, _headers=_headers, _host_index=_host_index 19271 ) 19272 19273 _response_types_map: Dict[str, Optional[str]] = { 19274 "200": "TokenInformation", 19275 "400": None, 19276 } 19277 response_data = self.api_client.call_api(*_param, _request_timeout=_request_timeout) 19278 response_data.read() 19279 return self.api_client.response_deserialize( 19280 response_data=response_data, 19281 response_types_map=_response_types_map, 19282 ).data
Get access token information
Get information about an access token, such as the token type, scopes, team, user, token creation date and time, and the user who created the token.
:param _request_timeout: timeout setting for this request. If one number provided, it will be total request timeout. It can also be a pair (tuple) of (connection, read) timeouts. :type _request_timeout: int, tuple(int, int), optional :param _request_auth: set to override the auth_settings for an a single request; this effectively ignores the authentication in the spec for a single request. :type _request_auth: dict, optional :param _content_type: force content-type for the request. :type _content_type: str, Optional :param _headers: set to override the headers for a single request; this effectively ignores the headers in the spec for a single request. :type _headers: dict, optional :param _host_index: set to override the host_index for a single request; this effectively ignores the host_index in the spec for a single request. :type _host_index: int, optional :return: Returns the result object.