syncope-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Syncope > REST API upgrade
Date Wed, 20 Feb 2013 17:25:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/3/_/styles/combined.css?spaceKey=SYNCOPE&amp;forWysiwyg=true" type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/SYNCOPE/REST+API+upgrade">REST API upgrade</a></h2>
    <h4>Page <b>edited</b> by             <a href="https://cwiki.apache.org/confluence/display/~ilgrosso">Francesco Chicchiricco</a>
    </h4>
        <br/>
                         <h4>Changes (1)</h4>
                                 
    
<div id="page-diffs">
                    <table class="diff" cellpadding="0" cellspacing="0">
    
            <tr><td class="diff-snipped" >...<br></td></tr>
            <tr><td class="diff-unchanged" >| POST /connector/check | POST /connectors/check | Checks if a connection can be established. | <br>| GET /connector/\{resourceName\}/readByResource | GET /connectors;resourceName=\{connectorId\} | Returns connector for resourceName. | <br></td></tr>
            <tr><td class="diff-changed-lines" >| <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">PUT</span> <span class="diff-added-words"style="background-color: #dfd;">POST</span> /connector/reload | <span class="diff-deleted-words"style="color:#999;background-color:#fdd;text-decoration:line-through;">PUT</span> <span class="diff-added-words"style="background-color: #dfd;">POST</span> /connectors/reload | Reload all connector bundles and instances. | <br></td></tr>
            <tr><td class="diff-unchanged" > <br>h2. Entitlement Service <br></td></tr>
            <tr><td class="diff-snipped" >...<br></td></tr>
    
            </table>
    </div>                            <h4>Full Content</h4>
                    <div class="notificationGreySide">
        <div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Version warning</b><br />In Syncope 1.1.0 a new REST interface was introduced (referred as <b><em>new</em></b> in the following). It is exposed in 1.1.0 by default via a "cxf" path.

<p>The REST interface available in 1.0.X (referred as <b><em>old</em></b> in the following) is still present but will be removed from releases &gt;= 1.2.0. It is exposed by default in 1.1.0 via a "rest" path.</p></td></tr></table></div>

<p>This page shall give you an overview of old and new REST API.</p>

<div>
<ul>
    <li><a href='#RESTAPIupgrade-ConfigurationService'>Configuration Service</a></li>
    <li><a href='#RESTAPIupgrade-ConnectorService'>Connector Service</a></li>
    <li><a href='#RESTAPIupgrade-EntitlementService'>Entitlement Service</a></li>
    <li><a href='#RESTAPIupgrade-LoggerService'>Logger Service</a></li>
    <li><a href='#RESTAPIupgrade-NotificationService'>Notification Service</a></li>
    <li><a href='#RESTAPIupgrade-PolicyService'>Policy Service</a></li>
    <li><a href='#RESTAPIupgrade-ReportService'>Report Service</a></li>
    <li><a href='#RESTAPIupgrade-ResourceService'>Resource Service</a></li>
    <li><a href='#RESTAPIupgrade-RoleService'>Role Service</a></li>
    <li><a href='#RESTAPIupgrade-SchemaService'>Schema Service</a></li>
    <li><a href='#RESTAPIupgrade-TaskService'>Task Service</a></li>
    <li><a href='#RESTAPIupgrade-UserService'>User Service</a></li>
    <li><a href='#RESTAPIupgrade-UserRequestService'>UserRequest Service</a></li>
    <li><a href='#RESTAPIupgrade-WorkflowService'>Workflow Service</a></li>
</ul></div>

<p>Main focus on redesign REST interface was to apply <a href="http://www.slideshare.net/calamitas/restful-best-practices" class="external-link" rel="nofollow">RESTful Best Practices</a></p>


<ul>
	<li>use HTTP operations instead of URL encoded operation names</li>
	<li>GET does not modify any object (read-only safety operation)</li>
	<li>PUT and DELETE are idempotent operations
	<ul>
		<li>PUT and DELETE do not return (old) object any longer, except for Roles and Users, since they contain propagation status information</li>
	</ul>
	</li>
	<li>CREATE operations return location URL in header for newly created object
	<ul>
		<li>In addition to that unique identifier of resource is also send in response header (<tt>org.apache.syncope.resource.id</tt>)</li>
	</ul>
	</li>
</ul>


