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        )
class MiroApiEndpoints:
  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.

MiroApiEndpoints(api_client=None)
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
api_client
@validate_call
def get_metrics( self, app_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='ID of the app to get metrics for.')], start_date: typing.Annotated[datetime.date, FieldInfo(annotation=NoneType, required=True, description='Start date of the period in UTC format. For example, 2024-12-31.')], end_date: typing.Annotated[datetime.date, FieldInfo(annotation=NoneType, required=True, description='End date of the period in UTC format. For example, 2024-12-31.')], period: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Group data by this time period.')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> List[miro_api.models.get_metrics200_response_inner.GetMetrics200ResponseInner]:
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:read

Rate 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.

@validate_call
def get_metrics_total( self, app_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='ID of the app to get total metrics for.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.get_metrics_total200_response.GetMetricsTotal200Response:
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:read

Rate 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.

@validate_call
def enterprise_get_audit_logs( self, created_after: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, 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))." ')], created_before: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, 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)). ')], cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, limit: Annotated[Optional[Annotated[int, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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` ')] = None, sorting: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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` ')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.audit_page.AuditPage:
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:read

Rate 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.

@validate_call
def enterprise_board_content_item_logs_fetch( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the organization.')], var_from: typing.Annotated[datetime.datetime, FieldInfo(annotation=NoneType, required=True, 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)). ')], to: typing.Annotated[datetime.datetime, FieldInfo(annotation=NoneType, required=True, 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)). ')], board_ids: Annotated[Optional[Annotated[List[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, metadata=[MaxLen(max_length=15)])]], FieldInfo(annotation=NoneType, required=True, description='List of board IDs for which you want to retrieve the content logs.')] = None, emails: Annotated[Optional[Annotated[List[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, metadata=[MaxLen(max_length=15)])]], FieldInfo(annotation=NoneType, required=True, description='Filter content logs based on the list of emails of users who created, modified, or deleted the board item.')] = None, cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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. ')] = None, limit: Annotated[Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=1), Le(le=1000)])]], FieldInfo(annotation=NoneType, required=True, 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. ')] = None, sorting: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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`. ')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.get_board_item_content_logs_response.GetBoardItemContentLogsResponse:
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:export

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_board_export_job_results( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the organization.')], job_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the job.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_export_result.BoardExportResult:
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:export

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_board_export_job_status( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the organization.')], job_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the board export job.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_export_job_status.BoardExportJobStatus:
 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:export

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_create_board_export( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the organization.')], request_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the board export job.')], create_board_export_request: miro_api.models.create_board_export_request.CreateBoardExportRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_export_job_id.BoardExportJobId:
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:export

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_dataclassification_board_get( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the team')], board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the board that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_data_classification_label.BoardDataClassificationLabel:
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:read

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_dataclassification_board_set( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the team')], board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier of the board that you want to update.')], data_classification_label_id: miro_api.models.data_classification_label_id.DataClassificationLabelId, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_data_classification_label.BoardDataClassificationLabel:
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:write

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_dataclassification_organization_settings_get( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.data_classification_organization_settings.DataClassificationOrganizationSettings:
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:read

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_dataclassification_team_boards_bulk( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the team')], update_boards_data_classification_label_request: miro_api.models.update_boards_data_classification_label_request.UpdateBoardsDataClassificationLabelRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.update_boards_data_classification_label.UpdateBoardsDataClassificationLabel:
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:write

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_dataclassification_team_settings_get( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the team')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.data_classification_team_settings.DataClassificationTeamSettings:
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:read

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_dataclassification_team_settings_set( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the team')], update_team_settings_request: miro_api.models.update_team_settings_request.UpdateTeamSettingsRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.data_classification_team_settings.DataClassificationTeamSettings:
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:write

Rate limiting

Level 2

Enterprise 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.

@validate_call
def create_items( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], item_create: Annotated[List[miro_api.models.item_create.ItemCreate], FieldInfo(annotation=NoneType, required=True, metadata=[MinLen(min_length=1), MaxLen(max_length=20)])], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.items.Items:
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).

“add
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:write

Rate 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.

@validate_call
def create_items_in_bulk_using_file_from_device( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], data: Annotated[Union[Annotated[bytes, Strict(strict=True)], Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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).')], resources: Annotated[List[Union[Annotated[bytes, Strict(strict=True)], Annotated[str, Strict(strict=True)]]], FieldInfo(annotation=NoneType, required=True, description='Array of items to create (PDFs, images, etc.). Maximum of 20 items.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.items.Items:
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:write

Rate 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.

@validate_call
def create_shape_item_flowchart( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], shape_create_request: miro_api.models.shape_create_request.ShapeCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.shape_item.ShapeItem:
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:write

Rate 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.

@validate_call
def delete_shape_item_flowchart( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_items_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board for which you want to retrieve the list of available items.')], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, type: Optional[Annotated[str, Strict(strict=True)]] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_item_cursor_paged.GenericItemCursorPaged:
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:read

Rate 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.

@validate_call
def get_shape_item_flowchart( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.shape_item.ShapeItem:
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:read

Rate 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.

@validate_call
def get_specific_item_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_item.GenericItem:
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:read

Rate 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.

@validate_call
def update_shape_item_flowchart( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], shape_update_request: miro_api.models.shape_update_request.ShapeUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.shape_item.ShapeItem:
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:write

Rate 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.

@validate_call
def get_all_cases( self, limit: typing.Annotated[int, FieldInfo(annotation=NoneType, required=True, description='The maximum number of items in the result list.', metadata=[Strict(strict=True), Ge(ge=1), Le(le=100)])], org_id: typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, description='The ID of the organization for which you want to retrieve the list of cases.', metadata=[Strict(strict=True)])], cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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. ')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.paginated_case_response.PaginatedCaseResponse:
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:management

Rate limiting

Level 4

Enterprise 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.

@validate_call
def get_case( self, org_id: typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, description='The ID of the organization for which you want to retrieve the case information.', metadata=[Strict(strict=True)])], case_id: typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, description='The ID of the case you want to retrieve.', metadata=[Strict(strict=True)])], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.case_response.CaseResponse:
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:management

Rate limiting

Level 3

Enterprise 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.

@validate_call
def create_mindmap_nodes_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], mindmap_create_request: miro_api.models.mindmap_create_request.MindmapCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.mindmap_item.MindmapItem:
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:write

Rate limiting

Level 2

Known 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.

@validate_call
def delete_mindmap_node_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the mind map node.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the mind map node that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_mindmap_node_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a mind map node.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the mind map node that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.mindmap_item.MindmapItem:
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:read

Rate 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.

@validate_call
def get_mindmap_nodes_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve mind map nodes.')], limit: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Maximum number of results returned')] = None, cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Points to the next portion of the results set')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.mindmap_cursor_paged.MindmapCursorPaged:
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:read

