[[PageOutline(3,API methods,pullout)]] = Cinnamon Application Programming Interface (API) > **NOTE:** This documentation is under construction. See [wiki:Public/Docs/CinnamonApiConceptualDescription Cinnamon API conceptual description] for general information how to use the API. == Methods by name === attachlifecycle === changestate === connect ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{connect}}} || ||{{{repository}}} ||Name of the repository. || ||{{{user}}} ||User name. || ||{{{pwd}}} ||User password. || ||{{{machine}}} ||Machine name of the client machine. || ==== Return value The {{{connect}}} command returns an XML structure like this: {{{#!xml 319b75df-9840-4316-9647-f34625eb5515@content }}} The {{{}}} element contains the session ticket the server has assigned. The client application must remember the ticket and use it as a parameter for all subsequent API calls, including {{{disconnect}}}. {{{#!comment TODO: to be documented what can go wrong (false credentials etc.). }}} ==== Description The {{{connect}}} command establishes a session with the server and returns the session ticket. === copy === copytoexisting FIXME The documentation for the {{{copytoexisting}}} command is under construction. ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{copytoexisting}}} || ||{{{sourceid}}} ||ID of the object whose content and / or metadata is to be copied. || ||{{{targetid}}} ||ID of the target object to write the source data into. The target object can be any version of an existing object. || ||{{{copymetasets}}} ||Comma separated list of metaset names that should be copied from source to target. The parameter is optional, if it is left out, no metasets will be copied. || ||{{{copycontent}}} ||{{{true}}} to copy content, {{{false}}} to copy metasets only. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{copytoexisting}}} command returns an XML structure like this: TODO {{{#!xml }}} TODO: explain. {{{#!comment TODO: to be documented what can go wrong (false credentials etc.). }}} ==== Description The {{{copytoexisting}}} command copies content and / or metadata from the object specified by {{{sourceid}}} to an existing object specified by {{{targetid}}}. The boolean {{{copycontent}}} parameter controls whether the content should be copied or not. The optional {{{copymetasets}}} parameter controls the metasets to be copied, specified as a comma separated list of metaset names. TODO: is a lock required? === createlink === create === createfolder === createrelation === delete === deleteallversions === deletefolder === deletelink === deleterelation === detachlifecycle === disconnect ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{disconnect}}} || ||{{{ticket}}} ||Session ticket to disconnect. || ==== Return value The {{{disconnect}}} command returns an XML structure like this: {{{#!xml success.disconnect }}} {{{#!comment TODO: to be documented what can go wrong (error.disconnect?). }}} ==== Description The {{{disconnect}}} command ends an existing session, identified by its {{{ticket}}}. === echo > **NOTE:** echo has no legacy action. === getacls > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === getconfigentry === getcontent ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{getcontent}}} || ||{{{id}}} ||ID of the object whose content is to be retrieved. || ||{{{ticket}}} ||Session ticket to disconnect. || ==== Return value The {{{getcontent}}} command returns a stream with the content of the object. Typically, it is written to a file. {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} ==== Description The {{{getcontent}}} retrieves the content of an object identified by its {{{id}}}. {{{getcontent}}} is the only command returning file content instead of an XML structure. === getfolder === getfolderbypath ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{getfolderbypath}}} || ||{{{path}}} ||[wiki:Public/Docs/CinnamonFolderPaths Path] to the folder. || ||{{{include_summary}}} ||{{{true}}} returns [wiki:Public/Docs/CinnamonSummary summary ] with each object, [[br]]{{{false}}} does not. [[br]]The parameter can be omitted, the default is {{{false}}}. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{getfolderbypath}}} command returns an [wiki:Public/Docs/CinnamonFolderXml XML representation of the folder] with the given path. {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} === getfoldermeta === getfoldersbyid === getfoldertypes > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === getformats === getmeta ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{getmeta}}} || ||{{{id}}} ||ID of the object whose metadata is to be retrieved. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{getmeta}}} command returns the [wiki:Public/Docs/CinnamonMetadata metadata] of the object with the specified id. {{{getmeta}}} does not support folders, use the [#getfoldermeta getfoldermeta] command instead, or retrieve a specific metaset with [#getmetaset getmetaset] (which also works for folders). {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} === getmetaset ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{getmetaset}}} || ||{{{id}}} ||ID of the object whose metadata is to be retrieved. || ||{{{class_name}}} ||{{{OSD}}} (**O**bject **S**ystem **D**ata) to retrieve an object metaset, {{{Folder}}} to retrieve a folder metaset. || ||{{{type_name}}} ||Name of the metaset type to be retrieved. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{getmetaset}}} command returns one metaset of the [wiki:Public/Docs/CinnamonMetadata metadata] of the object or folder with the specified id. {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} === getobject === getobjects ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{getobjects}}} || ||{{{parentid}}} ||ID of the parent folder of the objects to be retrieved. || ||{{{include_summary}}} ||{{{true}}} returns [wiki:Public/Docs/CinnamonSummary summary ] with each object, [[br]]{{{false}}} does not. [[br]]The parameter can be omitted, the default is {{{false}}}. || ||{{{versions}}} ||{{{all}}} to return all [wiki:Public/Docs/CinnamonVersioning versions], [[br]]{{{branch}}} to return only the end nodes of branches, [[br]]{{{head}}} to return only the latest versions of the returned objects. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{getobjects}}} command returns the objects inside the given parent folder as an [wiki:Public/Docs/CinnamonObjectXml XML representation]. {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} === getobjectsbyid === getobjtypes > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === getrelations === getrelationtypes > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === getsubfolders ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{getsubfolders}}} || ||{{{parentid}}} ||ID of the parent folder of the subfolders to be retrieved.[[br]] The value {{{0}}} returns the subfolders of the root folder. || ||{{{include_summary}}} ||{{{true}}} returns [wiki:Public/Docs/CinnamonSummary summary ] with each object, [[br]]{{{false}}} does not. [[br]]The parameter can be omitted, the default is {{{false}}}. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{getsubfolders}}} command returns the subfolders inside the given parent folder as an [wiki:Public/Docs/CinnamonFolderXml XML representation]. {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} === getusers > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === getuserspermissions === listaclentries > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listgroups > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listindexgroups > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listindexitems > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listlanguages > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listlifecycles > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listmetasettypes > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === listuilanguages > **NOTE:** This API method will be replaced by a future, global session configuration transfer instead of individual methods. === lock > **NOTE:** The {{{lock}}} command ist wrapped with the {{{lockobject}}} method in the {{{NativeApiServerConnector.ServerCommandSession}}} class, because {{{lock}}} is a reserved word in C#. ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{lock}}} || ||{{{id}}} ||ID of the object to be locked. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{lock}}} command returns {{{}}} or an {{{}}} element containing a message. ==== Description The {{{lock}}} command places a write lock on the object identified by the {{{id}}} parameter. === renderindexedosd > **NOTE:** New in build 117. === renderindexedfolder > **NOTE:** New in build 117. === searchfolders === searchobjectids === searchobjects ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{searchobjects}}} || ||{{{ticket}}} ||Session ticket. || ||{{{query}}} ||Native Lucene XML query. || ||{{{include_summary}}} ||{{{true}}} returns [wiki:Public/Docs/CinnamonSummary summary ] with each object, [[br]]{{{false}}} does not. [[br]]The parameter can be omitted, the default is {{{false}}}. || ||{{{page_size}}} ||[optional] Maximal number of objects to returned. || ||{{{page}}} ||[optional] Zero-based index of the page to return, this parameter may only be set if {{{page_size}}} has also been set. || ==== Return value The {{{searchobjects}}} command returns an [wiki:Public/Docs/CinnamonObjectXml XML structure] like this: {{{#!xml }}} {{{#!comment TODO: to be documented what can go wrong . }}} ==== Description The {{{searchobjects}}} command executes a search using a Lucene XML query and returns the objects found as an XML structure. === setchangedstatus === setcontent ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{setcontent}}} || ||{{{id}}} ||ID of the object whose content is to be uploaded. || ||{{{format}}} ||System name of the format whose content is to be uploaded. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{setcontent}}} command command returns {{{}}} or an {{{}}} element containing a message. {{{#!comment TODO: to be documented what can go wrong (wrong id etc.). }}} ==== Description The {{{setcontent}}} command uploads content of the format identified by {{{format}}} to an existing object identified by its {{{id}}}. {{{setcontent}}} sends the file content stream to the server. === setmeta === setmetaset === setpassword === setsummary === setsysmeta === unlock > **NOTE:** The {{{unlock}}} command ist wrapped with the {{{unlockobject}}} method in the {{{NativeApiServerConnector.ServerCommandSession}}} class for symmetry reasons with the {{{lock}}} command, because {{{lock}}} is a reserved word in C#. ==== Parameters ||=**Field** =||=**Value** =|| ||{{{command}}} ||{{{unlock}}} || ||{{{id}}} ||ID of the object to be unlocked. || ||{{{ticket}}} ||Session ticket. || ==== Return value The {{{unlock}}} command returns {{{}}} or an {{{}}} element containing a message. ==== Description The {{{unlock}}} command removes a write lock on the object identified by the {{{id}}} parameter. === updatefolder === updatelink === version == Deprecated methods === checktranslation [deprecated] > **IMPORTANT:** This API method is deprecated and will be removed in a future release without further notice. This method is highly special, can be replaced with other API methods and the render mechanism it supports is deprecated. Some customers still use it. === createtranslation [deprecated] > **IMPORTANT:** This API method is deprecated and will be removed in a future release without further notice. This method is highly special, can be replaced with other API methods and the render mechanism it supports is deprecated. Some customers still use it. === forksession [deprecated] > **IMPORTANT:** This API method is deprecated and will be removed in a future release without further notice. It is no longer used in client libraries and there seems to be no use case. === getsysmeta [deprecated] > **IMPORTANT:** This API method is deprecated and will be removed in a future release without further notice. All such data is returned by {{{getobject}}} or other API methods returning objects.=== startrendertask [deprecated] > **IMPORTANT:** This API method is deprecated and will be removed in a future release without further notice. This method is highly special, can be replaced with other API methods and the render mechanism it supports is deprecated. Some customers still use it. === sudo [deprecated] > **IMPORTANT:** This API method is deprecated and will be removed in a future release without further notice. The entire sudo functionality has become obsolete with the change tracking logic.