<p>While redesigning interface, we also made changes to <a href="https://cwiki.apache.org/confluence/display/SYNCOPE/Remote+Exceptions" class="external-link" rel="nofollow">exception handling</a>.</p>

<h2><a name="RESTAPIupgrade-ConfigurationService"></a>Configuration Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /configuration/create </td>
<td class='confluenceTd'> POST /configurations </td>
<td class='confluenceTd'> Creates a new Configuration. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /configuration/read/{key} </td>
<td class='confluenceTd'> GET /configurations/{key} </td>
<td class='confluenceTd'> Returns configuration element with matching key. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /configuration/list </td>
<td class='confluenceTd'> GET /configurations </td>
<td class='confluenceTd'> Returns a list of all configuration elements. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /configuration/update </td>
<td class='confluenceTd'> PUT /configurations/{key} </td>
<td class='confluenceTd'> Overwrites configuration element with matching key. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /configuration/delete/{key} </td>
<td class='confluenceTd'> DELETE /configurations/{key} </td>
<td class='confluenceTd'> Deletes configuration with matching key. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /configuration/validators </td>
<td class='confluenceTd'> GET /configurations/validators </td>
<td class='confluenceTd'> Returns a list of known validators. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /configuration/mailTemplates </td>
<td class='confluenceTd'> GET /configurations/mailTemplates </td>
<td class='confluenceTd'> Returns a list of known mail-templates. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /configuration/dbexport </td>
<td class='confluenceTd'> GET /configurations/dbDump </td>
<td class='confluenceTd'> Returns configuration as an downloadable content.xml database export file. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-ConnectorService"></a>Connector Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /connector/create </td>
<td class='confluenceTd'> POST /connectors </td>
<td class='confluenceTd'> Creates a new connector instance. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /connector/read/{connectorId} </td>
<td class='confluenceTd'> GET /connectors/{connectorId} </td>
<td class='confluenceTd'> Returns connector with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /connector/list?lang={lang} </td>
<td class='confluenceTd'> GET /connectors?lang={lang} </td>
<td class='confluenceTd'> Returns a list of all connectors. Default language is English. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /connector/update </td>
<td class='confluenceTd'> PUT /connectors/{connectorId} </td>
<td class='confluenceTd'> Overwrites connector with matching key. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /connector/delete/{connectorId} </td>
<td class='confluenceTd'> DELETE /connectors/{connectorId} </td>
<td class='confluenceTd'> Deletes connector with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /connector/bundle/list?lang={lang} </td>
<td class='confluenceTd'> GET /connectors/bundles?lang={lang} </td>
<td class='confluenceTd'> Returns known bundles. Default language is English. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /connector/schema/list?showall={showall} </td>
<td class='confluenceTd'> POST /connectors/{connectorId}/schemas?showAll={showall} <br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> Returns schema names for connector. Default is showAll=false. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /connector/{connectorId}/configurationProperty/list </td>
<td class='confluenceTd'> GET /connectors/{connectorId}/configuration </td>
<td class='confluenceTd'> Returns configuration for selected connector. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /connector/check </td>
<td class='confluenceTd'> POST /connectors/check </td>
<td class='confluenceTd'> Checks if a connection can be established. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /connector/{resourceName}/readByResource </td>
<td class='confluenceTd'> GET /connectors;resourceName={connectorId} </td>
<td class='confluenceTd'> Returns connector for resourceName. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /connector/reload </td>
<td class='confluenceTd'> POST /connectors/reload </td>
<td class='confluenceTd'> Reload all connector bundles and instances. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-EntitlementService"></a>Entitlement Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /auth/allentitlements </td>
<td class='confluenceTd'> GET /entitlements </td>
<td class='confluenceTd'> Returns a list of all known entitlements. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /auth/entitlements </td>
<td class='confluenceTd'> GET /entitlements/own </td>
<td class='confluenceTd'> Returns a list of entitlements assigned to the authenticated user. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-LoggerService"></a>Logger Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /logger/log/{name}/{level} </td>
<td class='confluenceTd'> PUT /logger/normal/{name} </td>
<td class='confluenceTd'> Creates or updates a logger with given name and sets logging level. Level will be now be part of payload instead of URL parameter. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /logger/log/list </td>
<td class='confluenceTd'> GET /logger/normal </td>
<td class='confluenceTd'> Returns a list of all normal logger. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /logger/delete/{name} </td>
<td class='confluenceTd'> DELETE /logger/normal/{name} </td>
<td class='confluenceTd'> Deletes normal logger with matching name. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> PUT /logger/audit/enable </td>
<td class='confluenceTd'> PUT /logger/audit/{name} </td>
<td class='confluenceTd'> Creates or updates audit logger with matching name. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /logger/audit/list </td>
<td class='confluenceTd'> GET /logger/audit </td>
<td class='confluenceTd'> Returns a list of all audit logger. </td>
</tr>
<tr>
<td class='confluenceTd'> PUT /logger/audit/disable </td>
<td class='confluenceTd'> DELETE /logger/audit/{name} </td>
<td class='confluenceTd'> Deletes audit logger with matching name. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-NotificationService"></a>Notification Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /notification/create </td>
<td class='confluenceTd'> POST /notifications </td>
<td class='confluenceTd'> Creates a new notification. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /notification/read/{notificationId} </td>
<td class='confluenceTd'> GET /notifications/{notificationId} </td>
<td class='confluenceTd'> Returns a notification with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /notification/list </td>
<td class='confluenceTd'> GET /notifications </td>
<td class='confluenceTd'> Returns a list of all notifications. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /notification/update </td>
<td class='confluenceTd'> PUT /notifications/{notificationId} </td>
<td class='confluenceTd'> Updates notification with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /notification/delete/{notificationId} </td>
<td class='confluenceTd'> DELETE /notifications/{notificationId} </td>
<td class='confluenceTd'> Deletes notification with matching id. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-PolicyService"></a>Policy Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /policy/account/create </td>
<td class='confluenceTd'> POST /policies/account </td>
<td class='confluenceTd'> Creates a new account policy. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/read/{id} </td>
<td class='confluenceTd'> GET /policies/account/{id} </td>
<td class='confluenceTd'> Returns account policy with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/account/global/read </td>
<td class='confluenceTd'> GET /policies/account/0 </td>
<td class='confluenceTd'> Returns global account policy. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/account/list </td>
<td class='confluenceTd'> GET /policies/account </td>
<td class='confluenceTd'> Returns a list of account policies. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /policy/account/update </td>
<td class='confluenceTd'> PUT /policies/account/{id} </td>
<td class='confluenceTd'> Updates account policy with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/delete/{id} </td>
<td class='confluenceTd'> DELETE /policies/account/{id} </td>
<td class='confluenceTd'> Deletes account policy with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /policy/sync/create </td>
<td class='confluenceTd'> POST /policies/sync </td>
<td class='confluenceTd'> Creates a new sync policy. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/read/{id} </td>
<td class='confluenceTd'> GET /policies/sync/{id} </td>
<td class='confluenceTd'> Returns sync policy with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/sync/global/read </td>
<td class='confluenceTd'> GET /policies/sync/0 </td>
<td class='confluenceTd'> Returns global sync policy. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/sync/list </td>
<td class='confluenceTd'> GET /policies/sync </td>
<td class='confluenceTd'> Returns a list of sync policies. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /policy/sync/update </td>
<td class='confluenceTd'> PUT /policies/sync/{id} </td>
<td class='confluenceTd'> Updates sync policy with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/delete/{id} </td>
<td class='confluenceTd'> DELETE /policies/sync/{id} </td>
<td class='confluenceTd'> Deletes sync policy with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /policy/password/create </td>
<td class='confluenceTd'> POST /policies/password </td>
<td class='confluenceTd'> Creates a new password policy. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/read/{id} </td>
<td class='confluenceTd'> GET /policies/password/{id} </td>
<td class='confluenceTd'> Returns password policy with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/password/global/read </td>
<td class='confluenceTd'> GET /policies/password/0 </td>
<td class='confluenceTd'> Returns global password policy. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/password/list </td>
<td class='confluenceTd'> GET /policies/password </td>
<td class='confluenceTd'> Returns a list of password policies. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /policy/password/update </td>
<td class='confluenceTd'> PUT /policies/password/{id} </td>
<td class='confluenceTd'> Updates password policy with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /policy/delete/{id} </td>
<td class='confluenceTd'> DELETE /policies/password/{id} </td>
<td class='confluenceTd'> Deletes password policy with matching id. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-ReportService"></a>Report Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /report/create </td>
<td class='confluenceTd'> POST /reports </td>
<td class='confluenceTd'> Creates a new report. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/read/{reportId} </td>
<td class='confluenceTd'> GET /reports/{reportId} </td>
<td class='confluenceTd'> Returns report with matching reportId. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/list </td>
<td class='confluenceTd'> GET /reports </td>
<td class='confluenceTd'> Returns a list of all reports. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/list/{page}/{size} </td>
<td class='confluenceTd'> GET /reports?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of reports according to pagination. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /report/count </td>
<td class='confluenceTd'> POST /reports/count </td>
<td class='confluenceTd'> Returns number of existing reports. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /report/update </td>
<td class='confluenceTd'> PUT /reports/{reportId} </td>
<td class='confluenceTd'> Updates report with matching reportId. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/delete/{reportId} </td>
<td class='confluenceTd'> DELETE /reports/{reportId} </td>
<td class='confluenceTd'> Deletes report with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /report/execute/{reportId} </td>
<td class='confluenceTd'> POST /reports/{reportId}/execute </td>
<td class='confluenceTd'> Executes report and returns execution result. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/execution/read/{executionId} </td>
<td class='confluenceTd'> GET /reports/executions/{executionId} </td>
<td class='confluenceTd'> Returns execution report. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/execution/export/{executionId}?fmt={format} </td>
<td class='confluenceTd'> GET /reports/executions/{executionId}/dbDump?format={format} <br class="atl-forced-newline" /> </td>
<td class='confluenceTd'> Returns execution report as an downloadable file. Format is optional. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /report/execution/delete/{executionId} </td>
<td class='confluenceTd'> DELETE /reports/executions/{executionId} </td>
<td class='confluenceTd'> Deletes execution report with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /report/reportletConfClasses </td>
<td class='confluenceTd'> GET /reports/reportletConfClasses </td>
<td class='confluenceTd'> Returns a list of all reportletConfClasses. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-ResourceService"></a>Resource Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /resource/create </td>
<td class='confluenceTd'> POST /resources </td>
<td class='confluenceTd'> Creates a new resource. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /resource/read/{resourceName} </td>
<td class='confluenceTd'> GET /resources/{resourceName} </td>
<td class='confluenceTd'> Returns a resource with specified name. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /resource/list </td>
<td class='confluenceTd'> GET /resources </td>
<td class='confluenceTd'> Returns a list of all resources. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /resource/list?connInstanceId={connInstanceId} </td>
<td class='confluenceTd'> GET /resources;connectorId={connectorId} </td>
<td class='confluenceTd'> Returns a list of all resources used by matching connector. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /resource/update </td>
<td class='confluenceTd'> PUT /resources/{resourceName} </td>
<td class='confluenceTd'> Updates resource with matching resourceName. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /resource/delete/{resourceName} </td>
<td class='confluenceTd'> DELETE /resources/{resourceName} </td>
<td class='confluenceTd'> Deletes resource with specified resourceName. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /resource/{resourceName}/read/{type}/{objectId} </td>
<td class='confluenceTd'> GET /resources/{resourceName}/{type}/{objectId} </td>
<td class='confluenceTd'> Returns specified connector object for resource. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /resource/check </td>
<td class='confluenceTd'> POST /resources/check </td>
<td class='confluenceTd'> Verifies connection using resource connector parameters. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /resource/propagationActionsClasses </td>
<td class='confluenceTd'> GET /resources/propagationActionsClasses </td>
<td class='confluenceTd'> Returns a list of classes with name PROPAGATION_ACTIONS. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-RoleService"></a>Role Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /role/create </td>
<td class='confluenceTd'> POST /roles/ </td>
<td class='confluenceTd'> Creates a new role. Returns URL to new role definition </td>
</tr>
<tr>
<td class='confluenceTd'> GET /role/read/{roleId} </td>
<td class='confluenceTd'> GET /roles/{roleId} </td>
<td class='confluenceTd'> Returns a single role definition matching the provided roleID </td>
</tr>
<tr>
<td class='confluenceTd'> GET /role/selfRead/{roleId} </td>
<td class='confluenceTd'> GET /roles/{roleId} </td>
<td class='confluenceTd'> Authorization mechanisms will be independent of URL </td>
</tr>
<tr>
<td class='confluenceTd'> GET /role/list </td>
<td class='confluenceTd'> GET /roles </td>
<td class='confluenceTd'> Returns a list of all known roles </td>
</tr>
<tr>
<td class='confluenceTd'> GET /role/parent/{roleId} </td>
<td class='confluenceTd'> GET /roles/{roleId}/parent </td>
<td class='confluenceTd'> Returns a single parent role definition (if available) </td>
</tr>
<tr>
<td class='confluenceTd'> GET /role/children/{roleId} </td>
<td class='confluenceTd'> GET /roles/{roleId}/children </td>
<td class='confluenceTd'> Returns a list of children role definitions </td>
</tr>
<tr>
<td class='confluenceTd'> POST /role/update </td>
<td class='confluenceTd'> POST /roles/{roleId} </td>
<td class='confluenceTd'> Updates role. (POST is used here instead of PUT, because RoleMod only <br class="atl-forced-newline" />
contains changes for a role and not a complete representation thereof.) </td>
</tr>
<tr>
<td class='confluenceTd'> GET /role/delete/{roleId} </td>
<td class='confluenceTd'> DELETE /roles/{roleId} </td>
<td class='confluenceTd'> Deletes role. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-SchemaService"></a>Schema Service</h2>