Rate 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.

@validate_call
def revoke_token_v2( self, revoke_token_request: miro_api.models.revoke_token_request.RevokeTokenRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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.

@validate_call
def enterprise_get_organization_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization member')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.organization_member.OrganizationMember:
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:read

Rate limiting

Level 3

Enterprise 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.

@validate_call
def enterprise_get_organization_members( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], emails: Optional[Annotated[str, Strict(strict=True)]] = None, role: Optional[Annotated[str, Strict(strict=True)]] = None, license: Optional[Annotated[str, Strict(strict=True)]] = None, active: Optional[Annotated[bool, Strict(strict=True)]] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, limit: Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=1), Le(le=100)])]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.enterprise_get_organization_members200_response.EnterpriseGetOrganizationMembers200Response:
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:read

Rate limiting

Level 3

Enterprise 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.

@validate_call
def enterprise_get_organization( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='id of the organization')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.organization.Organization:
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:read

Rate limiting

Level 3

Enterprise 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.

@validate_call
def enterprise_add_project_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project to which you want to add a user.')], add_project_member_request: miro_api.models.add_project_member_request.AddProjectMemberRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_member.ProjectMember:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_delete_project_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project from which you want to remove a member.')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the member that you want to remove from a project.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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:write

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_get_project_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project from which you want to retrieve specific member information.')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the member for which you want to retrieve information.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_member.ProjectMember:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_project_members( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project for which you want to retrieve the list of members.')], limit: Annotated[Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=1), Le(le=100)])]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_member_page.ProjectMemberPage:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_update_project_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project member belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project member belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of a Project.')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the member whose details you want to update.')], update_project_member_request: miro_api.models.update_project_member_request.UpdateProjectMemberRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_member.ProjectMember:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_project_settings( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project for which you want to retrieve the project settings.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_settings.ProjectSettings:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_update_project_settings( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization to which the project belongs.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team to which the project belongs.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project whose settings you want to update.')], update_project_settings_request: miro_api.models.update_project_settings_request.UpdateProjectSettingsRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_settings.ProjectSettings:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_create_project( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization within which you you want to create a project.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team within which you you want to create a project.')], create_project_request: miro_api.models.create_project_request.CreateProjectRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project.Project:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_delete_project( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization from which you want to delete a project.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team from which you want to delete a project.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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:write

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_get_project( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization from which you want to retrieve the project information.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team from which you want to retrieve the project information.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the project for which you want to retrieve the information.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project.Project:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_projects( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the organization from which you want to retrieve the list of available projects.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the team from which you want to retrieve the list of available projects.')], limit: Annotated[Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=1), Le(le=100)])]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project_page.ProjectPage:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_update_project( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of an Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of a Team.')], project_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of a Project.')], update_project_request: miro_api.models.update_project_request.UpdateProjectRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.project.Project:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_post_user_sessions_reset( self, email: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Email ID of the user whose sessions you want to reset. Note that this user will be signed out from all devices.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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:delete

Rate limiting

Level 3

Enterprise 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.

@validate_call
def enterprise_delete_team_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team Member')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_team_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team Member')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_member.TeamMember:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_team_members( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], limit: Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=1), Le(le=100)])]] = None, cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, role: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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. ')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_members_page.TeamMembersPage:
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:read

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_invite_team_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], team_member_invite: miro_api.models.team_member_invite.TeamMemberInvite, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_member.TeamMember:
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:write

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_update_team_member( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team Member')], team_member_changes: miro_api.models.team_member_changes.TeamMemberChanges, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_member.TeamMember:
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:write

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_get_default_team_settings( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of an Organization.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_settings.TeamSettings:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_team_settings( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_settings.TeamSettings:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_update_team_settings( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], team_settings_changes: miro_api.models.team_settings_changes.TeamSettingsChanges, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team_settings.TeamSettings:
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:write

Rate limiting

Level 2

Enterprise 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.

@validate_call
def enterprise_create_team( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], create_team_request: miro_api.models.create_team_request.CreateTeamRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team.Team:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_delete_team( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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:write

Rate limiting

Level 4

Enterprise 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.

@validate_call
def enterprise_get_team( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team.Team:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_get_teams( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], limit: Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=1), Le(le=100)])]] = None, cursor: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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.')] = None, name: Annotated[Optional[Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, 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".')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.teams_page.TeamsPage:
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:read

