def upload_service_version(self, service_zip_file, mode='production', service_version='default', service_id=None, **kwargs):
        '''
        upload_service_version(self, service_zip_file, mode='production', service_version='default', service_id=None, **kwargs)

        Upload a service version to Opereto

        :Parameters:
        * *service_zip_file* (`string`) -- zip file location containing service and service specification
        * *mode* (`string`) -- production/development (default is production)
        * *service_version* (`string`) -- Service version
        * *service_id* (`string`) -- Service Identifier

        :Keywords args:
        * *comment* (`string`) -- comment

        :Example:
        .. code-block:: python

           opereto_client.upload_service_version(service_zip_file=zip_action_file+'.zip', mode='production', service_version='111')

        '''
        files = {'service_file': open(service_zip_file,'rb')}
        url_suffix = '/services/upload/%s'%mode
        if mode=='production':
            url_suffix+='/'+service_version
        if service_id:
            url_suffix+='/'+service_id
        if kwargs:
            url_suffix=url_suffix+'?'+urlencode(kwargs)
        return self._call_rest_api('post', url_suffix, files=files, error='Failed to upload service version')