<p>Info: {kind} can be USER, ROLE or MEMBERSHIP.</p>
<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /schema/{kind}/create </td>
<td class='confluenceTd'> POST /schemas/{kind}/NORMAL </td>
<td class='confluenceTd'> Creates a new "normal" schema for matching kind. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /schema/{kind}/read/{name} </td>
<td class='confluenceTd'> GET /schemas/{kind}/NORMAL/{name} </td>
<td class='confluenceTd'> Returns matching schema. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /schema/{kind}/list </td>
<td class='confluenceTd'> GET /schemas/{kind}/NORMAL </td>
<td class='confluenceTd'> Returns a list of all "normal" schema definitions of matching kind. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /schema/{kind}/update </td>
<td class='confluenceTd'> PUT /schemas/{kind}/NORMAL/{name} </td>
<td class='confluenceTd'> Updates matching schema. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /schema/{kind}/delete/{name} </td>
<td class='confluenceTd'> DELETE /schemas/{kind}/NORMAL/{name} </td>
<td class='confluenceTd'> Deletes matching schema. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /virtualSchema/{kind}/create </td>
<td class='confluenceTd'> POST /schemas/{kind}/VIRTUAL </td>
<td class='confluenceTd'> Creates a new "virtual" schema for matching kind. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /virtualSchema/{kind}/read/{name} </td>
<td class='confluenceTd'> GET /schemas/{kind}/VIRTUAL/{name} </td>
<td class='confluenceTd'> Returns matching schema. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /virtualSchema/{kind}/list </td>
<td class='confluenceTd'> GET /schemas/{kind}/VIRTUAL </td>
<td class='confluenceTd'> Returns a list of all "virtual" schema definitions of matching kind. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /virtualSchema/{kind}/update </td>
<td class='confluenceTd'> PUT /schemas/{kind}/VIRTUAL/{name} </td>
<td class='confluenceTd'> Updates matching schema. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /virtualSchema/{kind}/delete/{name} </td>
<td class='confluenceTd'> DELETE /schemas/{kind}/VIRTUAL/{name} </td>
<td class='confluenceTd'> Deletes matching schema. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /derivedSchema/{kind}/create </td>
<td class='confluenceTd'> POST /schemas/{kind}/DERIVED </td>
<td class='confluenceTd'> Creates a new "derived" schema for matching kind. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /derivedSchema/{kind}/read/{name} </td>
<td class='confluenceTd'> GET /schemas/{kind}/DERIVED/{name} </td>
<td class='confluenceTd'> Returns matching schema. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /derivedSchema/{kind}/list </td>
<td class='confluenceTd'> GET /schemas/{kind}/DERIVED </td>
<td class='confluenceTd'> Returns a list of all "derived" schema definitions of matching kind. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /derivedSchema/{kind}/update </td>
<td class='confluenceTd'> PUT /schemas/{kind}/DERIVED/{name} </td>
<td class='confluenceTd'> Updates matching schema. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /derivedSchema/{kind}/delete/{name} </td>
<td class='confluenceTd'> DELETE /schemas/{kind}/DERIVED/{name} </td>
<td class='confluenceTd'> Deletes matching schema. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-TaskService"></a>Task Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /task/create/sync </td>
<td class='confluenceTd'> POST /tasks </td>
<td class='confluenceTd'> Creates a new sync task. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/read/{taskId} </td>
<td class='confluenceTd'> GET /tasks/sync/{taskId} </td>
<td class='confluenceTd'> Returns sync task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/sync/list </td>
<td class='confluenceTd'> GET /tasks/sync/list </td>
<td class='confluenceTd'> Returns a list of sync tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/sync/list/{page}/{size} </td>
<td class='confluenceTd'> GET /tasks/sync?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of paginated sync tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/sync/count </td>
<td class='confluenceTd'> GET /tasks/sync/count </td>
<td class='confluenceTd'> Returns number of sync tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /task/update/sync </td>
<td class='confluenceTd'> PUT /tasks/{taskId} </td>
<td class='confluenceTd'> Updates sync task with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /task/create/sched </td>
<td class='confluenceTd'> POST /tasks </td>
<td class='confluenceTd'> Creates a new sched task. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/read/{taskId} </td>
<td class='confluenceTd'> GET /tasks/sched/{taskId} </td>
<td class='confluenceTd'> Returns sched task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/sched/list </td>
<td class='confluenceTd'> GET /tasks/sched/list </td>
<td class='confluenceTd'> Returns a list of sched tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/sched/list/{page}/{size} </td>
<td class='confluenceTd'> GET /tasks/sched?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of paginated sched tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/sched/count </td>
<td class='confluenceTd'> GET /tasks/sched/count </td>
<td class='confluenceTd'> Returns number of sched tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /task/update/sched </td>
<td class='confluenceTd'> PUT /tasks/{taskId} </td>
<td class='confluenceTd'> Updates sched task with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /task/read/{taskId} </td>
<td class='confluenceTd'> GET /tasks/propagation/{taskId} </td>
<td class='confluenceTd'> Returns propagation task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/propagation/list </td>
<td class='confluenceTd'> GET /tasks/propagation/list </td>
<td class='confluenceTd'> Returns a list of propagation tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/propagation/list/{page}/{size} </td>
<td class='confluenceTd'> GET /tasks/propagation?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of paginated propagation tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/propagation/count </td>
<td class='confluenceTd'> GET /tasks/propagation/count </td>
<td class='confluenceTd'> Returns number of propagation tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/propagation/execution/list </td>
<td class='confluenceTd'> GET /tasks/propagation/executions </td>
<td class='confluenceTd'> Returns list of propagation task executions. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /task/read/{taskId} </td>
<td class='confluenceTd'> GET /tasks/notification/{taskId} </td>
<td class='confluenceTd'> Returns notification task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/notification/list </td>
<td class='confluenceTd'> GET /tasks/notification/list </td>
<td class='confluenceTd'> Returns a list of notification  tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/notification/list/{page}/{size} </td>
<td class='confluenceTd'> GET /tasks/notification?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of paginated notification tasks. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/notification/count </td>
<td class='confluenceTd'> GET /tasks/notification/count </td>
<td class='confluenceTd'> Returns number of notification tasks. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /task/delete/{taskId} </td>
<td class='confluenceTd'> DELETE /tasks/{taskId} </td>
<td class='confluenceTd'> Deletes task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/execution/read/{executionId} </td>
<td class='confluenceTd'> GET /tasks/executions/{executionId} </td>
<td class='confluenceTd'> Returns execution of task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /task/execute/{taskId}?dryRun={dryRun} </td>
<td class='confluenceTd'> POST /tasks/{taskId}/execute?dryRun={dryRun} </td>
<td class='confluenceTd'> Executes task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/execution/delete/{executionId} </td>
<td class='confluenceTd'> DELETE /tasks/executions/{executionId} </td>
<td class='confluenceTd'> Deletes execution of task with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/jobClasses </td>
<td class='confluenceTd'> GET /tasks/jobClasses </td>
<td class='confluenceTd'> Returns a list of available jobClasses. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/syncActionsClasses </td>
<td class='confluenceTd'> GET /tasks/syncActionsClasses </td>
<td class='confluenceTd'> Returns a list of available syncActionsClasses. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /task/execution/report/{executionId} <br class="atl-forced-newline" />
?executionStatus={executionStatus}&amp;message={message} </td>
<td class='confluenceTd'> POST /tasks/executions/{executionId}/report </td>
<td class='confluenceTd'> Creates a new report for matching execution id. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-UserService"></a>User Service</h2>