Rate limiting

Level 1

Enterprise 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.

@validate_call
def enterprise_update_team( self, org_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Organization.')], team_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The id of the Team.')], team_changes: miro_api.models.team_changes.TeamChanges, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.team.Team:
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:write

Rate limiting

Level 1

Enterprise 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.

@validate_call
def create_board_subscription( self, create_board_subscription_request: miro_api.models.create_board_subscription_request.CreateBoardSubscriptionRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_subscription.BoardSubscription:
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:read

Rate 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.

@validate_call
def delete_subscription_by_id( self, subscription_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the subscription that you want to delete')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:read

Rate 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.

@validate_call
def get_subscription_by_id( self, subscription_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the subscription that you want to retrieve')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_subscription.GenericSubscription:
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:read

Rate 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.

@validate_call
def get_user_subscriptions( self, limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_subscriptions_cursor_paged.GenericSubscriptionsCursorPaged:
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:read

Rate 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.

@validate_call
def update_board_subscription( self, subscription_id: typing.Annotated[str, Strict(strict=True)], update_board_subscription_request: miro_api.models.update_board_subscription_request.UpdateBoardSubscriptionRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_subscription.BoardSubscription:
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:read

Rate 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.

@validate_call
def create_app_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], app_card_create_request: miro_api.models.app_card_create_request.AppCardCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.app_card_item.AppCardItem:
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:write

Rate 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.

@validate_call
def delete_app_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete an item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_app_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.app_card_item.AppCardItem:
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:read

Rate 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.

@validate_call
def update_app_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], app_card_update_request: miro_api.models.app_card_update_request.AppCardUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.app_card_item.AppCardItem:
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:write

Rate 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.

@validate_call
def get_board_members( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board to which the board member belongs.')], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, offset: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_members_paged_response.BoardMembersPagedResponse:
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:read

Rate 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.

@validate_call
def get_specific_board_member( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board to which the board member belongs.')], board_member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board member whose role you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_member_with_links.BoardMemberWithLinks:
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:read

Rate 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.

@validate_call
def remove_board_member( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete an item.')], board_member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board member whose role you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def share_board( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board to which the board member belongs.')], board_members_invite: miro_api.models.board_members_invite.BoardMembersInvite, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.invitation_result.InvitationResult:
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

Share board

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.

Required scope

boards:write

Rate limiting

Level 3

:param board_id: Unique identifier (ID) of the board to which the board member belongs. (required) :type board_id: str :param board_members_invite: (required) :type board_members_invite: BoardMembersInvite :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.

@validate_call
def update_board_member( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board for which you want to update the role of the board member.')], board_member_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board member whose role you want to update.')], board_member_changes: miro_api.models.board_member_changes.BoardMemberChanges, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_member_with_links.BoardMemberWithLinks:
 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:write

Rate 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.

@validate_call
def copy_board( self, copy_from: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board that you want to copy.')], copy_board_changes: Optional[miro_api.models.copy_board_changes.CopyBoardChanges] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_with_links_and_without_project.BoardWithLinksAndWithoutProject:
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:write

Rate 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.

@validate_call
def create_board( self, board_changes: Optional[miro_api.models.board_changes.BoardChanges] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_with_links.BoardWithLinks:
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:write

Rate 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.

@validate_call
def delete_board( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_boards( self, team_id: Optional[Annotated[str, Strict(strict=True)]] = None, project_id: Optional[Annotated[str, Strict(strict=True)]] = None, query: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), MaxLen(max_length=500)])]] = None, owner: Optional[Annotated[str, Strict(strict=True)]] = None, limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, offset: Optional[Annotated[str, Strict(strict=True)]] = None, sort: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.boards_paged_response.BoardsPagedResponse:
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:read

Rate 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.

@validate_call
def get_specific_board( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_with_links_and_last_opened.BoardWithLinksAndLastOpened:
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:read

Rate 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.

@validate_call
def update_board( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board that you want to update.')], board_changes: miro_api.models.board_changes.BoardChanges, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.board_with_links.BoardWithLinks:
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:write

Rate 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.

@validate_call
def create_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], card_create_request: miro_api.models.card_create_request.CardCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.card_item.CardItem:
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:write

Rate 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.

@validate_call
def delete_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.card_item.CardItem:
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:read

Rate 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.

@validate_call
def update_card_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], card_update_request: miro_api.models.card_update_request.CardUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.card_item.CardItem:
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:write

Rate 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.

@validate_call
def create_connector( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board for which you want to create the connector.')], connector_creation_data: miro_api.models.connector_creation_data.ConnectorCreationData, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.connector_with_links.ConnectorWithLinks:
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:write

Rate 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.

@validate_call
def delete_connector( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the connector.')], connector_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the connector that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_connector( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific connector.')], connector_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the connector that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.connector_with_links.ConnectorWithLinks:
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:read

Rate 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.

@validate_call
def get_connectors( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a list of connectors.')], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.connectors_cursor_paged.ConnectorsCursorPaged:
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:read

Rate 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.

@validate_call
def update_connector( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board for which you want to update the connector.')], connector_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the connector that you want to update.')], connector_changes_data: miro_api.models.connector_changes_data.ConnectorChangesData, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.connector_with_links.ConnectorWithLinks:
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:write

Rate 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.

@validate_call
def create_document_item_using_file_from_device( self, board_id_platform_file_upload: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], resource: Annotated[Union[Annotated[bytes, Strict(strict=True)], Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Select a file to upload. Maximum file size is 6 MB.')], data: Optional[miro_api.models.create_document_item_using_file_from_device_request_data.CreateDocumentItemUsingFileFromDeviceRequestData] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.document_item.DocumentItem:
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:write

Rate 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.

@validate_call
def create_document_item_using_url( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], document_create_request: miro_api.models.document_create_request.DocumentCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.document_item.DocumentItem:
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:write

Rate 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.

@validate_call
def delete_document_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_document_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.document_item.DocumentItem:
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:read

Rate 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.

@validate_call
def update_document_item_using_file_from_device( self, board_id_platform_file_upload: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], resource: Annotated[Union[Annotated[bytes, Strict(strict=True)], Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Select a file to upload. Maximum file size is 6 MB.')], data: Optional[miro_api.models.upload_file_from_device_data.UploadFileFromDeviceData] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.document_item.DocumentItem:
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:write

Rate 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.

@validate_call
def update_document_item_using_url( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], document_update_request: miro_api.models.document_update_request.DocumentUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.document_item.DocumentItem:
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:write

Rate 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.

@validate_call
def create_embed_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], embed_create_request: miro_api.models.embed_create_request.EmbedCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.embed_item.EmbedItem:
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:write

Rate 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.

@validate_call
def delete_embed_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_embed_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.embed_item.EmbedItem:
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:read

Rate 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.

@validate_call
def update_embed_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], embed_update_request: miro_api.models.embed_update_request.EmbedUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.embed_item.EmbedItem:
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:write

Rate 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.

@validate_call
def create_frame_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create a frame.')], frame_create_request: miro_api.models.frame_create_request.FrameCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.frame_item.FrameItem:
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:write

Rate 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.

@validate_call
def delete_frame_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the frame.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the frame that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_frame_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board that contains the frame that you want to retrieve')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the frame that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.frame_item.FrameItem:
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:read

Rate 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.

@validate_call
def update_frame_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the frame.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the frame that you want to update.')], frame_update_request: miro_api.models.frame_update_request.FrameUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.frame_item.FrameItem:
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:write

Rate 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.

@validate_call
def create_group( self, board_id: typing.Annotated[str, Strict(strict=True)], group: miro_api.models.group.Group, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.group_response_short.GroupResponseShort:
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:write

Rate 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.

@validate_call
def delete_group( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board.')], group_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the group.')], delete_items: typing.Annotated[bool, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Indicates whether the items should be removed. Set to `true` to delete items in the group.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_all_groups( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board.')], limit: Annotated[Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=10), Le(le=50)])]], FieldInfo(annotation=NoneType, required=True, description='The maximum number of items to return at one time, default is 10, maximum is 50.')] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.get_all_groups200_response.GetAllGroups200Response:
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:read

Rate 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.

@validate_call
def get_group_by_id( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board.')], group_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the group.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.group_response_short.GroupResponseShort:
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:read

Rate 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.

@validate_call
def get_items_by_group_id( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board.')], group_item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='The ID of the group item to retrieve.')], limit: Annotated[Optional[Annotated[int, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True), Ge(ge=10), Le(le=50)])]], FieldInfo(annotation=NoneType, required=True, description='The maximum number of items to return at one time, default is 10, maximum is 50.')] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.get_items_by_group_id200_response.GetItemsByGroupId200Response:
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:read

Rate 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.

@validate_call
def un_group( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board.')], group_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the group.')], delete_items: Annotated[Optional[Annotated[bool, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Indicates whether the items should be removed. By default, false.')] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def update_group( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board.')], group_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the group.')], group: miro_api.models.group.Group, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.group_response_short.GroupResponseShort:
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:write

Rate 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.

@validate_call
def create_image_item_using_local_file( self, board_id_platform_file_upload: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], resource: Annotated[Union[Annotated[bytes, Strict(strict=True)], Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Select a file to upload. Maximum file size is 6 MB.')], data: Optional[miro_api.models.upload_file_from_device_data.UploadFileFromDeviceData] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.image_item.ImageItem:
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:write

Rate 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.

@validate_call
def create_image_item_using_url( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], image_create_request: miro_api.models.image_create_request.ImageCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.image_item.ImageItem:
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:write

Rate 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.

@validate_call
def delete_image_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_image_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.image_item.ImageItem:
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:read

Rate 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.

@validate_call
def update_image_item_using_file_from_device( self, board_id_platform_file_upload: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], resource: Annotated[Union[Annotated[bytes, Strict(strict=True)], Annotated[str, Strict(strict=True)]], FieldInfo(annotation=NoneType, required=True, description='Select a file to upload. Maximum file size is 6 MB.')], data: Optional[miro_api.models.upload_file_from_device_data.UploadFileFromDeviceData] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.image_item.ImageItem:
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:write

Rate 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.

@validate_call
def update_image_item_using_url( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], image_update_request: miro_api.models.image_update_request.ImageUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.image_item.ImageItem:
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:write

Rate 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.

@validate_call
def delete_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def delete_item_experimental( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_items( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board for which you want to retrieve the list of available items.')], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, type: Optional[Annotated[str, Strict(strict=True)]] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_item_cursor_paged.GenericItemCursorPaged:
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:read

Rate 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.

@validate_call
def get_items_within_frame( self, board_id_platform_containers: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board that contains the frame for which you want to retrieve the list of available items.')], parent_item_id: typing.Annotated[str, FieldInfo(annotation=NoneType, required=True, description='ID of the frame for which you want to retrieve the list of available items.', metadata=[Strict(strict=True)])], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, type: Optional[Annotated[str, Strict(strict=True)]] = None, cursor: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_item_cursor_paged.GenericItemCursorPaged:
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:read

Rate 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.

@validate_call
def get_specific_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_item.GenericItem:
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:read

Rate 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.

@validate_call
def update_item_position_or_parent( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], generic_item_update: miro_api.models.generic_item_update.GenericItemUpdate, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.generic_item.GenericItem:
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:write

Rate 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.

@validate_call
def create_shape_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], shape_create_request: miro_api.models.shape_create_request.ShapeCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.shape_item.ShapeItem:
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:write

Rate 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.

@validate_call
def delete_shape_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_shape_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.shape_item.ShapeItem:
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:read

Rate 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.

@validate_call
def update_shape_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], shape_update_request: miro_api.models.shape_update_request.ShapeUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.shape_item.ShapeItem:
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:write

Rate 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.

@validate_call
def create_sticky_note_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], sticky_note_create_request: miro_api.models.sticky_note_create_request.StickyNoteCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.sticky_note_item.StickyNoteItem:
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:write

Rate 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.

@validate_call
def delete_sticky_note_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_sticky_note_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.sticky_note_item.StickyNoteItem:
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:read

Rate 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.

@validate_call
def update_sticky_note_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], sticky_note_update_request: miro_api.models.sticky_note_update_request.StickyNoteUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.sticky_note_item.StickyNoteItem:
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:write

Rate 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.

@validate_call
def attach_tag_to_item( self, board_id_platform_tags: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board with the item that you want to add a tag to.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item to which you want to add a tag.')], tag_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the tag you want to add to the item.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def create_tag( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the tag.')], tag_create_request: miro_api.models.tag_create_request.TagCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.tag_with_links.TagWithLinks:
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:write

Rate 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.

@validate_call
def delete_tag( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to delete a specific tag.')], tag_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the tag that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_items_by_tag( self, board_id_platform_tags: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to retrieve a specific tag.')], tag_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the tag that you want to retrieve.')], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, offset: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.item_paged_response.ItemPagedResponse:
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:read

Rate 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.

@validate_call
def get_tag( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to retrieve a specific tag.')], tag_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the tag that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.tag_with_links.TagWithLinks:
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:write

Rate 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.

@validate_call
def get_tags_from_board( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board whose tags you want to retrieve.')], limit: Optional[Annotated[str, FieldInfo(annotation=NoneType, required=True, metadata=[Strict(strict=True)])]] = None, offset: Optional[Annotated[str, Strict(strict=True)]] = None, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.tags_paged_response.TagsPagedResponse:
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

Get tags from board

Retrieves all the tags from the specified board.

Required scope

boards:read

Rate limiting

Level 1

:param board_id: Unique identifier (ID) of the board whose tags you want to retrieve. (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.

@validate_call
def get_tags_from_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board with the item whose tags you want to retrieve.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item whose tags you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.get_tags_response.GetTagsResponse:
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

Get tags from item

Retrieves all the tags from the specified item.

Required scope

boards:read

Rate limiting

Level 1

:param board_id: Unique identifier (ID) of the board with the item whose tags you want to retrieve. (required) :type board_id: str :param item_id: Unique identifier (ID) of the item whose tags 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.

@validate_call
def remove_tag_from_item( self, board_id_platform_tags: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board with the item that you want to remove a tag from.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to remove the tag from.')], tag_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the tag that you want to remove from the item.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def update_tag( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update a specific tag.')], tag_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the tag that you want to update.')], tag_update_request: miro_api.models.tag_update_request.TagUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.tag_with_links.TagWithLinks:
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:write

Rate 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.

@validate_call
def create_text_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to create the item.')], text_create_request: miro_api.models.text_create_request.TextCreateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.text_item.TextItem:
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:write

Rate 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.

@validate_call
def delete_text_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to delete the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to delete.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> 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:write

Rate 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.

@validate_call
def get_text_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board from which you want to retrieve a specific item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to retrieve.')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.text_item.TextItem:
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:read

Rate 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.

@validate_call
def update_text_item( self, board_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the board where you want to update the item.')], item_id: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Unique identifier (ID) of the item that you want to update.')], text_update_request: miro_api.models.text_update_request.TextUpdateRequest, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.text_item.TextItem:
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:write

Rate 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.

@validate_call
def revoke_token( self, access_token: typing.Annotated[str, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, description='Access token that you want to revoke')], _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> None:
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.

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 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.

@validate_call
def token_info( self, _request_timeout: Union[NoneType, Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Tuple[Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])], Annotated[float, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Gt(gt=0)])]]] = None, _request_auth: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _content_type: Optional[Annotated[str, Strict(strict=True)]] = None, _headers: Optional[Dict[Annotated[str, Strict(strict=True)], Any]] = None, _host_index: typing.Annotated[int, Strict(strict=True), FieldInfo(annotation=NoneType, required=True, metadata=[Ge(ge=0), Le(le=0)])] = 0) -> miro_api.models.token_information.TokenInformation:
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.