)]}',
{"transport":"POST","envelope":"JSON-RPC-2.0","contentType":"application\/json","SMDVersion":"2.0","methods":{"alarm.getAlarmsByArtwork":{"description":"Get alarms for an artwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false},{"type":"object","name":"page","optional":true},{"type":"object","name":"pageSize","optional":true}],"returns":"object"},"alarm.acknowledgeAlarm":{"description":"Acknowledge the alarm","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"array","name":"alarm","optional":false}],"returns":"array"},"alarm.acknowledgeAlarms":{"description":"@param $alarms, $artworkId, $address, $start, $end","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false,"description":"$address, $start, $end"}],"returns":"object","returnsDescription":"of acks"},"alarmsConfig.getStandardLimitConfig":{"description":"Gets the Standard Limit config that is used to display limit-settings screen","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"fid","optional":false}],"returns":"object"},"alarmsConfig.getLimitConfig":{"description":"Gets the default limits-config with the data fetched from apialarm\nused to display the configured limits.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"fid","optional":false}],"returns":"object"},"alarmsConfig.fetchAlarmChannelsConf":{"description":"Fetches the alarm-channels from API.\nThe channels are used to  that are used to display","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"fid","optional":false}],"returns":"object"},"alarmsConfig.update":{"description":"update","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"fid","optional":false},{"type":"any","name":"notifyConfigs","optional":false},{"type":"any","name":"limits","optional":false},{"type":"any","name":"deleteAlarmContactIds","optional":true},{"type":"any","name":"disruption","optional":true},{"type":"any","name":"onlyIfNotSet","optional":true,"default":false}],"returns":"null"},"alarmsConfig.listElementConfigs":{"description":"This method is meant for debugging purposes.\nIt simply lists current alarms and other maybe useful stuff\nTODO: remove later","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"fid","optional":false}],"returns":"array"},"alarmsConfig.getLastChannelState":{"description":"Get stored state for channel to show in UI checkboxes","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"channel","optional":false},{"type":"object","name":"fid","optional":false},{"type":"object","name":"artworkId","optional":false}],"returns":"array","returnsDescription":"channel"},"alarmsConfig.setLastChannelState":{"description":"@param $channel","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"channel","optional":false},{"type":"any","name":"fid","optional":false},{"type":"any","name":"artworkId","optional":false}],"returns":"null"},"artwork.getArtworks":{"description":"Get the list of artworks associated with currently authenticated user.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"array","returnsDescription":"[{\"name\": \"artwork_name\", \"artists\": \"artist_name\", ... }, ...] <sample>{}<\/sample> <errors>{\"code\":12000,\"message\":\"User is not authenticated.\"}<\/errors>"},"artwork.getArtwork":{"description":"Get the a artwork associated with currently authenticated user.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"id","optional":false,"description":"artworks id"}],"returns":"object","returnsDescription":"{\"name\": \"artwork_name\", \"artists\": \"artist_name\", ... } <sample>{}<\/sample> <errors> {\"code\":12000,\"message\":\"User is not authenticated.\"} {\"code\":13001,\"message\":\"Artwork not found.\"} <\/errors>"},"artwork.getSensorConfig":{"description":"@param int $artworkId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artworkId","optional":false}],"returns":"any"},"artwork.getSensorConfigBySensorId":{"description":"getSensorConfigBySensorId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"sensorId","optional":false}],"returns":"null"},"artwork.setSensorConfig":{"description":"@param int $artworkId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artworkId","optional":false},{"type":"any","name":"config","optional":false}],"returns":"any"},"artwork.updateSensorConfig":{"description":"@param int $artworkId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artworkId","optional":false},{"type":"integer","name":"accelerationAlarm","optional":false},{"type":"integer","name":"manipulationAlarm","optional":false},{"type":"integer","name":"keyboardNoise","optional":false},{"type":"integer","name":"ledSignal","optional":false},{"type":"integer","name":"messInterv","optional":false}],"returns":"boolean"},"artwork.setArtworkSensor":{"description":"Add Sensorsystem to an existing artwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artworkId","optional":false},{"type":"string","name":"current_sensor_functionalunit_id","optional":false}],"returns":"boolean"},"artwork.removeArtworkSensor":{"description":"Removes a sensor from artwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artworkId","optional":false}],"returns":"boolean"},"artwork.removeArtworkSensorWithoutAuthentication":{"description":"Remove sensor from artwork without authentication. Called from Event Controller.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false},{"type":"object","name":"fid","optional":false}],"returns":"boolean"},"artwork.cleanSensorWithoutAuthentication":{"description":"clean.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"fid","optional":false}],"returns":"null"},"artwork.addArtwork":{"description":"Add new artwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artwork_type_id","optional":true,"description":"artworks type id"},{"type":"string","name":"name","optional":true,"default":"","description":"name of artwork"},{"type":"string","name":"artist","optional":true,"default":"","description":"artist name"},{"type":"string","name":"art_created","optional":true,"default":"","description":"when created"},{"type":"string","name":"dimension_width","optional":true,"description":"dimension"},{"type":"string","name":"dimension_height","optional":true,"description":"dimension"},{"type":"string","name":"location","optional":true,"description":"name of location"},{"type":"string","name":"country","optional":true,"description":"country"},{"type":"string","name":"city","optional":true,"description":"city"},{"type":"string","name":"image_id","optional":true,"description":"image id"},{"type":"string","name":"image_name","optional":true,"description":"image name"},{"type":"string","name":"inventory_number","optional":true}],"returns":"array","returnsDescription":"saved object <sample>{\"name\":\"name\", \"artist\": \"artist\", \"users\": 1, \"artwork_type_id\": 1, \"art_created\": \"14. Jh.\", \"dimension_width\": \"10m\", \"dimension_height\": \"7m\", \"location\": \"Berliner Nationalgalerie\"}<\/sample> <errors>{\"code\":12000,\"message\":\"user is not authenticated\"}<\/errors>"},"artwork.updateArtwork":{"description":"Edit existing artwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"id","optional":false,"description":"artwork id"},{"type":"integer","name":"artwork_type_id","optional":true,"description":"artworks type id"},{"type":"string","name":"name","optional":true,"description":"name of artwork"},{"type":"string","name":"artist","optional":true,"description":"artist name"},{"type":"string","name":"art_created","optional":true,"description":"when created"},{"type":"string","name":"dimension_width","optional":true,"description":"dimension"},{"type":"string","name":"dimension_height","optional":true,"description":"dimension"},{"type":"string","name":"location","optional":true,"description":"name of location"},{"type":"string","name":"country","optional":true,"description":"country"},{"type":"string","name":"city","optional":true,"description":"city"},{"type":"string","name":"image_id","optional":true,"description":"image id"},{"type":"string","name":"image_name","optional":true,"description":"image name"},{"type":"string","name":"inventory_number","optional":true}],"returns":"boolean","returnsDescription":"true if updated <sample>{\"id\":111, \"name\":\"name\", \"artist\": \"artist\", \"users\": 1, \"artwork_type_id\": 1, \"art_created\": \"14. Jh.\", \"dimension_width\": \"10m\", \"dimension_height\": \"7m\", \"location\": \"Berliner Nationalgalerie\"}<\/sample> <errors>{\"code\":12000,\"message\":\"user is not authenticated\"}<\/errors>"},"artwork.getArtworkTypes":{"description":"Get artwork_types","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"object","returnsDescription":"{\"artwork_type_id\": \"artwork_type_name\", ...} <sample><\/sample>"},"artwork.deleteArtwork":{"description":"Sets the deleted flag on the artwork entity with the given ID.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"id","optional":false}],"returns":"null"},"authentication.authenticate":{"description":"Authenticate User by Credentials email and password","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"email","optional":false,"description":"email of user"},{"type":"string","name":"password","optional":false,"description":"password of user"}],"returns":"array","returnsDescription":"{\"firstname\": \"myfirstname\", \"lastname\": \"mylastname\"} <sample>{\"email\":\"myname\", \"password\": \"mypass\"}<\/sample> <errors>{\"code\":12001,\"message\":\"Invalid credentials.\"}<\/errors>"},"authentication.getAuthenticatedUser":{"description":"Get User-Data for currently authenticated User","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"array","returnsDescription":"{\"firstname\": \"myfirstname\", \"lastname\", \"mylastname\"} <sample>{}<\/sample> <errors>{\"code\":12000,\"message\":\"User is not authenticated.\"}<\/errors>"},"authentication.logout":{"description":"Logout the authenticated User","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"boolean","returnsDescription":"true if success <sample>{}<\/sample>"},"batteryChange.changeBattery":{"description":"changeBattery","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"artworkId","optional":false}],"returns":"null"},"contactMessage.add":{"description":"add","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"email","optional":false},{"type":"any","name":"message","optional":false},{"type":"any","name":"name","optional":true,"default":""},{"type":"any","name":"institution","optional":true,"default":""},{"type":"any","name":"telephone","optional":true,"default":""},{"type":"any","name":"fax","optional":true,"default":""},{"type":"any","name":"clientId","optional":true,"default":""}],"returns":"null"},"diagramConfig.getDiagramSettingsByArtworkId":{"description":"@param int $artworkId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artworkId","optional":false}],"returns":"object"},"diagramConfig.setSettingsForDiagramType":{"description":"@param $typeId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false},{"type":"any","name":"typeId","optional":false},{"type":"any","name":"timeRange","optional":false},{"type":"any","name":"valueRange","optional":false}],"returns":"null"},"diagramConfig.getPossibleDiagramsForArtwork":{"description":"lists the possible diagrams for an artwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false}],"returns":"object"},"hello.greet":{"description":"Simple Helloworld as JSON","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"param","optional":false,"description":"say hello with this param"}],"returns":"string","returnsDescription":"<sample>{\"param\":\"Nerd\"}<\/sample> <errors>{\"code\":007,\"message\":\"dummy fehler\",\"data\":{\"d\":1}}<\/errors>"},"password.requestPasswordReset":{"description":"Requets password reset for a user by given email.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"email","optional":false,"description":"email address of user"}],"returns":"boolean","returnsDescription":"true if password request successfully initiated <sample>{\"email\":\"bjbATupsource.de\"}<\/sample> <errors> {\"code\":11001,\"message\":\"User not found with given email\"} <\/errors>"},"password.resetPassword":{"description":"Reset password for user identified by a generated token","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"token","optional":false},{"type":"string","name":"password","optional":false}],"returns":"boolean","returnsDescription":"true if password successfully set to given one <sample>{\"hash\":\"49vtwym458yt\",\"password\":\"newPw12\"}<\/sample> <errors> {\"code\":11002,\"message\":\"Unknown hash.\",\"data\":{...}} {\"code\":11003,\"message\":\"The Password Request has expired.\"} {\"code\":11004,\"message\":{\"msg\":\"Error validating password.\", \"reasons\":[]}} <\/errors>"},"password.hasExpired":{"description":"Check if the date (created field of a password) is expired.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"time","optional":false}],"returns":"boolean","returnsDescription":"true if is expired <sample>{\"time\":\"2012-08-22 14:00:00\"}<\/sample>"},"sensorData.fetchDiagramData":{"description":"Method that returns data for the diagrams\nThe calls history api using batch capabilities.\nDepending on the resolution it will issue one ore two requests for each given address.\nUsing any non 'raw' resolution as parameter will cause two queries in batch call. One call to fetch peak\nvalues and a second call to fetch average values.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"start","optional":false},{"type":"object","name":"end","optional":false},{"type":"array","name":"addresses","optional":false},{"type":"string","name":"resolution","optional":true,"default":"raw"}],"returns":"object"},"sensorData.fetchDiagramDataForArtwork":{"description":"fetchDiagramDataForArtwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"start","optional":false},{"type":"any","name":"end","optional":false},{"type":"any","name":"addresses","optional":false},{"type":"any","name":"artworkId","optional":false},{"type":"any","name":"resolution","optional":true,"default":"raw"}],"returns":"null"},"sensorData.findTsOfLastReceivedSensorData":{"description":"Queries for the age of last data that was received for given functional unit id and returns the timestamp\nof this data.","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false}],"returns":"integer","returnsDescription":"the timestamp of last received data"},"sensorData.updateTopology":{"description":"invoked by Cron Job to update Topology  @see US_Job_UpdateSensorTopologyJob","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"fid","optional":false},{"type":"any","name":"timestamp","optional":false}],"returns":"array"},"sensorListWidget.updateWidgetSettings":{"description":"updateWidgetSettings","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"sensorId","optional":false},{"type":"any","name":"widgetSettingsId","optional":false},{"type":"any","name":"config","optional":false}],"returns":"null"},"sensorListWidget.getWidgetSettings":{"description":"getWidgetSettings","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"sensorId","optional":false},{"type":"any","name":"widgetSettingsId","optional":false}],"returns":"null"},"sensorListWidget.getDiagrams":{"description":"getDiagrams","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"sensorId","optional":false}],"returns":"null"},"sensorListWidget.getDiagramConfiguration":{"description":"getDiagramConfiguration","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"sensorId","optional":false}],"returns":"null"},"sensorUnit.getSensorUnits":{"description":"Gets the list of hardware for the authenticated user.\nreturn array [{'id': 'example_id', 'user_id': 'example_user_id', 'id': example_id, ...}, ...]","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"type_id","optional":true,"description":"filter hardware by hardware type code (optional)"}],"returns":"array","returnsDescription":"sensor units"},"sensorUnit.getFunctionalUnits":{"description":"Gets the list of functional modules for the authenticated user.\nreturn array [{'id': 'example_id', 'user_id': 'example_user_id', 'id': example_id, ...}, ...]","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"null"},"sensorUnit.getUnassignedFunctionalUnits":{"description":"Gets the list of functional modules for the authenticated user.\nreturn array [{'id': 'example_id', 'user_id': 'example_user_id', 'id': example_id, ...}, ...]","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"null"},"sensorUnit.updateSensorUnit":{"description":"Updates an existing sensor unit","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"id","optional":false,"description":"id"},{"type":"string","name":"description","optional":true,"description":"description"},{"type":"array","name":"connected_sensors","optional":true,"description":"connected sensors"}],"returns":"boolean"},"sensorUnit.getSensorUnitById":{"description":"Get a Sensor Unit by Id","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"id","optional":false}],"returns":"array","returnsDescription":"sensor unit"},"sensorUnit.getConnectedSensors":{"description":"I guess it loads some data from datapase","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"id","optional":false,"description":"$type"}],"returns":"array"},"sensorUnit.getConnectedSensorElements":{"description":"getConnectedSensorElements","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"id","optional":false}],"returns":"null"},"transport.register":{"description":"@param int $artwork_id","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artwork_id","optional":false},{"type":"string","name":"start_date","optional":false,"description":"is8601 e.g. yyyy-MM-ddTHH:mm:ssZ"},{"type":"string","name":"end_date","optional":true,"description":"is8601 e.g. yyyy-MM-ddTHH:mm:ssZ"},{"type":"string","name":"send_with_basestation_id","optional":true},{"type":"string","name":"country","optional":true},{"type":"string","name":"city","optional":true},{"type":"string","name":"location","optional":true},{"type":"integer","name":"id","optional":true}],"returns":"array"},"transport.getTransport":{"description":"@param int $artwork_id","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"artwork_id","optional":false}],"returns":"array"},"transport.delete":{"description":"@param $id transport id","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"id","optional":false}],"returns":"boolean"},"transport.deleteTransportsForArtwork":{"description":"deleteTransportsForArtwork","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"artworkId","optional":false}],"returns":"null"},"transport.deleteTransportWithoutAuthentication":{"description":"deleteTransportWithoutAuthentication","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"artworkId","optional":false}],"returns":"null"},"transport.deleteFiltersForFid":{"description":"@param $fid","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"fid","optional":false}],"returns":"null"},"transport.deleteReleased":{"description":"@param $transportId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"transportId","optional":false}],"returns":"array"},"transport.acknowledgeTransport":{"description":"acknowledgeTransport","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"artworkId","optional":false}],"returns":"null"},"user.updateUser":{"description":"Update User Profile Data","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"integer","name":"id","optional":false},{"type":"string","name":"email","optional":false},{"type":"string","name":"firstname","optional":true,"default":""},{"type":"string","name":"lastname","optional":true,"default":""},{"type":"string","name":"country","optional":true,"default":""},{"type":"string","name":"city","optional":true,"default":""},{"type":"string","name":"street","optional":true,"default":""},{"type":"string","name":"zipcode","optional":true,"default":""},{"type":"string","name":"phone","optional":true,"default":""},{"type":"string","name":"fax","optional":true,"default":""},{"type":"string","name":"institution","optional":true,"default":""},{"type":"array","name":"alarmContacts","optional":true,"default":[]},{"type":"array","name":"alarmContactsToDelete","optional":true,"default":[]}],"returns":"boolean","returnsDescription":"<sample>{\"id\": \"userid\", \"email\":\"mynameATfoo.bar\", \"firstname\": \"mynewfirstname\"}<\/sample>"},"user.deleteAlarmContacts":{"description":"deleteAlarmContacts","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"any","name":"alarmContactsToDelete","optional":false}],"returns":"null"},"user.getAlarmContactsForUser":{"description":"@return array","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"array"},"user.savePassword":{"description":"Update User Password","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"id","optional":false},{"type":"object","name":"password","optional":false}],"returns":"null"},"widget.updateWidgetSettings":{"description":"@param $artworkId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false},{"type":"object","name":"widgetSettingsId","optional":false},{"type":"object","name":"conf","optional":false}],"returns":"boolean"},"widget.getWidgetSettings":{"description":"@param string $artworkId","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"string","name":"artworkId","optional":false},{"type":"string","name":"widgetSettingsId","optional":false}],"returns":"null"},"widget.getSensorWidgetInformation":{"description":"Discovers most of the needed information for the sensor widget","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false},{"type":"boolean","name":"calculateState","optional":true,"default":true}],"returns":"object"},"widget.getHardwareStateInformation":{"description":"Get Hardware State Information for one Sensor Unit","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"sensorUnit","optional":false}],"returns":"object"},"widget.getUnknownState":{"description":"@return Application_InternalService_WidgetState","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[],"returns":"object"},"widget.findTsOfLastReceivedSensorData":{"description":"searches for last data that where submitted to the system by given sensor","envelope":"JSON-RPC-2.0","transport":"POST","parameters":[{"type":"object","name":"artworkId","optional":false}],"returns":"integer"}}}