<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="/confluence/images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Version warning</b><br />User Service Interface in Version 1.1.0 is still not applying some major RESTful best practices. Therefore refactoring for release &gt;= 1.2.0 is most likely.</td></tr></table></div>

<p>CRUD operations:</p>
<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /user/create </td>
<td class='confluenceTd'> POST /users </td>
<td class='confluenceTd'> Creates a new user. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/list </td>
<td class='confluenceTd'> GET /users </td>
<td class='confluenceTd'> Returns a list of all known users </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/list/{page}/{size} </td>
<td class='confluenceTd'> GET /users?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of known users matching page/size conditions </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/read/{userId} </td>
<td class='confluenceTd'> GET /users/{userId} </td>
<td class='confluenceTd'> Returns a single user matching the provided userId </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/readByUsername/{username} </td>
<td class='confluenceTd'> GET /users?username={username} </td>
<td class='confluenceTd'> Returns a single user matching the provided username </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/search </td>
<td class='confluenceTd'> POST /users/search </td>
<td class='confluenceTd'> Returns a list of user matching the provided search conditions. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/search/{page}/{size} </td>
<td class='confluenceTd'> POST /users/search?page={page}&amp;size={size} </td>
<td class='confluenceTd'> Returns a list of user matching the provided page/size and search conditions. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/count </td>
<td class='confluenceTd'> GET /users/count </td>
<td class='confluenceTd'> Returns a number of existing users. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/search/count </td>
<td class='confluenceTd'> POST /users/search/count </td>
<td class='confluenceTd'> Returns a number of user matching the provided search conditions. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/verifyPassword/{username}?password={password} </td>
<td class='confluenceTd'> GET /users?username={username}&amp;pwd={password} </td>
<td class='confluenceTd'> Returns true if username and password match with an existing account. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/update </td>
<td class='confluenceTd'> POST /users/{userId} </td>
<td class='confluenceTd'> Updates user. (POST is used here instead of PUT, because UserMod only contains changes for a user and not a complete representation thereof.) </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/delete/{userId} </td>
<td class='confluenceTd'> DELETE /users/{userId} </td>
<td class='confluenceTd'> Deletes user. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /deleteByUsername/{username} </td>
<td class='confluenceTd'> <em>&lt;&lt;removed&gt;&gt;</em> </td>
<td class='confluenceTd'> Please use 'GET /user?username={username}' to discover userId and then use 'DELETE /user/{userId}' to delete user. </td>
</tr>
</tbody></table>
</div>


