# 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 ChangeWorkflowDefinitionRequest(
    schemas.DictSchema
):
    """NOTE: This class is auto generated by OpenAPI Generator.
    Ref: https://openapi-generator.tech

    Do not edit the class manually.

    Parameters for the workflow definition to be changed.
    """


    class MetaOapg:
        
        class properties:
            
            
            class name(
                schemas.StrSchema
            ):
            
            
                class MetaOapg:
                    max_length = 2000
                    min_length = 1
            description = schemas.StrSchema
            
            
            class configurationVariables(
                schemas.DictSchema
            ):
            
            
                class MetaOapg:
                    additional_properties = schemas.StrSchema
                
                def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
                    # dict_instance[name] accessor
                    return super().__getitem__(name)
                
                def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
                    return super().get_item_oapg(name)
            
                def __new__(
                    cls,
                    *args: typing.Union[dict, frozendict.frozendict, ],
                    _configuration: typing.Optional[schemas.Configuration] = None,
                    **kwargs: typing.Union[MetaOapg.additional_properties, str, ],
                ) -> 'configurationVariables':
                    return super().__new__(
                        cls,
                        *args,
                        _configuration=_configuration,
                        **kwargs,
                    )
            
            
            class startEvents(
                schemas.ListSchema
            ):
            
            
                class MetaOapg:
                    
                    
                    class items(
                        schemas.EnumBase,
                        schemas.StrSchema
                    ):
                    
                    
                        class MetaOapg:
                            enum_value_to_name = {
                                "ASSET_ADDED": "ASSET_ADDED",
                                "ASSET_REMOVED": "ASSET_REMOVED",
                                "ASSET_STATUS_CHANGED": "ASSET_STATUS_CHANGED",
                                "ASSET_DOMAIN_CHANGED": "ASSET_DOMAIN_CHANGED",
                                "ASSET_TYPE_CHANGED": "ASSET_TYPE_CHANGED",
                                "ASSET_ATTRIBUTE_CHANGED": "ASSET_ATTRIBUTE_CHANGED",
                                "ASSET_NAME_CHANGED": "ASSET_NAME_CHANGED",
                                "ASSET_DISPLAY_NAME_CHANGED": "ASSET_DISPLAY_NAME_CHANGED",
                                "ASSET_ATTRIBUTE_ADDED": "ASSET_ATTRIBUTE_ADDED",
                                "ASSET_ATTRIBUTE_REMOVED": "ASSET_ATTRIBUTE_REMOVED",
                                "DOMAIN_ADDED": "DOMAIN_ADDED",
                                "DOMAIN_REMOVED": "DOMAIN_REMOVED",
                                "ROLE_GRANTED": "ROLE_GRANTED",
                                "ROLE_REVOKED": "ROLE_REVOKED",
                                "WORKFLOW_STARTED": "WORKFLOW_STARTED",
                                "WORKFLOW_CANCELED": "WORKFLOW_CANCELED",
                                "WORKLFLOW_ESCALATION": "WORKLFLOW_ESCALATION",
                                "WORKFLOW_TASK_COMPLETED": "WORKFLOW_TASK_COMPLETED",
                                "USER_ADDED": "USER_ADDED",
                                "USER_REMOVED": "USER_REMOVED",
                                "USER_DISABLED": "USER_DISABLED",
                                "COMMENT_ADDED": "COMMENT_ADDED",
                                "COMMENT_REMOVED": "COMMENT_REMOVED",
                                "COMMENT_CHANGED": "COMMENT_CHANGED",
                                "RELATION_ADDED_AND_ASSET_IS_SOURCE": "RELATION_ADDED_AND_ASSET_IS_SOURCE",
                                "RELATION_REMOVED_AND_ASSET_WAS_SOURCE": "RELATION_REMOVED_AND_ASSET_WAS_SOURCE",
                                "RELATION_ADDED_AND_ASSET_IS_TARGET": "RELATION_ADDED_AND_ASSET_IS_TARGET",
                                "RELATION_REMOVED_AND_ASSET_WAS_TARGET": "RELATION_REMOVED_AND_ASSET_WAS_TARGET",
                                "TAG_ASSIGN_CHANGED": "TAG_ASSIGN_CHANGED",
                                "CLASSIFICATION_MATCH_ACCEPTED": "CLASSIFICATION_MATCH_ACCEPTED",
                                "CLASSIFICATION_MATCH_REJECTED": "CLASSIFICATION_MATCH_REJECTED",
                                "CLASSIFICATION_MATCH_ADDED": "CLASSIFICATION_MATCH_ADDED",
                                "CLASSIFICATION_MATCH_REMOVED": "CLASSIFICATION_MATCH_REMOVED",
                                "CLASSIFICATION_MATCH_UPDATED": "CLASSIFICATION_MATCH_UPDATED",
                                "DATABASE_REGISTRATION_COMPLETED": "DATABASE_REGISTRATION_COMPLETED",
                                "DATABASE_REGISTRATION_FAILED": "DATABASE_REGISTRATION_FAILED",
                            }
                        
                        @schemas.classproperty
                        def ASSET_ADDED(cls):
                            return cls("ASSET_ADDED")
                        
                        @schemas.classproperty
                        def ASSET_REMOVED(cls):
                            return cls("ASSET_REMOVED")
                        
                        @schemas.classproperty
                        def ASSET_STATUS_CHANGED(cls):
                            return cls("ASSET_STATUS_CHANGED")
                        
                        @schemas.classproperty
                        def ASSET_DOMAIN_CHANGED(cls):
                            return cls("ASSET_DOMAIN_CHANGED")
                        
                        @schemas.classproperty
                        def ASSET_TYPE_CHANGED(cls):
                            return cls("ASSET_TYPE_CHANGED")
                        
                        @schemas.classproperty
                        def ASSET_ATTRIBUTE_CHANGED(cls):
                            return cls("ASSET_ATTRIBUTE_CHANGED")
                        
                        @schemas.classproperty
                        def ASSET_NAME_CHANGED(cls):
                            return cls("ASSET_NAME_CHANGED")
                        
                        @schemas.classproperty
                        def ASSET_DISPLAY_NAME_CHANGED(cls):
                            return cls("ASSET_DISPLAY_NAME_CHANGED")
                        
                        @schemas.classproperty
                        def ASSET_ATTRIBUTE_ADDED(cls):
                            return cls("ASSET_ATTRIBUTE_ADDED")
                        
                        @schemas.classproperty
                        def ASSET_ATTRIBUTE_REMOVED(cls):
                            return cls("ASSET_ATTRIBUTE_REMOVED")
                        
                        @schemas.classproperty
                        def DOMAIN_ADDED(cls):
                            return cls("DOMAIN_ADDED")
                        
                        @schemas.classproperty
                        def DOMAIN_REMOVED(cls):
                            return cls("DOMAIN_REMOVED")
                        
                        @schemas.classproperty
                        def ROLE_GRANTED(cls):
                            return cls("ROLE_GRANTED")
                        
                        @schemas.classproperty
                        def ROLE_REVOKED(cls):
                            return cls("ROLE_REVOKED")
                        
                        @schemas.classproperty
                        def WORKFLOW_STARTED(cls):
                            return cls("WORKFLOW_STARTED")
                        
                        @schemas.classproperty
                        def WORKFLOW_CANCELED(cls):
                            return cls("WORKFLOW_CANCELED")
                        
                        @schemas.classproperty
                        def WORKLFLOW_ESCALATION(cls):
                            return cls("WORKLFLOW_ESCALATION")
                        
                        @schemas.classproperty
                        def WORKFLOW_TASK_COMPLETED(cls):
                            return cls("WORKFLOW_TASK_COMPLETED")
                        
                        @schemas.classproperty
                        def USER_ADDED(cls):
                            return cls("USER_ADDED")
                        
                        @schemas.classproperty
                        def USER_REMOVED(cls):
                            return cls("USER_REMOVED")
                        
                        @schemas.classproperty
                        def USER_DISABLED(cls):
                            return cls("USER_DISABLED")
                        
                        @schemas.classproperty
                        def COMMENT_ADDED(cls):
                            return cls("COMMENT_ADDED")
                        
                        @schemas.classproperty
                        def COMMENT_REMOVED(cls):
                            return cls("COMMENT_REMOVED")
                        
                        @schemas.classproperty
                        def COMMENT_CHANGED(cls):
                            return cls("COMMENT_CHANGED")
                        
                        @schemas.classproperty
                        def RELATION_ADDED_AND_ASSET_IS_SOURCE(cls):
                            return cls("RELATION_ADDED_AND_ASSET_IS_SOURCE")
                        
                        @schemas.classproperty
                        def RELATION_REMOVED_AND_ASSET_WAS_SOURCE(cls):
                            return cls("RELATION_REMOVED_AND_ASSET_WAS_SOURCE")
                        
                        @schemas.classproperty
                        def RELATION_ADDED_AND_ASSET_IS_TARGET(cls):
                            return cls("RELATION_ADDED_AND_ASSET_IS_TARGET")
                        
                        @schemas.classproperty
                        def RELATION_REMOVED_AND_ASSET_WAS_TARGET(cls):
                            return cls("RELATION_REMOVED_AND_ASSET_WAS_TARGET")
                        
                        @schemas.classproperty
                        def TAG_ASSIGN_CHANGED(cls):
                            return cls("TAG_ASSIGN_CHANGED")
                        
                        @schemas.classproperty
                        def CLASSIFICATION_MATCH_ACCEPTED(cls):
                            return cls("CLASSIFICATION_MATCH_ACCEPTED")
                        
                        @schemas.classproperty
                        def CLASSIFICATION_MATCH_REJECTED(cls):
                            return cls("CLASSIFICATION_MATCH_REJECTED")
                        
                        @schemas.classproperty
                        def CLASSIFICATION_MATCH_ADDED(cls):
                            return cls("CLASSIFICATION_MATCH_ADDED")
                        
                        @schemas.classproperty
                        def CLASSIFICATION_MATCH_REMOVED(cls):
                            return cls("CLASSIFICATION_MATCH_REMOVED")
                        
                        @schemas.classproperty
                        def CLASSIFICATION_MATCH_UPDATED(cls):
                            return cls("CLASSIFICATION_MATCH_UPDATED")
                        
                        @schemas.classproperty
                        def DATABASE_REGISTRATION_COMPLETED(cls):
                            return cls("DATABASE_REGISTRATION_COMPLETED")
                        
                        @schemas.classproperty
                        def DATABASE_REGISTRATION_FAILED(cls):
                            return cls("DATABASE_REGISTRATION_FAILED")
            
                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,
                ) -> 'startEvents':
                    return super().__new__(
                        cls,
                        arg,
                        _configuration=_configuration,
                    )
            
                def __getitem__(self, i: int) -> MetaOapg.items:
                    return super().__getitem__(i)
            
            
            class businessItemResourceType(
                schemas.EnumBase,
                schemas.StrSchema
            ):
            
            
                class MetaOapg:
                    enum_value_to_name = {
                        "ASSET": "ASSET",
                        "DOMAIN": "DOMAIN",
                        "COMMUNITY": "COMMUNITY",
                        "GLOBAL": "GLOBAL",
                    }
                
                @schemas.classproperty
                def ASSET(cls):
                    return cls("ASSET")
                
                @schemas.classproperty
                def DOMAIN(cls):
                    return cls("DOMAIN")
                
                @schemas.classproperty
                def COMMUNITY(cls):
                    return cls("COMMUNITY")
                
                @schemas.classproperty
                def GLOBAL(cls):
                    return cls("GLOBAL")
            
            
            class exclusivity(
                schemas.EnumBase,
                schemas.StrSchema
            ):
            
            
                class MetaOapg:
                    enum_value_to_name = {
                        "RESOURCE_EXCLUSIVITY": "RESOURCE_EXCLUSIVITY",
                        "DEFINITION_EXCLUSIVITY": "DEFINITION_EXCLUSIVITY",
                        "UNCONSTRAINED": "UNCONSTRAINED",
                    }
                
                @schemas.classproperty
                def RESOURCE_EXCLUSIVITY(cls):
                    return cls("RESOURCE_EXCLUSIVITY")
                
                @schemas.classproperty
                def DEFINITION_EXCLUSIVITY(cls):
                    return cls("DEFINITION_EXCLUSIVITY")
                
                @schemas.classproperty
                def UNCONSTRAINED(cls):
                    return cls("UNCONSTRAINED")
            guestUserAccessible = schemas.BoolSchema
            registeredUserAccessible = schemas.BoolSchema
            candidateUserCheckDisabled = schemas.BoolSchema
            candidateUserCheckEnabled = schemas.BoolSchema
            globalCreate = schemas.BoolSchema
            enable = schemas.BoolSchema
            startLabel = schemas.StrSchema
            
            
            class startRoleIds(
                schemas.ListSchema
            ):
            
            
                class MetaOapg:
                    items = schemas.UUIDSchema
            
                def __new__(
                    cls,
                    arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, uuid.UUID, ]], typing.List[typing.Union[MetaOapg.items, str, uuid.UUID, ]]],
                    _configuration: typing.Optional[schemas.Configuration] = None,
                ) -> 'startRoleIds':
                    return super().__new__(
                        cls,
                        arg,
                        _configuration=_configuration,
                    )
            
                def __getitem__(self, i: int) -> MetaOapg.items:
                    return super().__getitem__(i)
            
            
            class stopRoleIds(
                schemas.ListSchema
            ):
            
            
                class MetaOapg:
                    items = schemas.UUIDSchema
            
                def __new__(
                    cls,
                    arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, uuid.UUID, ]], typing.List[typing.Union[MetaOapg.items, str, uuid.UUID, ]]],
                    _configuration: typing.Optional[schemas.Configuration] = None,
                ) -> 'stopRoleIds':
                    return super().__new__(
                        cls,
                        arg,
                        _configuration=_configuration,
                    )
            
                def __getitem__(self, i: int) -> MetaOapg.items:
                    return super().__getitem__(i)
            
            
            class reassignRoleIds(
                schemas.ListSchema
            ):
            
            
                class MetaOapg:
                    items = schemas.UUIDSchema
            
                def __new__(
                    cls,
                    arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, uuid.UUID, ]], typing.List[typing.Union[MetaOapg.items, str, uuid.UUID, ]]],
                    _configuration: typing.Optional[schemas.Configuration] = None,
                ) -> 'reassignRoleIds':
                    return super().__new__(
                        cls,
                        arg,
                        _configuration=_configuration,
                    )
            
                def __getitem__(self, i: int) -> MetaOapg.items:
                    return super().__getitem__(i)
            __annotations__ = {
                "name": name,
                "description": description,
                "configurationVariables": configurationVariables,
                "startEvents": startEvents,
                "businessItemResourceType": businessItemResourceType,
                "exclusivity": exclusivity,
                "guestUserAccessible": guestUserAccessible,
                "registeredUserAccessible": registeredUserAccessible,
                "candidateUserCheckDisabled": candidateUserCheckDisabled,
                "candidateUserCheckEnabled": candidateUserCheckEnabled,
                "globalCreate": globalCreate,
                "enable": enable,
                "startLabel": startLabel,
                "startRoleIds": startRoleIds,
                "stopRoleIds": stopRoleIds,
                "reassignRoleIds": reassignRoleIds,
            }
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["description"]) -> MetaOapg.properties.description: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["configurationVariables"]) -> MetaOapg.properties.configurationVariables: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["startEvents"]) -> MetaOapg.properties.startEvents: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["businessItemResourceType"]) -> MetaOapg.properties.businessItemResourceType: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["exclusivity"]) -> MetaOapg.properties.exclusivity: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["guestUserAccessible"]) -> MetaOapg.properties.guestUserAccessible: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["registeredUserAccessible"]) -> MetaOapg.properties.registeredUserAccessible: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["candidateUserCheckDisabled"]) -> MetaOapg.properties.candidateUserCheckDisabled: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["candidateUserCheckEnabled"]) -> MetaOapg.properties.candidateUserCheckEnabled: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["globalCreate"]) -> MetaOapg.properties.globalCreate: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["enable"]) -> MetaOapg.properties.enable: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["startLabel"]) -> MetaOapg.properties.startLabel: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["startRoleIds"]) -> MetaOapg.properties.startRoleIds: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["stopRoleIds"]) -> MetaOapg.properties.stopRoleIds: ...
    
    @typing.overload
    def __getitem__(self, name: typing_extensions.Literal["reassignRoleIds"]) -> MetaOapg.properties.reassignRoleIds: ...
    
    @typing.overload
    def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
    
    def __getitem__(self, name: typing.Union[typing_extensions.Literal["name", "description", "configurationVariables", "startEvents", "businessItemResourceType", "exclusivity", "guestUserAccessible", "registeredUserAccessible", "candidateUserCheckDisabled", "candidateUserCheckEnabled", "globalCreate", "enable", "startLabel", "startRoleIds", "stopRoleIds", "reassignRoleIds", ], str]):
        # dict_instance[name] accessor
        return super().__getitem__(name)
    
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> typing.Union[MetaOapg.properties.name, 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["configurationVariables"]) -> typing.Union[MetaOapg.properties.configurationVariables, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["startEvents"]) -> typing.Union[MetaOapg.properties.startEvents, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["businessItemResourceType"]) -> typing.Union[MetaOapg.properties.businessItemResourceType, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["exclusivity"]) -> typing.Union[MetaOapg.properties.exclusivity, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["guestUserAccessible"]) -> typing.Union[MetaOapg.properties.guestUserAccessible, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["registeredUserAccessible"]) -> typing.Union[MetaOapg.properties.registeredUserAccessible, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["candidateUserCheckDisabled"]) -> typing.Union[MetaOapg.properties.candidateUserCheckDisabled, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["candidateUserCheckEnabled"]) -> typing.Union[MetaOapg.properties.candidateUserCheckEnabled, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["globalCreate"]) -> typing.Union[MetaOapg.properties.globalCreate, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["enable"]) -> typing.Union[MetaOapg.properties.enable, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["startLabel"]) -> typing.Union[MetaOapg.properties.startLabel, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["startRoleIds"]) -> typing.Union[MetaOapg.properties.startRoleIds, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["stopRoleIds"]) -> typing.Union[MetaOapg.properties.stopRoleIds, schemas.Unset]: ...
    
    @typing.overload
    def get_item_oapg(self, name: typing_extensions.Literal["reassignRoleIds"]) -> typing.Union[MetaOapg.properties.reassignRoleIds, 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", "description", "configurationVariables", "startEvents", "businessItemResourceType", "exclusivity", "guestUserAccessible", "registeredUserAccessible", "candidateUserCheckDisabled", "candidateUserCheckEnabled", "globalCreate", "enable", "startLabel", "startRoleIds", "stopRoleIds", "reassignRoleIds", ], str]):
        return super().get_item_oapg(name)
    

    def __new__(
        cls,
        *args: typing.Union[dict, frozendict.frozendict, ],
        name: typing.Union[MetaOapg.properties.name, str, schemas.Unset] = schemas.unset,
        description: typing.Union[MetaOapg.properties.description, str, schemas.Unset] = schemas.unset,
        configurationVariables: typing.Union[MetaOapg.properties.configurationVariables, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
        startEvents: typing.Union[MetaOapg.properties.startEvents, list, tuple, schemas.Unset] = schemas.unset,
        businessItemResourceType: typing.Union[MetaOapg.properties.businessItemResourceType, str, schemas.Unset] = schemas.unset,
        exclusivity: typing.Union[MetaOapg.properties.exclusivity, str, schemas.Unset] = schemas.unset,
        guestUserAccessible: typing.Union[MetaOapg.properties.guestUserAccessible, bool, schemas.Unset] = schemas.unset,
        registeredUserAccessible: typing.Union[MetaOapg.properties.registeredUserAccessible, bool, schemas.Unset] = schemas.unset,
        candidateUserCheckDisabled: typing.Union[MetaOapg.properties.candidateUserCheckDisabled, bool, schemas.Unset] = schemas.unset,
        candidateUserCheckEnabled: typing.Union[MetaOapg.properties.candidateUserCheckEnabled, bool, schemas.Unset] = schemas.unset,
        globalCreate: typing.Union[MetaOapg.properties.globalCreate, bool, schemas.Unset] = schemas.unset,
        enable: typing.Union[MetaOapg.properties.enable, bool, schemas.Unset] = schemas.unset,
        startLabel: typing.Union[MetaOapg.properties.startLabel, str, schemas.Unset] = schemas.unset,
        startRoleIds: typing.Union[MetaOapg.properties.startRoleIds, list, tuple, schemas.Unset] = schemas.unset,
        stopRoleIds: typing.Union[MetaOapg.properties.stopRoleIds, list, tuple, schemas.Unset] = schemas.unset,
        reassignRoleIds: typing.Union[MetaOapg.properties.reassignRoleIds, 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],
    ) -> 'ChangeWorkflowDefinitionRequest':
        return super().__new__(
            cls,
            *args,
            name=name,
            description=description,
            configurationVariables=configurationVariables,
            startEvents=startEvents,
            businessItemResourceType=businessItemResourceType,
            exclusivity=exclusivity,
            guestUserAccessible=guestUserAccessible,
            registeredUserAccessible=registeredUserAccessible,
            candidateUserCheckDisabled=candidateUserCheckDisabled,
            candidateUserCheckEnabled=candidateUserCheckEnabled,
            globalCreate=globalCreate,
            enable=enable,
            startLabel=startLabel,
            startRoleIds=startRoleIds,
            stopRoleIds=stopRoleIds,
            reassignRoleIds=reassignRoleIds,
            _configuration=_configuration,
            **kwargs,
        )
