miro_api.models.board_permissions_policy
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# coding: utf-8 2 3""" 4Miro Developer Platform 5 6<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. 7 8The version of the OpenAPI document: v2.0 9Generated by OpenAPI Generator (https://openapi-generator.tech) 10 11Do not edit the class manually. 12""" # noqa: E501 13 14from __future__ import annotations 15import pprint 16import re # noqa: F401 17import json 18 19from pydantic import BaseModel, Field, StrictStr, field_validator 20from typing import Any, ClassVar, Dict, List, Optional 21from typing import Optional, Set 22from typing_extensions import Self 23 24 25class BoardPermissionsPolicy(BaseModel): 26 """ 27 Defines the permissions policies for the board. 28 """ # noqa: E501 29 30 collaboration_tools_start_access: Optional[StrictStr] = Field( 31 default="all_editors", 32 description="Defines who can start or stop timer, voting, video chat, screen sharing, attention management. Others will only be able to join. To change the value for the `collaborationToolsStartAccess` parameter, contact Miro Customer Support.", 33 alias="collaborationToolsStartAccess", 34 ) 35 copy_access: Optional[StrictStr] = Field( 36 default="anyone", 37 description="Defines who can copy the board, copy objects, download images, and save the board as a template or PDF.", 38 alias="copyAccess", 39 ) 40 sharing_access: Optional[StrictStr] = Field( 41 default="team_members_with_editing_rights", 42 description="Defines who can change access and invite users to this board. To change the value for the `sharingAccess` parameter, contact Miro Customer Support.", 43 alias="sharingAccess", 44 ) 45 additional_properties: Dict[str, Any] = {} 46 __properties: ClassVar[List[str]] = ["collaborationToolsStartAccess", "copyAccess", "sharingAccess"] 47 48 @field_validator("collaboration_tools_start_access") 49 def collaboration_tools_start_access_validate_enum(cls, value): 50 """Validates the enum""" 51 if value is None: 52 return value 53 54 if value not in set(["all_editors", "board_owners_and_coowners"]): 55 raise ValueError("must be one of enum values ('all_editors', 'board_owners_and_coowners')") 56 return value 57 58 @field_validator("copy_access") 59 def copy_access_validate_enum(cls, value): 60 """Validates the enum""" 61 if value is None: 62 return value 63 64 if value not in set(["anyone", "team_members", "team_editors", "board_owner"]): 65 raise ValueError("must be one of enum values ('anyone', 'team_members', 'team_editors', 'board_owner')") 66 return value 67 68 @field_validator("sharing_access") 69 def sharing_access_validate_enum(cls, value): 70 """Validates the enum""" 71 if value is None: 72 return value 73 74 if value not in set(["team_members_with_editing_rights", "owner_and_coowners"]): 75 raise ValueError("must be one of enum values ('team_members_with_editing_rights', 'owner_and_coowners')") 76 return value 77 78 model_config = { 79 "populate_by_name": True, 80 "validate_assignment": True, 81 "protected_namespaces": (), 82 } 83 84 def to_str(self) -> str: 85 """Returns the string representation of the model using alias""" 86 return pprint.pformat(self.model_dump(by_alias=True)) 87 88 def to_json(self) -> str: 89 """Returns the JSON representation of the model using alias""" 90 # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead 91 return json.dumps(self.to_dict()) 92 93 @classmethod 94 def from_json(cls, json_str: str) -> Optional[Self]: 95 """Create an instance of BoardPermissionsPolicy from a JSON string""" 96 return cls.from_dict(json.loads(json_str)) 97 98 def to_dict(self) -> Dict[str, Any]: 99 """Return the dictionary representation of the model using alias. 100 101 This has the following differences from calling pydantic's 102 `self.model_dump(by_alias=True)`: 103 104 * `None` is only added to the output dict for nullable fields that 105 were set at model initialization. Other fields with value `None` 106 are ignored. 107 * Fields in `self.additional_properties` are added to the output dict. 108 """ 109 excluded_fields: Set[str] = set( 110 [ 111 "additional_properties", 112 ] 113 ) 114 115 _dict = self.model_dump( 116 by_alias=True, 117 exclude=excluded_fields, 118 exclude_none=True, 119 ) 120 # puts key-value pairs in additional_properties in the top level 121 if self.additional_properties is not None: 122 for _key, _value in self.additional_properties.items(): 123 _dict[_key] = _value 124 125 return _dict 126 127 @classmethod 128 def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: 129 """Create an instance of BoardPermissionsPolicy from a dict""" 130 if obj is None: 131 return None 132 133 if not isinstance(obj, dict): 134 return cls.model_validate(obj) 135 136 _obj = cls.model_validate( 137 { 138 "collaborationToolsStartAccess": ( 139 obj.get("collaborationToolsStartAccess") 140 if obj.get("collaborationToolsStartAccess") is not None 141 else "all_editors" 142 ), 143 "copyAccess": obj.get("copyAccess") if obj.get("copyAccess") is not None else "anyone", 144 "sharingAccess": ( 145 obj.get("sharingAccess") 146 if obj.get("sharingAccess") is not None 147 else "team_members_with_editing_rights" 148 ), 149 } 150 ) 151 # store additional fields in additional_properties 152 for _key in obj.keys(): 153 if _key not in cls.__properties: 154 _obj.additional_properties[_key] = obj.get(_key) 155 156 return _obj
26class BoardPermissionsPolicy(BaseModel): 27 """ 28 Defines the permissions policies for the board. 29 """ # noqa: E501 30 31 collaboration_tools_start_access: Optional[StrictStr] = Field( 32 default="all_editors", 33 description="Defines who can start or stop timer, voting, video chat, screen sharing, attention management. Others will only be able to join. To change the value for the `collaborationToolsStartAccess` parameter, contact Miro Customer Support.", 34 alias="collaborationToolsStartAccess", 35 ) 36 copy_access: Optional[StrictStr] = Field( 37 default="anyone", 38 description="Defines who can copy the board, copy objects, download images, and save the board as a template or PDF.", 39 alias="copyAccess", 40 ) 41 sharing_access: Optional[StrictStr] = Field( 42 default="team_members_with_editing_rights", 43 description="Defines who can change access and invite users to this board. To change the value for the `sharingAccess` parameter, contact Miro Customer Support.", 44 alias="sharingAccess", 45 ) 46 additional_properties: Dict[str, Any] = {} 47 __properties: ClassVar[List[str]] = ["collaborationToolsStartAccess", "copyAccess", "sharingAccess"] 48 49 @field_validator("collaboration_tools_start_access") 50 def collaboration_tools_start_access_validate_enum(cls, value): 51 """Validates the enum""" 52 if value is None: 53 return value 54 55 if value not in set(["all_editors", "board_owners_and_coowners"]): 56 raise ValueError("must be one of enum values ('all_editors', 'board_owners_and_coowners')") 57 return value 58 59 @field_validator("copy_access") 60 def copy_access_validate_enum(cls, value): 61 """Validates the enum""" 62 if value is None: 63 return value 64 65 if value not in set(["anyone", "team_members", "team_editors", "board_owner"]): 66 raise ValueError("must be one of enum values ('anyone', 'team_members', 'team_editors', 'board_owner')") 67 return value 68 69 @field_validator("sharing_access") 70 def sharing_access_validate_enum(cls, value): 71 """Validates the enum""" 72 if value is None: 73 return value 74 75 if value not in set(["team_members_with_editing_rights", "owner_and_coowners"]): 76 raise ValueError("must be one of enum values ('team_members_with_editing_rights', 'owner_and_coowners')") 77 return value 78 79 model_config = { 80 "populate_by_name": True, 81 "validate_assignment": True, 82 "protected_namespaces": (), 83 } 84 85 def to_str(self) -> str: 86 """Returns the string representation of the model using alias""" 87 return pprint.pformat(self.model_dump(by_alias=True)) 88 89 def to_json(self) -> str: 90 """Returns the JSON representation of the model using alias""" 91 # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead 92 return json.dumps(self.to_dict()) 93 94 @classmethod 95 def from_json(cls, json_str: str) -> Optional[Self]: 96 """Create an instance of BoardPermissionsPolicy from a JSON string""" 97 return cls.from_dict(json.loads(json_str)) 98 99 def to_dict(self) -> Dict[str, Any]: 100 """Return the dictionary representation of the model using alias. 101 102 This has the following differences from calling pydantic's 103 `self.model_dump(by_alias=True)`: 104 105 * `None` is only added to the output dict for nullable fields that 106 were set at model initialization. Other fields with value `None` 107 are ignored. 108 * Fields in `self.additional_properties` are added to the output dict. 109 """ 110 excluded_fields: Set[str] = set( 111 [ 112 "additional_properties", 113 ] 114 ) 115 116 _dict = self.model_dump( 117 by_alias=True, 118 exclude=excluded_fields, 119 exclude_none=True, 120 ) 121 # puts key-value pairs in additional_properties in the top level 122 if self.additional_properties is not None: 123 for _key, _value in self.additional_properties.items(): 124 _dict[_key] = _value 125 126 return _dict 127 128 @classmethod 129 def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: 130 """Create an instance of BoardPermissionsPolicy from a dict""" 131 if obj is None: 132 return None 133 134 if not isinstance(obj, dict): 135 return cls.model_validate(obj) 136 137 _obj = cls.model_validate( 138 { 139 "collaborationToolsStartAccess": ( 140 obj.get("collaborationToolsStartAccess") 141 if obj.get("collaborationToolsStartAccess") is not None 142 else "all_editors" 143 ), 144 "copyAccess": obj.get("copyAccess") if obj.get("copyAccess") is not None else "anyone", 145 "sharingAccess": ( 146 obj.get("sharingAccess") 147 if obj.get("sharingAccess") is not None 148 else "team_members_with_editing_rights" 149 ), 150 } 151 ) 152 # store additional fields in additional_properties 153 for _key in obj.keys(): 154 if _key not in cls.__properties: 155 _obj.additional_properties[_key] = obj.get(_key) 156 157 return _obj
Defines the permissions policies for the board.
49 @field_validator("collaboration_tools_start_access") 50 def collaboration_tools_start_access_validate_enum(cls, value): 51 """Validates the enum""" 52 if value is None: 53 return value 54 55 if value not in set(["all_editors", "board_owners_and_coowners"]): 56 raise ValueError("must be one of enum values ('all_editors', 'board_owners_and_coowners')") 57 return value
Validates the enum
59 @field_validator("copy_access") 60 def copy_access_validate_enum(cls, value): 61 """Validates the enum""" 62 if value is None: 63 return value 64 65 if value not in set(["anyone", "team_members", "team_editors", "board_owner"]): 66 raise ValueError("must be one of enum values ('anyone', 'team_members', 'team_editors', 'board_owner')") 67 return value
Validates the enum
69 @field_validator("sharing_access") 70 def sharing_access_validate_enum(cls, value): 71 """Validates the enum""" 72 if value is None: 73 return value 74 75 if value not in set(["team_members_with_editing_rights", "owner_and_coowners"]): 76 raise ValueError("must be one of enum values ('team_members_with_editing_rights', 'owner_and_coowners')") 77 return value
Validates the enum
85 def to_str(self) -> str: 86 """Returns the string representation of the model using alias""" 87 return pprint.pformat(self.model_dump(by_alias=True))
Returns the string representation of the model using alias
89 def to_json(self) -> str: 90 """Returns the JSON representation of the model using alias""" 91 # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead 92 return json.dumps(self.to_dict())
Returns the JSON representation of the model using alias
94 @classmethod 95 def from_json(cls, json_str: str) -> Optional[Self]: 96 """Create an instance of BoardPermissionsPolicy from a JSON string""" 97 return cls.from_dict(json.loads(json_str))
Create an instance of BoardPermissionsPolicy from a JSON string
99 def to_dict(self) -> Dict[str, Any]: 100 """Return the dictionary representation of the model using alias. 101 102 This has the following differences from calling pydantic's 103 `self.model_dump(by_alias=True)`: 104 105 * `None` is only added to the output dict for nullable fields that 106 were set at model initialization. Other fields with value `None` 107 are ignored. 108 * Fields in `self.additional_properties` are added to the output dict. 109 """ 110 excluded_fields: Set[str] = set( 111 [ 112 "additional_properties", 113 ] 114 ) 115 116 _dict = self.model_dump( 117 by_alias=True, 118 exclude=excluded_fields, 119 exclude_none=True, 120 ) 121 # puts key-value pairs in additional_properties in the top level 122 if self.additional_properties is not None: 123 for _key, _value in self.additional_properties.items(): 124 _dict[_key] = _value 125 126 return _dict
Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
self.model_dump(by_alias=True):
Noneis only added to the output dict for nullable fields that were set at model initialization. Other fields with valueNoneare ignored.- Fields in
self.additional_propertiesare added to the output dict.
128 @classmethod 129 def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: 130 """Create an instance of BoardPermissionsPolicy from a dict""" 131 if obj is None: 132 return None 133 134 if not isinstance(obj, dict): 135 return cls.model_validate(obj) 136 137 _obj = cls.model_validate( 138 { 139 "collaborationToolsStartAccess": ( 140 obj.get("collaborationToolsStartAccess") 141 if obj.get("collaborationToolsStartAccess") is not None 142 else "all_editors" 143 ), 144 "copyAccess": obj.get("copyAccess") if obj.get("copyAccess") is not None else "anyone", 145 "sharingAccess": ( 146 obj.get("sharingAccess") 147 if obj.get("sharingAccess") is not None 148 else "team_members_with_editing_rights" 149 ), 150 } 151 ) 152 # store additional fields in additional_properties 153 for _key in obj.keys(): 154 if _key not in cls.__properties: 155 _obj.additional_properties[_key] = obj.get(_key) 156 157 return _obj
Create an instance of BoardPermissionsPolicy from a dict
265def init_private_attributes(self: BaseModel, __context: Any) -> None: 266 """This function is meant to behave like a BaseModel method to initialise private attributes. 267 268 It takes context as an argument since that's what pydantic-core passes when calling it. 269 270 Args: 271 self: The BaseModel instance. 272 __context: The context. 273 """ 274 if getattr(self, '__pydantic_private__', None) is None: 275 pydantic_private = {} 276 for name, private_attr in self.__private_attributes__.items(): 277 default = private_attr.get_default() 278 if default is not PydanticUndefined: 279 pydantic_private[name] = default 280 object_setattr(self, '__pydantic_private__', pydantic_private)
This function is meant to behave like a BaseModel method to initialise private attributes.
It takes context as an argument since that's what pydantic-core passes when calling it.
Args: self: The BaseModel instance. __context: The context.
Inherited Members
- pydantic.main.BaseModel
- BaseModel
- model_extra
- model_fields_set
- model_construct
- model_copy
- model_dump
- model_dump_json
- model_json_schema
- model_parametrized_name
- model_rebuild
- model_validate
- model_validate_json
- model_validate_strings
- dict
- json
- parse_obj
- parse_raw
- parse_file
- from_orm
- construct
- copy
- schema
- schema_json
- validate
- update_forward_refs