<p>Account status:</p>
<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /user/activate/{userId} </td>
<td class='confluenceTd'> POST /users/{userId}/status/activate </td>
<td class='confluenceTd'> Activates matching user account. <br class="atl-forced-newline" /> </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/activateByUsername/{username} </td>
<td class='confluenceTd'> POST /user/activateByUsername/{username} </td>
<td class='confluenceTd'> Activates matching user account. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/reactivate/{userId} </td>
<td class='confluenceTd'> POST /users/{userId}/status/reactivate </td>
<td class='confluenceTd'> Reactivates new user account. <br class="atl-forced-newline" /> </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/reactivateByUsername/{username} </td>
<td class='confluenceTd'> POST /user/reactivateByUsername/{username} </td>
<td class='confluenceTd'> Reactivates new user account. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/suspend/{userId} </td>
<td class='confluenceTd'> POST /users/{userId}/status/suspend </td>
<td class='confluenceTd'> Suspends user account. <br class="atl-forced-newline" /> </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/suspendByUsername/{username} </td>
<td class='confluenceTd'> POST /user/suspendByUsername/{username} </td>
<td class='confluenceTd'> Suspends user account. </td>
</tr>
</tbody></table>
</div>


<p>Workflow actions:</p>
<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /user/workflow/form/list </td>
<td class='confluenceTd'> GET /users/workflow/form </td>
<td class='confluenceTd'> Returns a list of user workflow forms. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/workflow/form/{userId} </td>
<td class='confluenceTd'> GET /users/{userId}/workflow/form </td>
<td class='confluenceTd'> Returns a (single) workflow form assigned to user. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/workflow/form/submit </td>
<td class='confluenceTd'> POST /users/workflow/form </td>
<td class='confluenceTd'> Submittes a form to a user workflow. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/execute/workflow/{taskId} </td>
<td class='confluenceTd'> POST /users/workflow/tasks/{taskId}/execute </td>
<td class='confluenceTd'> Executes workflow task on user. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /workflow/form/claim/{taskId} </td>
<td class='confluenceTd'> POST /users/workflow/tasks/{taskId}/claim </td>
<td class='confluenceTd'> Claims workflow task for authenticated (session) user. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-UserRequestService"></a>UserRequest Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> POST /user/request/create </td>
<td class='confluenceTd'> POST /requests/user </td>
<td class='confluenceTd'> POST Content contains user and create status. </td>
</tr>
<tr>
<td class='confluenceTd'> POST /user/request/update </td>
<td class='confluenceTd'> POST /requests/user </td>
<td class='confluenceTd'> POST Content contains userMod and update status. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/request/delete/{userId} </td>
<td class='confluenceTd'> POST /requests/user </td>
<td class='confluenceTd'> POST Content contains user id and delete status. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/request/list </td>
<td class='confluenceTd'> GET /requests/user </td>
<td class='confluenceTd'> Returns a list of all user requests. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/request/read/{requestId} </td>
<td class='confluenceTd'> GET /requests/user/{requestId} </td>
<td class='confluenceTd'> Returns a user request with matching id. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/request/deleteRequest/{requestId} </td>
<td class='confluenceTd'> DELETE /requests/user/{requestId} </td>
<td class='confluenceTd'> Deletes request with matching id. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> GET /user/request/create/allowed </td>
<td class='confluenceTd'> GET /requests/user/create/allowed </td>
<td class='confluenceTd'> Returns true/false whether user is allowed to create a new user. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /user/request/create/allowed </td>
<td class='confluenceTd'> OPTIONS </td>
<td class='confluenceTd'> Returns HTTP header "Syncope-Create-Allowed" indicating if user create is allowed or not. </td>
</tr>
</tbody></table>
</div>


