# coding: utf-8

"""
    Collibra Data Governance Center Core API

    <p>The Core REST API allows you to create your own integrations with Collibra Data Governance Center.</p><p><i>Create custom applications to help users get access to the right data.</i></p>  # noqa: E501

    The version of the OpenAPI document: 2.0
    Generated by: https://openapi-generator.tech
"""

from datetime import date, datetime  # noqa: F401
import decimal  # noqa: F401
import functools  # noqa: F401
import io  # noqa: F401
import re  # noqa: F401
import typing  # noqa: F401
import typing_extensions  # noqa: F401
import uuid  # noqa: F401

import frozendict  # noqa: F401

from collibra_core import schemas  # noqa: F401


class AddRoleRequest(
    schemas.DictSchema
):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.
    """


    class MetaOapg:
        required = {
            "name",
        }
        
        class properties:
            
            
            class name(
                schemas.StrSchema
            ):
            
            
                class MetaOapg:
                    max_length = 255
                    min_length = 1
            id = schemas.UUIDSchema
            _global = schemas.BoolSchema
            description = schemas.StrSchema
            
            
            class permissions(
                schemas.ListSchema
            ):
            
            
                class MetaOapg:
                    
                    
                    class items(
                        schemas.EnumBase,
                        schemas.StrSchema
                    ):
                    
                    
                        class MetaOapg:
                            enum_value_to_name = {
                                "EDGE": "EDGE",
                                "EDGE_SITE_CONNECT": "EDGE_SITE_CONNECT",
                                "EDGE_SITE_MANAGE": "EDGE_SITE_MANAGE",
                                "EDGE_SITE_ADMINISTER": "EDGE_SITE_ADMINISTER",
                                "EDGE_INTEGRATION_CAPABILITY_MANAGE": "EDGE_INTEGRATION_CAPABILITY_MANAGE",
                                "EDGE_VIEW_CONNECTIONS_AND_CAPABILITIES": "EDGE_VIEW_CONNECTIONS_AND_CAPABILITIES",
                                "EDGE_VIEW_LOGS": "EDGE_VIEW_LOGS",
                                "ASSET_GRID_ADMINISTRATION": "ASSET_GRID_ADMINISTRATION",
                                "ATTACHMENT_ADD": "ATTACHMENT_ADD",
                                "ATTACHMENT_CHANGE": "ATTACHMENT_CHANGE",
                                "ATTACHMENT_REMOVE": "ATTACHMENT_REMOVE",
                                "COMMENT_ADD": "COMMENT_ADD",
                                "COMMENT_CHANGE": "COMMENT_CHANGE",
                                "COMMENT_REMOVE": "COMMENT_REMOVE",
                                "RATING_ADD": "RATING_ADD",
                                "RATING_CHANGE": "RATING_CHANGE",
                                "RATING_REMOVE": "RATING_REMOVE",
                                "COMMUNITY_ADD": "COMMUNITY_ADD",
                                "COMMUNITY_CHANGE": "COMMUNITY_CHANGE",
                                "COMMUNITY_REMOVE": "COMMUNITY_REMOVE",
                                "COMMUNITY_CONFIGURE_EXTERNAL_SYSTEM": "COMMUNITY_CONFIGURE_EXTERNAL_SYSTEM",
                                "COMMUNITY_RESPONSIBILITY_ADD": "COMMUNITY_RESPONSIBILITY_ADD",
                                "COMMUNITY_RESPONSIBILITY_CHANGE": "COMMUNITY_RESPONSIBILITY_CHANGE",
                                "COMMUNITY_RESPONSIBILITY_REMOVE": "COMMUNITY_RESPONSIBILITY_REMOVE",
                                "DOMAIN_ADD": "DOMAIN_ADD",
                                "DOMAIN_CHANGE": "DOMAIN_CHANGE",
                                "DOMAIN_REMOVE": "DOMAIN_REMOVE",
                                "DOMAIN_RESPONSIBILITY_ADD": "DOMAIN_RESPONSIBILITY_ADD",
                                "DOMAIN_RESPONSIBILITY_CHANGE": "DOMAIN_RESPONSIBILITY_CHANGE",
                                "DOMAIN_RESPONSIBILITY_REMOVE": "DOMAIN_RESPONSIBILITY_REMOVE",
                                "WORKFLOW_MANAGE": "WORKFLOW_MANAGE",
                                "WORKFLOW_DESIGNER_ACCESS": "WORKFLOW_DESIGNER_ACCESS",
                                "ASSET_ADD": "ASSET_ADD",
                                "ASSET_CHANGE": "ASSET_CHANGE",
                                "ASSET_REMOVE": "ASSET_REMOVE",
                                "ASSET_STATUS_CHANGE": "ASSET_STATUS_CHANGE",
                                "ASSET_TYPE_CHANGE": "ASSET_TYPE_CHANGE",
                                "ASSET_TAG_CHANGE": "ASSET_TAG_CHANGE",
                                "ASSET_ATTRIBUTE_ADD": "ASSET_ATTRIBUTE_ADD",
                                "ASSET_ATTRIBUTE_CHANGE": "ASSET_ATTRIBUTE_CHANGE",
                                "ASSET_ATTRIBUTE_REMOVE": "ASSET_ATTRIBUTE_REMOVE",
                                "ASSET_RESPONSIBILITY_ADD": "ASSET_RESPONSIBILITY_ADD",
                                "ASSET_RESPONSIBILITY_CHANGE": "ASSET_RESPONSIBILITY_CHANGE",
                                "ASSET_RESPONSIBILITY_REMOVE": "ASSET_RESPONSIBILITY_REMOVE",
                                "VIEW_PERMISSIONS_CHANGE": "VIEW_PERMISSIONS_CHANGE",
                                "BUSINESS_SEMANTICS_GLOSSARY": "BUSINESS_SEMANTICS_GLOSSARY",
                                "REFERENCE_DATA_MANAGER": "REFERENCE_DATA_MANAGER",
                                "DATA_STEWARDSHIP_MANAGER": "DATA_STEWARDSHIP_MANAGER",
                                "SYSTEM_ADMINISTRATION": "SYSTEM_ADMINISTRATION",
                                "USER_ADMINISTRATION": "USER_ADMINISTRATION",
                                "WORKFLOW_ADMINISTRATION": "WORKFLOW_ADMINISTRATION",
                                "DATA_HELPDESK": "DATA_HELPDESK",
                                "POLICY_MANAGER": "POLICY_MANAGER",
                                "DATA_DICTIONARY": "DATA_DICTIONARY",
                                "CATALOG": "CATALOG",
                                "WORKFLOW_MANAGE_ALL": "WORKFLOW_MANAGE_ALL",
                                "WORKFLOW_MESSAGE_EVENTS_USE": "WORKFLOW_MESSAGE_EVENTS_USE",
                                "VIEW_PERMISSIONS_VIEW_ALL": "VIEW_PERMISSIONS_VIEW_ALL",
                                "VIEW_MANAGE": "VIEW_MANAGE",
                                "VIEW_SHARE": "VIEW_SHARE",
                                "VIEW_MANAGE_ALL": "VIEW_MANAGE_ALL",
                                "ADVANCED_DATA_TYPE_ADD": "ADVANCED_DATA_TYPE_ADD",
                                "ADVANCED_DATA_TYPE_EDIT": "ADVANCED_DATA_TYPE_EDIT",
                                "ADVANCED_DATA_TYPE_REMOVE": "ADVANCED_DATA_TYPE_REMOVE",
                                "TAGS_VIEW": "TAGS_VIEW",
                                "TAGS_MANAGE": "TAGS_MANAGE",
                                "VALIDATION_EXECUTION": "VALIDATION_EXECUTION",
                                "ACCESS_DATA": "ACCESS_DATA",
                                "VIEW_SAMPLES": "VIEW_SAMPLES",
                                "RELATION_TYPE_ADD": "RELATION_TYPE_ADD",
                                "RELATION_TYPE_REMOVE": "RELATION_TYPE_REMOVE",
                                "RELATION_TYPE_CHANGE": "RELATION_TYPE_CHANGE",
                                "REGISTER_PROFILING_INFORMATION": "REGISTER_PROFILING_INFORMATION",
                                "REPORTING_DOWNLOAD_INSIGHTS_DATA": "REPORTING_DOWNLOAD_INSIGHTS_DATA",
                                "REPORTING_VIEW_INSIGHTS_REPORTS": "REPORTING_VIEW_INSIGHTS_REPORTS",
                                "INSIGHTS_VIEW": "INSIGHTS_VIEW",
                                "INSIGHTS_SUMMARY": "INSIGHTS_SUMMARY",
                                "TECHNICAL_LINEAGE": "TECHNICAL_LINEAGE",
                                "LOGS_VIEW": "LOGS_VIEW",
                                "RESOURCE_MANAGE_ALL": "RESOURCE_MANAGE_ALL",
                                "CONFIGURATION_VIEW": "CONFIGURATION_VIEW",
                                "CONFIGURATION_EDIT": "CONFIGURATION_EDIT",
                                "BACKSTORE_VIEW": "BACKSTORE_VIEW",
                                "BACKSTORE_EDIT": "BACKSTORE_EDIT",
                                "ASSESSMENTS": "ASSESSMENTS",
                                "METADATA_LAKE": "METADATA_LAKE",
                                "PROTECT": "PROTECT",
                                "PROTECT_EDIT": "PROTECT_EDIT",
                                "PROTECT_ADMINISTRATION": "PROTECT_ADMINISTRATION",
                                "PRIVACY": "PRIVACY",
                            }
                        
                        @schemas.classproperty
                        def EDGE(cls):
                            return cls("EDGE")
                        
                        @schemas.classproperty
                        def EDGE_SITE_CONNECT(cls):
                            return cls("EDGE_SITE_CONNECT")
                        
                        @schemas.classproperty
                        def EDGE_SITE_MANAGE(cls):
                            return cls("EDGE_SITE_MANAGE")
                        
                        @schemas.classproperty
                        def EDGE_SITE_ADMINISTER(cls):
                            return cls("EDGE_SITE_ADMINISTER")
                        
                        @schemas.classproperty
                        def EDGE_INTEGRATION_CAPABILITY_MANAGE(cls):
                            return cls("EDGE_INTEGRATION_CAPABILITY_MANAGE")
                        
                        @schemas.classproperty
                        def EDGE_VIEW_CONNECTIONS_AND_CAPABILITIES(cls):
                            return cls("EDGE_VIEW_CONNECTIONS_AND_CAPABILITIES")
                        
                        @schemas.classproperty
                        def EDGE_VIEW_LOGS(cls):
                            return cls("EDGE_VIEW_LOGS")
                        
                        @schemas.classproperty
                        def ASSET_GRID_ADMINISTRATION(cls):
                            return cls("ASSET_GRID_ADMINISTRATION")
                        
                        @schemas.classproperty
                        def ATTACHMENT_ADD(cls):
                            return cls("ATTACHMENT_ADD")
                        
                        @schemas.classproperty
                        def ATTACHMENT_CHANGE(cls):
                            return cls("ATTACHMENT_CHANGE")
                        
                        @schemas.classproperty
                        def ATTACHMENT_REMOVE(cls):
                            return cls("ATTACHMENT_REMOVE")
                        
                        @schemas.classproperty
                        def COMMENT_ADD(cls):
                            return cls("COMMENT_ADD")
                        
                        @schemas.classproperty
                        def COMMENT_CHANGE(cls):
                            return cls("COMMENT_CHANGE")
                        
                        @schemas.classproperty
                        def COMMENT_REMOVE(cls):
                            return cls("COMMENT_REMOVE")
                        
                        @schemas.classproperty
                        def RATING_ADD(cls):
                            return cls("RATING_ADD")
                        
                        @schemas.classproperty
                        def RATING_CHANGE(cls):
                            return cls("RATING_CHANGE")
                        
                        @schemas.classproperty
                        def RATING_REMOVE(cls):
                            return cls("RATING_REMOVE")
                        
                        @schemas.classproperty
                        def COMMUNITY_ADD(cls):
                            return cls("COMMUNITY_ADD")
                        
                        @schemas.classproperty
                        def COMMUNITY_CHANGE(cls):
                            return cls("COMMUNITY_CHANGE")
                        
                        @schemas.classproperty
                        def COMMUNITY_REMOVE(cls):
                            return cls("COMMUNITY_REMOVE")
                        
                        @schemas.classproperty
                        def COMMUNITY_CONFIGURE_EXTERNAL_SYSTEM(cls):
                            return cls("COMMUNITY_CONFIGURE_EXTERNAL_SYSTEM")
                        
                        @schemas.classproperty
                        def COMMUNITY_RESPONSIBILITY_ADD(cls):
                            return cls("COMMUNITY_RESPONSIBILITY_ADD")
                        
                        @schemas.classproperty
                        def COMMUNITY_RESPONSIBILITY_CHANGE(cls):
                            return cls("COMMUNITY_RESPONSIBILITY_CHANGE")
                        
                        @schemas.classproperty
                        def COMMUNITY_RESPONSIBILITY_REMOVE(cls):
                            return cls("COMMUNITY_RESPONSIBILITY_REMOVE")
                        
                        @schemas.classproperty
                        def DOMAIN_ADD(cls):
                            return cls("DOMAIN_ADD")
                        
                        @schemas.classproperty
                        def DOMAIN_CHANGE(cls):
                            return cls("DOMAIN_CHANGE")
                        
                        @schemas.classproperty
                        def DOMAIN_REMOVE(cls):
                            return cls("DOMAIN_REMOVE")
                        
                        @schemas.classproperty
                        def DOMAIN_RESPONSIBILITY_ADD(cls):
                            return cls("DOMAIN_RESPONSIBILITY_ADD")
                        
                        @schemas.classproperty
                        def DOMAIN_RESPONSIBILITY_CHANGE(cls):
                            return cls("DOMAIN_RESPONSIBILITY_CHANGE")
                        
                        @schemas.classproperty
                        def DOMAIN_RESPONSIBILITY_REMOVE(cls):
                            return cls("DOMAIN_RESPONSIBILITY_REMOVE")
                        
                        @schemas.classproperty
                        def WORKFLOW_MANAGE(cls):
                            return cls("WORKFLOW_MANAGE")
                        
                        @schemas.classproperty
                        def WORKFLOW_DESIGNER_ACCESS(cls):
                            return cls("WORKFLOW_DESIGNER_ACCESS")
                        
                        @schemas.classproperty
                        def ASSET_ADD(cls):
                            return cls("ASSET_ADD")
                        
                        @schemas.classproperty
                        def ASSET_CHANGE(cls):
                            return cls("ASSET_CHANGE")
                        
                        @schemas.classproperty
                        def ASSET_REMOVE(cls):
                            return cls("ASSET_REMOVE")
                        
                        @schemas.classproperty
                        def ASSET_STATUS_CHANGE(cls):
                            return cls("ASSET_STATUS_CHANGE")
                        
                        @schemas.classproperty
                        def ASSET_TYPE_CHANGE(cls):
                            return cls("ASSET_TYPE_CHANGE")
                        
                        @schemas.classproperty
                        def ASSET_TAG_CHANGE(cls):
                            return cls("ASSET_TAG_CHANGE")
                        
                        @schemas.classproperty
                        def ASSET_ATTRIBUTE_ADD(cls):
                            return cls("ASSET_ATTRIBUTE_ADD")
                        
                        @schemas.classproperty
                        def ASSET_ATTRIBUTE_CHANGE(cls):
                            return cls("ASSET_ATTRIBUTE_CHANGE")
                        
                        @schemas.classproperty
                        def ASSET_ATTRIBUTE_REMOVE(cls):
                            return cls("ASSET_ATTRIBUTE_REMOVE")
                        
                        @schemas.classproperty
                        def ASSET_RESPONSIBILITY_ADD(cls):
                            return cls("ASSET_RESPONSIBILITY_ADD")
                        
                        @schemas.classproperty
                        def ASSET_RESPONSIBILITY_CHANGE(cls):
                            return cls("ASSET_RESPONSIBILITY_CHANGE")
                        
                        @schemas.classproperty
                        def ASSET_RESPONSIBILITY_REMOVE(cls):
                            return cls("ASSET_RESPONSIBILITY_REMOVE")
                        
                        @schemas.classproperty
                        def VIEW_PERMISSIONS_CHANGE(cls):
                            return cls("VIEW_PERMISSIONS_CHANGE")
                        
                        @schemas.classproperty
                        def BUSINESS_SEMANTICS_GLOSSARY(cls):
                            return cls("BUSINESS_SEMANTICS_GLOSSARY")
                        
                        @schemas.classproperty
                        def REFERENCE_DATA_MANAGER(cls):
                            return cls("REFERENCE_DATA_MANAGER")
                        
                        @schemas.classproperty
                        def DATA_STEWARDSHIP_MANAGER(cls):
                            return cls("DATA_STEWARDSHIP_MANAGER")
                        
                        @schemas.classproperty
                        def SYSTEM_ADMINISTRATION(cls):
                            return cls("SYSTEM_ADMINISTRATION")
                        
                        @schemas.classproperty
                        def USER_ADMINISTRATION(cls):
                            return cls("USER_ADMINISTRATION")
                        
                        @schemas.classproperty
                        def WORKFLOW_ADMINISTRATION(cls):
                            return cls("WORKFLOW_ADMINISTRATION")
                        
                        @schemas.classproperty
                        def DATA_HELPDESK(cls):
                            return cls("DATA_HELPDESK")
                        
                        @schemas.classproperty
                        def POLICY_MANAGER(cls):
                            return cls("POLICY_MANAGER")
                        
                        @schemas.classproperty
                        def DATA_DICTIONARY(cls):
                            return cls("DATA_DICTIONARY")
                        
                        @schemas.classproperty
                        def CATALOG(cls):
                            return cls("CATALOG")
                        
                        @schemas.classproperty
                        def WORKFLOW_MANAGE_ALL(cls):
                            return cls("WORKFLOW_MANAGE_ALL")
                        
                        @schemas.classproperty
                        def WORKFLOW_MESSAGE_EVENTS_USE(cls):
                            return cls("WORKFLOW_MESSAGE_EVENTS_USE")
                        
                        @schemas.classproperty
                        def VIEW_PERMISSIONS_VIEW_ALL(cls):
                            return cls("VIEW_PERMISSIONS_VIEW_ALL")
                        
                        @schemas.classproperty
                        def VIEW_MANAGE(cls):
                            return cls("VIEW_MANAGE")
                        
                        @schemas.classproperty
                        def VIEW_SHARE(cls):
                            return cls("VIEW_SHARE")
                        
                        @schemas.classproperty
                        def VIEW_MANAGE_ALL(cls):
                            return cls("VIEW_MANAGE_ALL")
                        
                        @schemas.classproperty
                        def ADVANCED_DATA_TYPE_ADD(cls):
                            return cls("ADVANCED_DATA_TYPE_ADD")
                        
                        @schemas.classproperty
                        def ADVANCED_DATA_TYPE_EDIT(cls):
                            return cls("ADVANCED_DATA_TYPE_EDIT")
                        
                        @schemas.classproperty
                        def ADVANCED_DATA_TYPE_REMOVE(cls):
                            return cls("ADVANCED_DATA_TYPE_REMOVE")
                        
                        @schemas.classproperty
                        def TAGS_VIEW(cls):
                            return cls("TAGS_VIEW")
                        
                        @schemas.classproperty
                        def TAGS_MANAGE(cls):
                            return cls("TAGS_MANAGE")
                        
                        @schemas.classproperty
                        def VALIDATION_EXECUTION(cls):
                            return cls("VALIDATION_EXECUTION")
                        
                        @schemas.classproperty
                        def ACCESS_DATA(cls):
                            return cls("ACCESS_DATA")
                        
                        @schemas.classproperty
                        def VIEW_SAMPLES(cls):
                            return cls("VIEW_SAMPLES")
                        
                        @schemas.classproperty
                        def RELATION_TYPE_ADD(cls):
                            return cls("RELATION_TYPE_ADD")
                        
                        @schemas.classproperty
                        def RELATION_TYPE_REMOVE(cls):
                            return cls("RELATION_TYPE_REMOVE")
                        
                        @schemas.classproperty
                        def RELATION_TYPE_CHANGE(cls):
                            return cls("RELATION_TYPE_CHANGE")
                        
                        @schemas.classproperty
                        def REGISTER_PROFILING_INFORMATION(cls):
                            return cls("REGISTER_PROFILING_INFORMATION")
                        
                        @schemas.classproperty
                        def REPORTING_DOWNLOAD_INSIGHTS_DATA(cls):
                            return cls("REPORTING_DOWNLOAD_INSIGHTS_DATA")
                        
                        @schemas.classproperty
                        def REPORTING_VIEW_INSIGHTS_REPORTS(cls):
                            return cls("REPORTING_VIEW_INSIGHTS_REPORTS")
                        
                        @schemas.classproperty
                        def INSIGHTS_VIEW(cls):
                            return cls("INSIGHTS_VIEW")
                        
                        @schemas.classproperty
                        def INSIGHTS_SUMMARY(cls):
                            return cls("INSIGHTS_SUMMARY")
                        
                        @schemas.classproperty
                        def TECHNICAL_LINEAGE(cls):
                            return cls("TECHNICAL_LINEAGE")
                        
                        @schemas.classproperty
                        def LOGS_VIEW(cls):
                            return cls("LOGS_VIEW")
                        
                        @schemas.classproperty
                        def RESOURCE_MANAGE_ALL(cls):
                            return cls("RESOURCE_MANAGE_ALL")
                        
                        @schemas.classproperty
                        def CONFIGURATION_VIEW(cls):
                            return cls("CONFIGURATION_VIEW")
                        
                        @schemas.classproperty
                        def CONFIGURATION_EDIT(cls):
                            return cls("CONFIGURATION_EDIT")
                        
                        @schemas.classproperty
                        def BACKSTORE_VIEW(cls):
                            return cls("BACKSTORE_VIEW")
                        
                        @schemas.classproperty
                        def BACKSTORE_EDIT(cls):
                            return cls("BACKSTORE_EDIT")
                        
                        @schemas.classproperty
                        def ASSESSMENTS(cls):
                            return cls("ASSESSMENTS")
                        
                        @schemas.classproperty
                        def METADATA_LAKE(cls):
                            return cls("METADATA_LAKE")
                        
                        @schemas.classproperty
                        def PROTECT(cls):
                            return cls("PROTECT")
                        
                        @schemas.classproperty
                        def PROTECT_EDIT(cls):
                            return cls("PROTECT_EDIT")
                        
                        @schemas.classproperty
                        def PROTECT_ADMINISTRATION(cls):
                            return cls("PROTECT_ADMINISTRATION")
                        
                        @schemas.classproperty
                        def PRIVACY(cls):
                            return cls("PRIVACY")
            
                def __new__(
                    cls,
                    arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, ]], typing.List[typing.Union[MetaOapg.items, str, ]]],
                    _configuration: typing.Optional[schemas.Configuration] = None,
                ) -> 'permissions':
                    return super().__new__(
                        cls,
                        arg,
                        _configuration=_configuration,
                    )
            
                def __getitem__(self, i: int) -> MetaOapg.items:
                    return super().__getitem__(i)
            __annotations__ = {
                "name": name,
                "id": id,
                "global": _global,
                "description": description,
                "permissions": permissions,
            }
    
    name: MetaOapg.properties.name
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["global"]) -> MetaOapg.properties._global: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["description"]) -> MetaOapg.properties.description: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["permissions"]) -> MetaOapg.properties.permissions: ...
    
    @typing.overload
    def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
    
    def __getitem__(self, name: typing.Union[typing_extensions.Literal["name", "id", "global", "description", "permissions", ], str]):
        # dict_instance[name] accessor
        return super().__getitem__(name)
    
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["global"]) -> typing.Union[MetaOapg.properties._global, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["description"]) -> typing.Union[MetaOapg.properties.description, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["permissions"]) -> typing.Union[MetaOapg.properties.permissions, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
    
    def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["name", "id", "global", "description", "permissions", ], str]):
        return super().get_item_oapg(name)
    

    def __new__(
        cls,
        *args: typing.Union[dict, frozendict.frozendict, ],
        name: typing.Union[MetaOapg.properties.name, str, ],
        id: typing.Union[MetaOapg.properties.id, str, uuid.UUID, schemas.Unset] = schemas.unset,
        description: typing.Union[MetaOapg.properties.description, str, schemas.Unset] = schemas.unset,
        permissions: typing.Union[MetaOapg.properties.permissions, list, tuple, schemas.Unset] = schemas.unset,
        _configuration: typing.Optional[schemas.Configuration] = None,
        **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
    ) -> 'AddRoleRequest':
        return super().__new__(
            cls,
            *args,
            name=name,
            id=id,
            description=description,
            permissions=permissions,
            _configuration=_configuration,
            **kwargs,
        )
