def train_project(<EOL>self, project_id, training_type=None, reserved_budget_in_hours=<NUM_LIT:0>, force_train=False, notification_email_address=None, custom_headers=None, raw=False, **operation_config):
<EOL>url = self.train_project.metadata['<STR_LIT:url>']<EOL>path_format_arguments = {<EOL>'<STR_LIT>': self._serialize.url("<STR_LIT>", self.config.endpoint, '<STR_LIT:str>', skip_quote=True),<EOL>'<STR_LIT>': self._serialize.url("<STR_LIT>", project_id, '<STR_LIT:str>')<EOL>}<EOL>url = self._client.format_url(url, **path_format_arguments)<EOL>query_parameters = {}<EOL>if training_type is not None:<EOL><INDENT>query_parameters['<STR_LIT>'] = self._serialize.query("<STR_LIT>", training_type, '<STR_LIT:str>')<EOL><DEDENT>if reserved_budget_in_hours is not None:<EOL><INDENT>query_parameters['<STR_LIT>'] = self._serialize.query("<STR_LIT>", reserved_budget_in_hours, '<STR_LIT:int>')<EOL><DEDENT>if force_train is not None:<EOL><INDENT>query_parameters['<STR_LIT>'] = self._serialize.query("<STR_LIT>", force_train, '<STR_LIT:bool>')<EOL><DEDENT>if notification_email_address is not None:<EOL><INDENT>query_parameters['<STR_LIT>'] = self._serialize.query("<STR_LIT>", notification_email_address, '<STR_LIT:str>')<EOL><DEDENT>header_parameters = {}<EOL>header_parameters['<STR_LIT>'] = '<STR_LIT:application/json>'<EOL>if custom_headers:<EOL><INDENT>header_parameters.update(custom_headers)<EOL><DEDENT>header_parameters['<STR_LIT>'] = self._serialize.header("<STR_LIT>", self.config.api_key, '<STR_LIT:str>')<EOL>request = self._client.post(url, query_parameters, header_parameters)<EOL>response = self._client.send(request, stream=False, **operation_config)<EOL>if response.status_code not in [<NUM_LIT:200>]:<EOL><INDENT>raise models.CustomVisionErrorException(self._deserialize, response)<EOL><DEDENT>deserialized = None<EOL>if response.status_code == <NUM_LIT:200>:<EOL><INDENT>deserialized = self._deserialize('<STR_LIT>', response)<EOL><DEDENT>if raw:<EOL><INDENT>client_raw_response = ClientRawResponse(deserialized, response)<EOL>return client_raw_response<EOL><DEDENT>return deserialized<EOL>
Queues project for training.

        :param project_id: The project id.
        :type project_id: str
        :param training_type: The type of training to use to train the project
         (default: Regular). Possible values include: 'Regular', 'Advanced'
        :type training_type: str
        :param reserved_budget_in_hours: The number of hours reserved as
         budget for training (if applicable).
        :type reserved_budget_in_hours: int
        :param force_train: Whether to force train even if dataset and
         configuration does not change (default: false).
        :type force_train: bool
        :param notification_email_address: The email address to send
         notification to when training finishes (default: null).
        :type notification_email_address: str
        :param dict custom_headers: headers that will be added to the request
        :param bool raw: returns the direct response alongside the
         deserialized response
        :param operation_config: :ref:`Operation configuration
         overrides<msrest:optionsforoperations>`.
        :return: Iteration or ClientRawResponse if raw=true
        :rtype:
         ~azure.cognitiveservices.vision.customvision.training.models.Iteration
         or ~msrest.pipeline.ClientRawResponse
        :raises:
         :class:`CustomVisionErrorException<azure.cognitiveservices.vision.customvision.training.models.CustomVisionErrorException>`