<h2><a name="RESTAPIupgrade-WorkflowService"></a>Workflow Service</h2>

<div class='table-wrap'>
<table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> PUT /workflow/definition/user </td>
<td class='confluenceTd'> PUT /workflows/user </td>
<td class='confluenceTd'> Creates or updates workflow definition for users. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /workflow/definition/user </td>
<td class='confluenceTd'> GET /workflows/user </td>
<td class='confluenceTd'> Returns a workflow definition for users. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /workflow/tasks/user </td>
<td class='confluenceTd'> GET /workflows/user/tasks </td>
<td class='confluenceTd'> Returns workflow tasks for users. </td>
</tr>
<tr>
<th class='confluenceTh'> Old URL </th>
<th class='confluenceTh'> New URL </th>
<th class='confluenceTh'> Comment </th>
</tr>
<tr>
<td class='confluenceTd'> PUT /workflow/definition/role </td>
<td class='confluenceTd'> PUT /workflows/role </td>
<td class='confluenceTd'> Creates or updates workflow definition for roles. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /workflow/definition/role </td>
<td class='confluenceTd'> GET /workflows/role </td>
<td class='confluenceTd'> Returns a workflow definition for roles. </td>
</tr>
<tr>
<td class='confluenceTd'> GET /workflow/tasks/role </td>
<td class='confluenceTd'> GET /workflows/role/tasks </td>
<td class='confluenceTd'> Returns workflow tasks for roles. </td>
</tr>
</tbody></table>
</div>

    </div>
        <div id="commentsSection" class="wiki-content pageSection">
        <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action" class="grey">Change Notification Preferences</a>
        </div>
        <a href="https://cwiki.apache.org/confluence/display/SYNCOPE/REST+API+upgrade">View Online</a>
        |
        <a href="https://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=30740758&revisedVersion=61&originalVersion=60">View Changes</a>
                |
        <a href="https://cwiki.apache.org/confluence/display/SYNCOPE/REST+API+upgrade?showComments=true&amp;showCommentArea=true#addcomment">Add Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message