blob: d73dd971a2073af647cc3265b8b2c45c38bc2c7e [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Source code</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<main role="main">
<div class="sourceContainer">
<pre><span class="sourceLineNo">001</span><a id="line.1">package org.apache.archiva.redback.rest.api.services.v2;</a>
<span class="sourceLineNo">002</span><a id="line.2"></a>
<span class="sourceLineNo">003</span><a id="line.3">/*</a>
<span class="sourceLineNo">004</span><a id="line.4"> * Licensed to the Apache Software Foundation (ASF) under one</a>
<span class="sourceLineNo">005</span><a id="line.5"> * or more contributor license agreements. See the NOTICE file</a>
<span class="sourceLineNo">006</span><a id="line.6"> * distributed with this work for additional information</a>
<span class="sourceLineNo">007</span><a id="line.7"> * regarding copyright ownership. The ASF licenses this file</a>
<span class="sourceLineNo">008</span><a id="line.8"> * to you under the Apache License, Version 2.0 (the</a>
<span class="sourceLineNo">009</span><a id="line.9"> * "License"); you may not use this file except in compliance</a>
<span class="sourceLineNo">010</span><a id="line.10"> * with the License. You may obtain a copy of the License at</a>
<span class="sourceLineNo">011</span><a id="line.11"> *</a>
<span class="sourceLineNo">012</span><a id="line.12"> * http://www.apache.org/licenses/LICENSE-2.0</a>
<span class="sourceLineNo">013</span><a id="line.13"> *</a>
<span class="sourceLineNo">014</span><a id="line.14"> * Unless required by applicable law or agreed to in writing,</a>
<span class="sourceLineNo">015</span><a id="line.15"> * software distributed under the License is distributed on an</a>
<span class="sourceLineNo">016</span><a id="line.16"> * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</a>
<span class="sourceLineNo">017</span><a id="line.17"> * KIND, either express or implied. See the License for the</a>
<span class="sourceLineNo">018</span><a id="line.18"> * specific language governing permissions and limitations</a>
<span class="sourceLineNo">019</span><a id="line.19"> * under the License.</a>
<span class="sourceLineNo">020</span><a id="line.20"> */</a>
<span class="sourceLineNo">021</span><a id="line.21"></a>
<span class="sourceLineNo">022</span><a id="line.22">import io.swagger.v3.oas.annotations.Operation;</a>
<span class="sourceLineNo">023</span><a id="line.23">import io.swagger.v3.oas.annotations.Parameter;</a>
<span class="sourceLineNo">024</span><a id="line.24">import io.swagger.v3.oas.annotations.headers.Header;</a>
<span class="sourceLineNo">025</span><a id="line.25">import io.swagger.v3.oas.annotations.media.ArraySchema;</a>
<span class="sourceLineNo">026</span><a id="line.26">import io.swagger.v3.oas.annotations.media.Content;</a>
<span class="sourceLineNo">027</span><a id="line.27">import io.swagger.v3.oas.annotations.media.Schema;</a>
<span class="sourceLineNo">028</span><a id="line.28">import io.swagger.v3.oas.annotations.responses.ApiResponse;</a>
<span class="sourceLineNo">029</span><a id="line.29">import io.swagger.v3.oas.annotations.security.SecurityRequirement;</a>
<span class="sourceLineNo">030</span><a id="line.30">import io.swagger.v3.oas.annotations.tags.Tag;</a>
<span class="sourceLineNo">031</span><a id="line.31">import org.apache.archiva.components.rest.model.PagedResult;</a>
<span class="sourceLineNo">032</span><a id="line.32">import org.apache.archiva.redback.authorization.RedbackAuthorization;</a>
<span class="sourceLineNo">033</span><a id="line.33">import org.apache.archiva.redback.integration.security.role.RedbackRoleConstants;</a>
<span class="sourceLineNo">034</span><a id="line.34">import org.apache.archiva.redback.rest.api.model.ActionStatus;</a>
<span class="sourceLineNo">035</span><a id="line.35">import org.apache.archiva.redback.rest.api.model.Application;</a>
<span class="sourceLineNo">036</span><a id="line.36">import org.apache.archiva.redback.rest.api.model.RedbackRestError;</a>
<span class="sourceLineNo">037</span><a id="line.37">import org.apache.archiva.redback.rest.api.model.v2.PasswordChange;</a>
<span class="sourceLineNo">038</span><a id="line.38">import org.apache.archiva.redback.rest.api.model.v2.RoleTree;</a>
<span class="sourceLineNo">039</span><a id="line.39">import org.apache.archiva.redback.rest.api.model.v2.AvailabilityStatus;</a>
<span class="sourceLineNo">040</span><a id="line.40">import org.apache.archiva.redback.rest.api.model.v2.Permission;</a>
<span class="sourceLineNo">041</span><a id="line.41">import org.apache.archiva.redback.rest.api.model.v2.PingResult;</a>
<span class="sourceLineNo">042</span><a id="line.42">import org.apache.archiva.redback.rest.api.model.v2.RegistrationKey;</a>
<span class="sourceLineNo">043</span><a id="line.43">import org.apache.archiva.redback.rest.api.model.v2.RoleInfo;</a>
<span class="sourceLineNo">044</span><a id="line.44">import org.apache.archiva.redback.rest.api.model.v2.SelfUserData;</a>
<span class="sourceLineNo">045</span><a id="line.45">import org.apache.archiva.redback.rest.api.model.v2.User;</a>
<span class="sourceLineNo">046</span><a id="line.46">import org.apache.archiva.redback.rest.api.model.v2.UserInfo;</a>
<span class="sourceLineNo">047</span><a id="line.47">import org.apache.archiva.redback.rest.api.model.v2.UserRegistrationRequest;</a>
<span class="sourceLineNo">048</span><a id="line.48">import org.apache.archiva.redback.rest.api.model.v2.VerificationStatus;</a>
<span class="sourceLineNo">049</span><a id="line.49">import org.apache.archiva.redback.rest.api.services.RedbackServiceException;</a>
<span class="sourceLineNo">050</span><a id="line.50"></a>
<span class="sourceLineNo">051</span><a id="line.51">import javax.ws.rs.Consumes;</a>
<span class="sourceLineNo">052</span><a id="line.52">import javax.ws.rs.DELETE;</a>
<span class="sourceLineNo">053</span><a id="line.53">import javax.ws.rs.DefaultValue;</a>
<span class="sourceLineNo">054</span><a id="line.54">import javax.ws.rs.GET;</a>
<span class="sourceLineNo">055</span><a id="line.55">import javax.ws.rs.POST;</a>
<span class="sourceLineNo">056</span><a id="line.56">import javax.ws.rs.PUT;</a>
<span class="sourceLineNo">057</span><a id="line.57">import javax.ws.rs.Path;</a>
<span class="sourceLineNo">058</span><a id="line.58">import javax.ws.rs.PathParam;</a>
<span class="sourceLineNo">059</span><a id="line.59">import javax.ws.rs.Produces;</a>
<span class="sourceLineNo">060</span><a id="line.60">import javax.ws.rs.QueryParam;</a>
<span class="sourceLineNo">061</span><a id="line.61">import javax.ws.rs.core.MediaType;</a>
<span class="sourceLineNo">062</span><a id="line.62">import javax.ws.rs.core.Response;</a>
<span class="sourceLineNo">063</span><a id="line.63">import java.util.Collection;</a>
<span class="sourceLineNo">064</span><a id="line.64">import java.util.List;</a>
<span class="sourceLineNo">065</span><a id="line.65"></a>
<span class="sourceLineNo">066</span><a id="line.66">import static javax.ws.rs.core.MediaType.APPLICATION_JSON;</a>
<span class="sourceLineNo">067</span><a id="line.67">import static org.apache.archiva.redback.rest.api.Constants.DEFAULT_PAGE_LIMIT;</a>
<span class="sourceLineNo">068</span><a id="line.68">import static org.apache.archiva.redback.users.UserManager.GUEST_USERNAME;</a>
<span class="sourceLineNo">069</span><a id="line.69"></a>
<span class="sourceLineNo">070</span><a id="line.70">/**</a>
<span class="sourceLineNo">071</span><a id="line.71"> * Service interface for user management</a>
<span class="sourceLineNo">072</span><a id="line.72"> */</a>
<span class="sourceLineNo">073</span><a id="line.73">@Path( "/users" )</a>
<span class="sourceLineNo">074</span><a id="line.74">@Tag(name = "v2")</a>
<span class="sourceLineNo">075</span><a id="line.75">@Tag(name = "v2/Users")</a>
<span class="sourceLineNo">076</span><a id="line.76">@SecurityRequirement(name = "BearerAuth")</a>
<span class="sourceLineNo">077</span><a id="line.77">public interface UserService</a>
<span class="sourceLineNo">078</span><a id="line.78">{</a>
<span class="sourceLineNo">079</span><a id="line.79"> @Path( "{userId}" )</a>
<span class="sourceLineNo">080</span><a id="line.80"> @GET</a>
<span class="sourceLineNo">081</span><a id="line.81"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">082</span><a id="line.82"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION,</a>
<span class="sourceLineNo">083</span><a id="line.83"> resource = "{userId}" )</a>
<span class="sourceLineNo">084</span><a id="line.84"> @Operation( summary = "Returns information about a specific user",</a>
<span class="sourceLineNo">085</span><a id="line.85"> security = {</a>
<span class="sourceLineNo">086</span><a id="line.86"> @SecurityRequirement(</a>
<span class="sourceLineNo">087</span><a id="line.87"> name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION</a>
<span class="sourceLineNo">088</span><a id="line.88"> )</a>
<span class="sourceLineNo">089</span><a id="line.89"> },</a>
<span class="sourceLineNo">090</span><a id="line.90"> responses = {</a>
<span class="sourceLineNo">091</span><a id="line.91"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">092</span><a id="line.92"> description = "If user was found in the database",</a>
<span class="sourceLineNo">093</span><a id="line.93"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = UserInfo.class))</a>
<span class="sourceLineNo">094</span><a id="line.94"> ),</a>
<span class="sourceLineNo">095</span><a id="line.95"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">096</span><a id="line.96"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class ))</a>
<span class="sourceLineNo">097</span><a id="line.97"> ),</a>
<span class="sourceLineNo">098</span><a id="line.98"> @ApiResponse( responseCode = "403", description = "Authenticated user is not permitted to gather the information",</a>
<span class="sourceLineNo">099</span><a id="line.99"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">100</span><a id="line.100"> }</a>
<span class="sourceLineNo">101</span><a id="line.101"> )</a>
<span class="sourceLineNo">102</span><a id="line.102"> UserInfo getUser( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">103</span><a id="line.103"> throws RedbackServiceException;</a>
<span class="sourceLineNo">104</span><a id="line.104"></a>
<span class="sourceLineNo">105</span><a id="line.105"></a>
<span class="sourceLineNo">106</span><a id="line.106"> @Path( "" )</a>
<span class="sourceLineNo">107</span><a id="line.107"> @GET</a>
<span class="sourceLineNo">108</span><a id="line.108"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">109</span><a id="line.109"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_LIST_OPERATION )</a>
<span class="sourceLineNo">110</span><a id="line.110"> @Operation( summary = "Returns all users defined. The result is paged.",</a>
<span class="sourceLineNo">111</span><a id="line.111"> parameters = {</a>
<span class="sourceLineNo">112</span><a id="line.112"> @Parameter(name = "q", description = "Search term"),</a>
<span class="sourceLineNo">113</span><a id="line.113"> @Parameter(name = "offset", description = "The offset of the first element returned"),</a>
<span class="sourceLineNo">114</span><a id="line.114"> @Parameter(name = "limit", description = "Maximum number of items to return in the response"),</a>
<span class="sourceLineNo">115</span><a id="line.115"> @Parameter(name = "orderBy", description = "List of attribute used for sorting (user_id, fullName, email, created)"),</a>
<span class="sourceLineNo">116</span><a id="line.116"> @Parameter(name = "order", description = "The sort order. Either ascending (asc) or descending (desc)")</a>
<span class="sourceLineNo">117</span><a id="line.117"> },</a>
<span class="sourceLineNo">118</span><a id="line.118"> security = {</a>
<span class="sourceLineNo">119</span><a id="line.119"> @SecurityRequirement(</a>
<span class="sourceLineNo">120</span><a id="line.120"> name = RedbackRoleConstants.USER_MANAGEMENT_USER_LIST_OPERATION</a>
<span class="sourceLineNo">121</span><a id="line.121"> )</a>
<span class="sourceLineNo">122</span><a id="line.122"> },</a>
<span class="sourceLineNo">123</span><a id="line.123"> responses = {</a>
<span class="sourceLineNo">124</span><a id="line.124"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">125</span><a id="line.125"> description = "If the list could be returned",</a>
<span class="sourceLineNo">126</span><a id="line.126"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = PagedResult.class))</a>
<span class="sourceLineNo">127</span><a id="line.127"> ),</a>
<span class="sourceLineNo">128</span><a id="line.128"> @ApiResponse( responseCode = "403", description = "Authenticated user is not permitted to gather the information",</a>
<span class="sourceLineNo">129</span><a id="line.129"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">130</span><a id="line.130"> }</a>
<span class="sourceLineNo">131</span><a id="line.131"> )</a>
<span class="sourceLineNo">132</span><a id="line.132"> PagedResult&lt;UserInfo&gt; getUsers( @QueryParam("q") @DefaultValue( "" ) String searchTerm,</a>
<span class="sourceLineNo">133</span><a id="line.133"> @QueryParam( "offset" ) @DefaultValue( "0" ) Integer offset,</a>
<span class="sourceLineNo">134</span><a id="line.134"> @QueryParam( "limit" ) @DefaultValue( value = DEFAULT_PAGE_LIMIT ) Integer limit,</a>
<span class="sourceLineNo">135</span><a id="line.135"> @QueryParam( "orderBy") @DefaultValue( "id" ) List&lt;String&gt; orderBy,</a>
<span class="sourceLineNo">136</span><a id="line.136"> @QueryParam("order") @DefaultValue( "asc" ) String order)</a>
<span class="sourceLineNo">137</span><a id="line.137"> throws RedbackServiceException;</a>
<span class="sourceLineNo">138</span><a id="line.138"></a>
<span class="sourceLineNo">139</span><a id="line.139"> @Path( "" )</a>
<span class="sourceLineNo">140</span><a id="line.140"> @POST</a>
<span class="sourceLineNo">141</span><a id="line.141"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">142</span><a id="line.142"> @Consumes( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">143</span><a id="line.143"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_CREATE_OPERATION )</a>
<span class="sourceLineNo">144</span><a id="line.144"> @Operation( summary = "Creates a user",</a>
<span class="sourceLineNo">145</span><a id="line.145"> security = {</a>
<span class="sourceLineNo">146</span><a id="line.146"> @SecurityRequirement(</a>
<span class="sourceLineNo">147</span><a id="line.147"> name = RedbackRoleConstants.USER_MANAGEMENT_USER_CREATE_OPERATION</a>
<span class="sourceLineNo">148</span><a id="line.148"> )</a>
<span class="sourceLineNo">149</span><a id="line.149"> },</a>
<span class="sourceLineNo">150</span><a id="line.150"> responses = {</a>
<span class="sourceLineNo">151</span><a id="line.151"> @ApiResponse( responseCode = "201",</a>
<span class="sourceLineNo">152</span><a id="line.152"> description = "If user creation was successful",</a>
<span class="sourceLineNo">153</span><a id="line.153"> headers = {</a>
<span class="sourceLineNo">154</span><a id="line.154"> @Header( name="Location", description = "The URL of the created mapping", schema = @Schema(type="string"))</a>
<span class="sourceLineNo">155</span><a id="line.155"> },</a>
<span class="sourceLineNo">156</span><a id="line.156"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = UserInfo.class))</a>
<span class="sourceLineNo">157</span><a id="line.157"> ),</a>
<span class="sourceLineNo">158</span><a id="line.158"> @ApiResponse( responseCode = "422", description = "Invalid input",</a>
<span class="sourceLineNo">159</span><a id="line.159"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">160</span><a id="line.160"> @ApiResponse( responseCode = "303", description = "The user exists already",</a>
<span class="sourceLineNo">161</span><a id="line.161"> headers = {</a>
<span class="sourceLineNo">162</span><a id="line.162"> @Header( name="Location", description = "The URL of existing user", schema = @Schema(type="string"))</a>
<span class="sourceLineNo">163</span><a id="line.163"> }</a>
<span class="sourceLineNo">164</span><a id="line.164"> )</a>
<span class="sourceLineNo">165</span><a id="line.165"> }</a>
<span class="sourceLineNo">166</span><a id="line.166"> )</a>
<span class="sourceLineNo">167</span><a id="line.167"> UserInfo createUser( User user )</a>
<span class="sourceLineNo">168</span><a id="line.168"> throws RedbackServiceException;</a>
<span class="sourceLineNo">169</span><a id="line.169"></a>
<span class="sourceLineNo">170</span><a id="line.170"> @Path( "{userId}" )</a>
<span class="sourceLineNo">171</span><a id="line.171"> @DELETE</a>
<span class="sourceLineNo">172</span><a id="line.172"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">173</span><a id="line.173"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_DELETE_OPERATION )</a>
<span class="sourceLineNo">174</span><a id="line.174"> @Operation( summary = "Deletes a given user",</a>
<span class="sourceLineNo">175</span><a id="line.175"> security = {</a>
<span class="sourceLineNo">176</span><a id="line.176"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_DELETE_OPERATION )</a>
<span class="sourceLineNo">177</span><a id="line.177"> },</a>
<span class="sourceLineNo">178</span><a id="line.178"> responses = {</a>
<span class="sourceLineNo">179</span><a id="line.179"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">180</span><a id="line.180"> description = "If user deletion was successful"</a>
<span class="sourceLineNo">181</span><a id="line.181"> ),</a>
<span class="sourceLineNo">182</span><a id="line.182"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">183</span><a id="line.183"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">184</span><a id="line.184"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for deletion.",</a>
<span class="sourceLineNo">185</span><a id="line.185"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">186</span><a id="line.186"> }</a>
<span class="sourceLineNo">187</span><a id="line.187"> )</a>
<span class="sourceLineNo">188</span><a id="line.188"> void deleteUser( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">189</span><a id="line.189"> throws RedbackServiceException;</a>
<span class="sourceLineNo">190</span><a id="line.190"></a>
<span class="sourceLineNo">191</span><a id="line.191"> @Path( "{userId}" )</a>
<span class="sourceLineNo">192</span><a id="line.192"> @PUT</a>
<span class="sourceLineNo">193</span><a id="line.193"> @Produces( {APPLICATION_JSON} )</a>
<span class="sourceLineNo">194</span><a id="line.194"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">195</span><a id="line.195"> @Operation( summary = "Updates an existing user",</a>
<span class="sourceLineNo">196</span><a id="line.196"> security = {</a>
<span class="sourceLineNo">197</span><a id="line.197"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">198</span><a id="line.198"> },</a>
<span class="sourceLineNo">199</span><a id="line.199"> responses = {</a>
<span class="sourceLineNo">200</span><a id="line.200"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">201</span><a id="line.201"> description = "If update was successful",</a>
<span class="sourceLineNo">202</span><a id="line.202"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = UserInfo.class))</a>
<span class="sourceLineNo">203</span><a id="line.203"> ),</a>
<span class="sourceLineNo">204</span><a id="line.204"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">205</span><a id="line.205"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">206</span><a id="line.206"> @ApiResponse( responseCode = "422", description = "Update data was not valid. E.g. password violations.",</a>
<span class="sourceLineNo">207</span><a id="line.207"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">208</span><a id="line.208"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for update." ,</a>
<span class="sourceLineNo">209</span><a id="line.209"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )))</a>
<span class="sourceLineNo">210</span><a id="line.210"> }</a>
<span class="sourceLineNo">211</span><a id="line.211"> )</a>
<span class="sourceLineNo">212</span><a id="line.212"> UserInfo updateUser( @PathParam( "userId" ) String userId, User user )</a>
<span class="sourceLineNo">213</span><a id="line.213"> throws RedbackServiceException;</a>
<span class="sourceLineNo">214</span><a id="line.214"></a>
<span class="sourceLineNo">215</span><a id="line.215"></a>
<span class="sourceLineNo">216</span><a id="line.216"></a>
<span class="sourceLineNo">217</span><a id="line.217"> /**</a>
<span class="sourceLineNo">218</span><a id="line.218"> * will create admin user only if not exists !! if exists will return false</a>
<span class="sourceLineNo">219</span><a id="line.219"> */</a>
<span class="sourceLineNo">220</span><a id="line.220"> @Path( "admin" )</a>
<span class="sourceLineNo">221</span><a id="line.221"> @POST</a>
<span class="sourceLineNo">222</span><a id="line.222"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">223</span><a id="line.223"> @Consumes( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">224</span><a id="line.224"> @RedbackAuthorization( noRestriction = true )</a>
<span class="sourceLineNo">225</span><a id="line.225"> @Operation( summary = "Creates the admin user, if it does not exist",</a>
<span class="sourceLineNo">226</span><a id="line.226"> responses = {</a>
<span class="sourceLineNo">227</span><a id="line.227"> @ApiResponse( responseCode = "201",</a>
<span class="sourceLineNo">228</span><a id="line.228"> description = "If user creation was successful",</a>
<span class="sourceLineNo">229</span><a id="line.229"> headers = {</a>
<span class="sourceLineNo">230</span><a id="line.230"> @Header( name="Location", description = "The URL of the created mapping", schema = @Schema(type="string"))</a>
<span class="sourceLineNo">231</span><a id="line.231"> },</a>
<span class="sourceLineNo">232</span><a id="line.232"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = UserInfo.class))</a>
<span class="sourceLineNo">233</span><a id="line.233"> ),</a>
<span class="sourceLineNo">234</span><a id="line.234"> @ApiResponse( responseCode = "422", description = "Invalid input",</a>
<span class="sourceLineNo">235</span><a id="line.235"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">236</span><a id="line.236"> @ApiResponse( responseCode = "303", description = "The user exists already",</a>
<span class="sourceLineNo">237</span><a id="line.237"> headers = {</a>
<span class="sourceLineNo">238</span><a id="line.238"> @Header( name="Location", description = "The URL of the existing admin user", schema = @Schema(type="string"))</a>
<span class="sourceLineNo">239</span><a id="line.239"> }</a>
<span class="sourceLineNo">240</span><a id="line.240"> )</a>
<span class="sourceLineNo">241</span><a id="line.241"> }</a>
<span class="sourceLineNo">242</span><a id="line.242"> )</a>
<span class="sourceLineNo">243</span><a id="line.243"> UserInfo createAdminUser( User user )</a>
<span class="sourceLineNo">244</span><a id="line.244"> throws RedbackServiceException;</a>
<span class="sourceLineNo">245</span><a id="line.245"></a>
<span class="sourceLineNo">246</span><a id="line.246"> @Path( "admin/status" )</a>
<span class="sourceLineNo">247</span><a id="line.247"> @GET</a>
<span class="sourceLineNo">248</span><a id="line.248"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">249</span><a id="line.249"> @RedbackAuthorization( noRestriction = true )</a>
<span class="sourceLineNo">250</span><a id="line.250"> @Operation( summary = "Returns the availability status of the admin user. ",</a>
<span class="sourceLineNo">251</span><a id="line.251"> responses = {</a>
<span class="sourceLineNo">252</span><a id="line.252"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">253</span><a id="line.253"> description = "If status can be retrieved",</a>
<span class="sourceLineNo">254</span><a id="line.254"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = AvailabilityStatus.class))</a>
<span class="sourceLineNo">255</span><a id="line.255"> )</a>
<span class="sourceLineNo">256</span><a id="line.256"> }</a>
<span class="sourceLineNo">257</span><a id="line.257"> )</a>
<span class="sourceLineNo">258</span><a id="line.258"> AvailabilityStatus getAdminStatus()</a>
<span class="sourceLineNo">259</span><a id="line.259"> throws RedbackServiceException;</a>
<span class="sourceLineNo">260</span><a id="line.260"></a>
<span class="sourceLineNo">261</span><a id="line.261"></a>
<span class="sourceLineNo">262</span><a id="line.262"></a>
<span class="sourceLineNo">263</span><a id="line.263"> /**</a>
<span class="sourceLineNo">264</span><a id="line.264"> */</a>
<span class="sourceLineNo">265</span><a id="line.265"> @Path( "{userId}/lock/set" )</a>
<span class="sourceLineNo">266</span><a id="line.266"> @POST</a>
<span class="sourceLineNo">267</span><a id="line.267"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">268</span><a id="line.268"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">269</span><a id="line.269"> @Operation( summary = "Creates a user",</a>
<span class="sourceLineNo">270</span><a id="line.270"> security = {</a>
<span class="sourceLineNo">271</span><a id="line.271"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">272</span><a id="line.272"> },</a>
<span class="sourceLineNo">273</span><a id="line.273"> responses = {</a>
<span class="sourceLineNo">274</span><a id="line.274"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">275</span><a id="line.275"> description = "If locking was successful"</a>
<span class="sourceLineNo">276</span><a id="line.276"> ),</a>
<span class="sourceLineNo">277</span><a id="line.277"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">278</span><a id="line.278"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">279</span><a id="line.279"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for locking.",</a>
<span class="sourceLineNo">280</span><a id="line.280"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">281</span><a id="line.281"> }</a>
<span class="sourceLineNo">282</span><a id="line.282"> )</a>
<span class="sourceLineNo">283</span><a id="line.283"> void lockUser( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">284</span><a id="line.284"> throws RedbackServiceException;</a>
<span class="sourceLineNo">285</span><a id="line.285"></a>
<span class="sourceLineNo">286</span><a id="line.286"> /**</a>
<span class="sourceLineNo">287</span><a id="line.287"> */</a>
<span class="sourceLineNo">288</span><a id="line.288"> @Path( "{userId}/lock/clear" )</a>
<span class="sourceLineNo">289</span><a id="line.289"> @POST</a>
<span class="sourceLineNo">290</span><a id="line.290"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">291</span><a id="line.291"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">292</span><a id="line.292"> @Operation( summary = "Unlocks a user",</a>
<span class="sourceLineNo">293</span><a id="line.293"> security = {</a>
<span class="sourceLineNo">294</span><a id="line.294"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">295</span><a id="line.295"> },</a>
<span class="sourceLineNo">296</span><a id="line.296"> responses = {</a>
<span class="sourceLineNo">297</span><a id="line.297"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">298</span><a id="line.298"> description = "If unlocking was successful"</a>
<span class="sourceLineNo">299</span><a id="line.299"> ),</a>
<span class="sourceLineNo">300</span><a id="line.300"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">301</span><a id="line.301"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">302</span><a id="line.302"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for unlock.",</a>
<span class="sourceLineNo">303</span><a id="line.303"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">304</span><a id="line.304"> }</a>
<span class="sourceLineNo">305</span><a id="line.305"> )</a>
<span class="sourceLineNo">306</span><a id="line.306"> void unlockUser( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">307</span><a id="line.307"> throws RedbackServiceException;</a>
<span class="sourceLineNo">308</span><a id="line.308"></a>
<span class="sourceLineNo">309</span><a id="line.309"></a>
<span class="sourceLineNo">310</span><a id="line.310"> /**</a>
<span class="sourceLineNo">311</span><a id="line.311"> */</a>
<span class="sourceLineNo">312</span><a id="line.312"> @Path( "{userId}/password/require/set" )</a>
<span class="sourceLineNo">313</span><a id="line.313"> @POST</a>
<span class="sourceLineNo">314</span><a id="line.314"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">315</span><a id="line.315"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">316</span><a id="line.316"> @Operation( summary = "Sets the requirePassword flag for a given user",</a>
<span class="sourceLineNo">317</span><a id="line.317"> security = {</a>
<span class="sourceLineNo">318</span><a id="line.318"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">319</span><a id="line.319"> },</a>
<span class="sourceLineNo">320</span><a id="line.320"> responses = {</a>
<span class="sourceLineNo">321</span><a id="line.321"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">322</span><a id="line.322"> description = "If password change require flag was set"</a>
<span class="sourceLineNo">323</span><a id="line.323"> ),</a>
<span class="sourceLineNo">324</span><a id="line.324"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">325</span><a id="line.325"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">326</span><a id="line.326"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for editing.",</a>
<span class="sourceLineNo">327</span><a id="line.327"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">328</span><a id="line.328"></a>
<span class="sourceLineNo">329</span><a id="line.329"> }</a>
<span class="sourceLineNo">330</span><a id="line.330"> )</a>
<span class="sourceLineNo">331</span><a id="line.331"> void setRequirePasswordChangeFlag( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">332</span><a id="line.332"> throws RedbackServiceException;</a>
<span class="sourceLineNo">333</span><a id="line.333"></a>
<span class="sourceLineNo">334</span><a id="line.334"> /**</a>
<span class="sourceLineNo">335</span><a id="line.335"> */</a>
<span class="sourceLineNo">336</span><a id="line.336"> @Path( "{userId}/password/require/clear" )</a>
<span class="sourceLineNo">337</span><a id="line.337"> @POST</a>
<span class="sourceLineNo">338</span><a id="line.338"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">339</span><a id="line.339"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">340</span><a id="line.340"> @Operation( summary = "Clears the requirePassword flag for a given user",</a>
<span class="sourceLineNo">341</span><a id="line.341"> security = {</a>
<span class="sourceLineNo">342</span><a id="line.342"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">343</span><a id="line.343"> },</a>
<span class="sourceLineNo">344</span><a id="line.344"> responses = {</a>
<span class="sourceLineNo">345</span><a id="line.345"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">346</span><a id="line.346"> description = "If password change require flag was unset"</a>
<span class="sourceLineNo">347</span><a id="line.347"> ),</a>
<span class="sourceLineNo">348</span><a id="line.348"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">349</span><a id="line.349"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">350</span><a id="line.350"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for editing.",</a>
<span class="sourceLineNo">351</span><a id="line.351"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">352</span><a id="line.352"></a>
<span class="sourceLineNo">353</span><a id="line.353"> }</a>
<span class="sourceLineNo">354</span><a id="line.354"> )</a>
<span class="sourceLineNo">355</span><a id="line.355"> void clearRequirePasswordChangeFlag( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">356</span><a id="line.356"> throws RedbackServiceException;</a>
<span class="sourceLineNo">357</span><a id="line.357"></a>
<span class="sourceLineNo">358</span><a id="line.358"></a>
<span class="sourceLineNo">359</span><a id="line.359"> /**</a>
<span class="sourceLineNo">360</span><a id="line.360"> * Update only the current logged in user and this fields: fullname, email, password.</a>
<span class="sourceLineNo">361</span><a id="line.361"> * The service verifies the current logged user with the one passed in the method</a>
<span class="sourceLineNo">362</span><a id="line.362"> * @return the user info object</a>
<span class="sourceLineNo">363</span><a id="line.363"> */</a>
<span class="sourceLineNo">364</span><a id="line.364"> @Path( "me" )</a>
<span class="sourceLineNo">365</span><a id="line.365"> @PUT</a>
<span class="sourceLineNo">366</span><a id="line.366"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">367</span><a id="line.367"> @RedbackAuthorization( noPermission = true )</a>
<span class="sourceLineNo">368</span><a id="line.368"> @Operation( summary = "Updates information of the current logged in user",</a>
<span class="sourceLineNo">369</span><a id="line.369"> responses = {</a>
<span class="sourceLineNo">370</span><a id="line.370"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">371</span><a id="line.371"> description = "The updated user information",</a>
<span class="sourceLineNo">372</span><a id="line.372"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = UserInfo.class))</a>
<span class="sourceLineNo">373</span><a id="line.373"> ),</a>
<span class="sourceLineNo">374</span><a id="line.374"> @ApiResponse( responseCode = "401", description = "User is not logged in",</a>
<span class="sourceLineNo">375</span><a id="line.375"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">376</span><a id="line.376"> @ApiResponse( responseCode = "400", description = "Provided data is not valid",</a>
<span class="sourceLineNo">377</span><a id="line.377"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">378</span><a id="line.378"> }</a>
<span class="sourceLineNo">379</span><a id="line.379"> )</a>
<span class="sourceLineNo">380</span><a id="line.380"> UserInfo updateMe( SelfUserData user )</a>
<span class="sourceLineNo">381</span><a id="line.381"> throws RedbackServiceException;</a>
<span class="sourceLineNo">382</span><a id="line.382"></a>
<span class="sourceLineNo">383</span><a id="line.383"> @Path( "me" )</a>
<span class="sourceLineNo">384</span><a id="line.384"> @GET</a>
<span class="sourceLineNo">385</span><a id="line.385"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">386</span><a id="line.386"> @RedbackAuthorization( noPermission = true )</a>
<span class="sourceLineNo">387</span><a id="line.387"> @Operation( summary = "Gets information of the current logged in user",</a>
<span class="sourceLineNo">388</span><a id="line.388"> responses = {</a>
<span class="sourceLineNo">389</span><a id="line.389"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">390</span><a id="line.390"> description = "The user information",</a>
<span class="sourceLineNo">391</span><a id="line.391"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = UserInfo.class))</a>
<span class="sourceLineNo">392</span><a id="line.392"> ),</a>
<span class="sourceLineNo">393</span><a id="line.393"> @ApiResponse( responseCode = "401", description = "User is not logged in" ,</a>
<span class="sourceLineNo">394</span><a id="line.394"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">395</span><a id="line.395"> }</a>
<span class="sourceLineNo">396</span><a id="line.396"> )</a>
<span class="sourceLineNo">397</span><a id="line.397"> UserInfo getLoggedInUser( ) throws RedbackServiceException;</a>
<span class="sourceLineNo">398</span><a id="line.398"></a>
<span class="sourceLineNo">399</span><a id="line.399"> @Path( "___ping___" )</a>
<span class="sourceLineNo">400</span><a id="line.400"> @GET</a>
<span class="sourceLineNo">401</span><a id="line.401"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">402</span><a id="line.402"> @RedbackAuthorization( noRestriction = true )</a>
<span class="sourceLineNo">403</span><a id="line.403"> @Operation( summary = "Checks the service availability",</a>
<span class="sourceLineNo">404</span><a id="line.404"> responses = {</a>
<span class="sourceLineNo">405</span><a id="line.405"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">406</span><a id="line.406"> description = "Pong",</a>
<span class="sourceLineNo">407</span><a id="line.407"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = PingResult.class))</a>
<span class="sourceLineNo">408</span><a id="line.408"> )}</a>
<span class="sourceLineNo">409</span><a id="line.409"> )</a>
<span class="sourceLineNo">410</span><a id="line.410"> PingResult ping()</a>
<span class="sourceLineNo">411</span><a id="line.411"> throws RedbackServiceException;</a>
<span class="sourceLineNo">412</span><a id="line.412"></a>
<span class="sourceLineNo">413</span><a id="line.413"> @Path( "{userId}/cache/clear" )</a>
<span class="sourceLineNo">414</span><a id="line.414"> @POST</a>
<span class="sourceLineNo">415</span><a id="line.415"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">416</span><a id="line.416"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION,</a>
<span class="sourceLineNo">417</span><a id="line.417"> resource = "{userId}")</a>
<span class="sourceLineNo">418</span><a id="line.418"> @Operation( summary = "Clears the cache for the user",</a>
<span class="sourceLineNo">419</span><a id="line.419"> security = {</a>
<span class="sourceLineNo">420</span><a id="line.420"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_EDIT_OPERATION )</a>
<span class="sourceLineNo">421</span><a id="line.421"> },</a>
<span class="sourceLineNo">422</span><a id="line.422"> responses = {</a>
<span class="sourceLineNo">423</span><a id="line.423"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">424</span><a id="line.424"> description = "Status of the clear operation",</a>
<span class="sourceLineNo">425</span><a id="line.425"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = ActionStatus.class))</a>
<span class="sourceLineNo">426</span><a id="line.426"></a>
<span class="sourceLineNo">427</span><a id="line.427"> ),</a>
<span class="sourceLineNo">428</span><a id="line.428"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">429</span><a id="line.429"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">430</span><a id="line.430"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the required permission.",</a>
<span class="sourceLineNo">431</span><a id="line.431"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">432</span><a id="line.432"> }</a>
<span class="sourceLineNo">433</span><a id="line.433"> )</a>
<span class="sourceLineNo">434</span><a id="line.434"> Response removeFromCache( @PathParam( "userId" ) String userId )</a>
<span class="sourceLineNo">435</span><a id="line.435"> throws RedbackServiceException;</a>
<span class="sourceLineNo">436</span><a id="line.436"></a>
<span class="sourceLineNo">437</span><a id="line.437"> /**</a>
<span class="sourceLineNo">438</span><a id="line.438"> * @return the registration key</a>
<span class="sourceLineNo">439</span><a id="line.439"> */</a>
<span class="sourceLineNo">440</span><a id="line.440"> @Path( "{userId}/register" )</a>
<span class="sourceLineNo">441</span><a id="line.441"> @POST</a>
<span class="sourceLineNo">442</span><a id="line.442"> @Produces( {APPLICATION_JSON} )</a>
<span class="sourceLineNo">443</span><a id="line.443"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">444</span><a id="line.444"> @Operation( summary = "Registers a new user",</a>
<span class="sourceLineNo">445</span><a id="line.445"> responses = {</a>
<span class="sourceLineNo">446</span><a id="line.446"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">447</span><a id="line.447"> description = "If the registration was successful, a registration key is returned",</a>
<span class="sourceLineNo">448</span><a id="line.448"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RegistrationKey.class))</a>
<span class="sourceLineNo">449</span><a id="line.449"> ),</a>
<span class="sourceLineNo">450</span><a id="line.450"> @ApiResponse( responseCode = "422", description = "If the the provided user data is not valid",</a>
<span class="sourceLineNo">451</span><a id="line.451"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">452</span><a id="line.452"> }</a>
<span class="sourceLineNo">453</span><a id="line.453"> )</a>
<span class="sourceLineNo">454</span><a id="line.454"> RegistrationKey registerUser( @PathParam( "userId" ) String userId, UserRegistrationRequest userRegistrationRequest )</a>
<span class="sourceLineNo">455</span><a id="line.455"> throws RedbackServiceException;</a>
<span class="sourceLineNo">456</span><a id="line.456"></a>
<span class="sourceLineNo">457</span><a id="line.457"> /**</a>
<span class="sourceLineNo">458</span><a id="line.458"> * Asks for a password reset of the given User. Normally this results in a password reset email sent to the</a>
<span class="sourceLineNo">459</span><a id="line.459"> * stored email address for the given user.</a>
<span class="sourceLineNo">460</span><a id="line.460"> */</a>
<span class="sourceLineNo">461</span><a id="line.461"> @Path( "{userId}/password/reset" )</a>
<span class="sourceLineNo">462</span><a id="line.462"> @POST</a>
<span class="sourceLineNo">463</span><a id="line.463"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">464</span><a id="line.464"> @Consumes( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">465</span><a id="line.465"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">466</span><a id="line.466"> @Operation( summary = "Asks for a password reset of the given user. This generates a reset email sent to the stored address of the given user.",</a>
<span class="sourceLineNo">467</span><a id="line.467"> responses = {</a>
<span class="sourceLineNo">468</span><a id="line.468"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">469</span><a id="line.469"> description = "The result status of the password reset.",</a>
<span class="sourceLineNo">470</span><a id="line.470"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = ActionStatus.class))</a>
<span class="sourceLineNo">471</span><a id="line.471"></a>
<span class="sourceLineNo">472</span><a id="line.472"> ),</a>
<span class="sourceLineNo">473</span><a id="line.473"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">474</span><a id="line.474"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">475</span><a id="line.475"> }</a>
<span class="sourceLineNo">476</span><a id="line.476"> )</a>
<span class="sourceLineNo">477</span><a id="line.477"> Response resetPassword( @PathParam( "userId" )String userId )</a>
<span class="sourceLineNo">478</span><a id="line.478"> throws RedbackServiceException;</a>
<span class="sourceLineNo">479</span><a id="line.479"></a>
<span class="sourceLineNo">480</span><a id="line.480"> /**</a>
<span class="sourceLineNo">481</span><a id="line.481"> */</a>
<span class="sourceLineNo">482</span><a id="line.482"> @Path( "{userId}/permissions" )</a>
<span class="sourceLineNo">483</span><a id="line.483"> @GET</a>
<span class="sourceLineNo">484</span><a id="line.484"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">485</span><a id="line.485"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_VIEW_OPERATION,</a>
<span class="sourceLineNo">486</span><a id="line.486"> resource = "{userId}")</a>
<span class="sourceLineNo">487</span><a id="line.487"> @Operation( summary = "Returns a list of permissions assigned to the given user.",</a>
<span class="sourceLineNo">488</span><a id="line.488"> security = {</a>
<span class="sourceLineNo">489</span><a id="line.489"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_VIEW_OPERATION )</a>
<span class="sourceLineNo">490</span><a id="line.490"> },</a>
<span class="sourceLineNo">491</span><a id="line.491"> responses = {</a>
<span class="sourceLineNo">492</span><a id="line.492"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">493</span><a id="line.493"> description = "If the list could be returned",</a>
<span class="sourceLineNo">494</span><a id="line.494"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">495</span><a id="line.495"> @Schema(implementation = Permission.class)))</a>
<span class="sourceLineNo">496</span><a id="line.496"> ),</a>
<span class="sourceLineNo">497</span><a id="line.497"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">498</span><a id="line.498"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">499</span><a id="line.499"> @ApiResponse( responseCode = "403", description = "Logged in user does not have the permission to get this information." ,</a>
<span class="sourceLineNo">500</span><a id="line.500"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class ))),</a>
<span class="sourceLineNo">501</span><a id="line.501"> }</a>
<span class="sourceLineNo">502</span><a id="line.502"> )</a>
<span class="sourceLineNo">503</span><a id="line.503"> Collection&lt;Permission&gt; getUserPermissions( @PathParam( "userId" ) String userName )</a>
<span class="sourceLineNo">504</span><a id="line.504"> throws RedbackServiceException;</a>
<span class="sourceLineNo">505</span><a id="line.505"></a>
<span class="sourceLineNo">506</span><a id="line.506"> @Path( GUEST_USERNAME+"/permissions" )</a>
<span class="sourceLineNo">507</span><a id="line.507"> @GET</a>
<span class="sourceLineNo">508</span><a id="line.508"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">509</span><a id="line.509"> @RedbackAuthorization( noRestriction = true )</a>
<span class="sourceLineNo">510</span><a id="line.510"> @Operation( summary = "Returns a list of permissions assigned to the guest user.",</a>
<span class="sourceLineNo">511</span><a id="line.511"> responses = {</a>
<span class="sourceLineNo">512</span><a id="line.512"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">513</span><a id="line.513"> description = "If the list could be returned",</a>
<span class="sourceLineNo">514</span><a id="line.514"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">515</span><a id="line.515"> @Schema(implementation = Permission.class)))</a>
<span class="sourceLineNo">516</span><a id="line.516"> )</a>
<span class="sourceLineNo">517</span><a id="line.517"> }</a>
<span class="sourceLineNo">518</span><a id="line.518"> )</a>
<span class="sourceLineNo">519</span><a id="line.519"> Collection&lt;Permission&gt; getGuestPermissions( )</a>
<span class="sourceLineNo">520</span><a id="line.520"> throws RedbackServiceException;</a>
<span class="sourceLineNo">521</span><a id="line.521"></a>
<span class="sourceLineNo">522</span><a id="line.522"> /**</a>
<span class="sourceLineNo">523</span><a id="line.523"> * @since 1.4</a>
<span class="sourceLineNo">524</span><a id="line.524"> */</a>
<span class="sourceLineNo">525</span><a id="line.525"> @Path( "{userId}/operations" )</a>
<span class="sourceLineNo">526</span><a id="line.526"> @GET</a>
<span class="sourceLineNo">527</span><a id="line.527"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">528</span><a id="line.528"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_USER_VIEW_OPERATION,</a>
<span class="sourceLineNo">529</span><a id="line.529"> resource = "{userId}")</a>
<span class="sourceLineNo">530</span><a id="line.530"> @Operation( summary = "Returns a list of privileged operations assigned to the given user.",</a>
<span class="sourceLineNo">531</span><a id="line.531"> security = {</a>
<span class="sourceLineNo">532</span><a id="line.532"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_USER_VIEW_OPERATION )</a>
<span class="sourceLineNo">533</span><a id="line.533"> },</a>
<span class="sourceLineNo">534</span><a id="line.534"> responses = {</a>
<span class="sourceLineNo">535</span><a id="line.535"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">536</span><a id="line.536"> description = "If the list could be returned",</a>
<span class="sourceLineNo">537</span><a id="line.537"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">538</span><a id="line.538"> @Schema(implementation = org.apache.archiva.redback.rest.api.model.v2.Operation.class )))</a>
<span class="sourceLineNo">539</span><a id="line.539"> ),</a>
<span class="sourceLineNo">540</span><a id="line.540"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">541</span><a id="line.541"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">542</span><a id="line.542"> @ApiResponse( responseCode = "403", description = "Logged in user does not have the permission to get this information.",</a>
<span class="sourceLineNo">543</span><a id="line.543"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">544</span><a id="line.544"> }</a>
<span class="sourceLineNo">545</span><a id="line.545"> )</a>
<span class="sourceLineNo">546</span><a id="line.546"> Collection&lt;org.apache.archiva.redback.rest.api.model.v2.Operation&gt; getUserOperations( @PathParam( "userId" ) String userName )</a>
<span class="sourceLineNo">547</span><a id="line.547"> throws RedbackServiceException;</a>
<span class="sourceLineNo">548</span><a id="line.548"></a>
<span class="sourceLineNo">549</span><a id="line.549"> /**</a>
<span class="sourceLineNo">550</span><a id="line.550"> * @return the current logged user permissions, if no logged user guest permissions are returned</a>
<span class="sourceLineNo">551</span><a id="line.551"> * @since 1.4</a>
<span class="sourceLineNo">552</span><a id="line.552"> */</a>
<span class="sourceLineNo">553</span><a id="line.553"> @Path( "me/permissions" )</a>
<span class="sourceLineNo">554</span><a id="line.554"> @GET</a>
<span class="sourceLineNo">555</span><a id="line.555"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">556</span><a id="line.556"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">557</span><a id="line.557"> @Operation( summary = "Returns a list of permissions assigned to the logged in user.",</a>
<span class="sourceLineNo">558</span><a id="line.558"> responses = {</a>
<span class="sourceLineNo">559</span><a id="line.559"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">560</span><a id="line.560"> description = "If the list could be returned",</a>
<span class="sourceLineNo">561</span><a id="line.561"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">562</span><a id="line.562"> @Schema(implementation = Permission.class )))</a>
<span class="sourceLineNo">563</span><a id="line.563"> )</a>
<span class="sourceLineNo">564</span><a id="line.564"> }</a>
<span class="sourceLineNo">565</span><a id="line.565"> )</a>
<span class="sourceLineNo">566</span><a id="line.566"> Collection&lt;Permission&gt; getCurrentUserPermissions( )</a>
<span class="sourceLineNo">567</span><a id="line.567"> throws RedbackServiceException;</a>
<span class="sourceLineNo">568</span><a id="line.568"></a>
<span class="sourceLineNo">569</span><a id="line.569"> /**</a>
<span class="sourceLineNo">570</span><a id="line.570"> * @return the current logged user operations, if no logged user guest operations are returned</a>
<span class="sourceLineNo">571</span><a id="line.571"> * @since 1.4</a>
<span class="sourceLineNo">572</span><a id="line.572"> */</a>
<span class="sourceLineNo">573</span><a id="line.573"> @Path( "me/operations" )</a>
<span class="sourceLineNo">574</span><a id="line.574"> @GET</a>
<span class="sourceLineNo">575</span><a id="line.575"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">576</span><a id="line.576"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">577</span><a id="line.577"> @Operation( summary = "Returns a list of privileged operations assigned to the logged in user.",</a>
<span class="sourceLineNo">578</span><a id="line.578"> responses = {</a>
<span class="sourceLineNo">579</span><a id="line.579"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">580</span><a id="line.580"> description = "The list of operations assigne to the current user",</a>
<span class="sourceLineNo">581</span><a id="line.581"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">582</span><a id="line.582"> @Schema(implementation = org.apache.archiva.redback.rest.api.model.v2.Operation.class )))</a>
<span class="sourceLineNo">583</span><a id="line.583"> )</a>
<span class="sourceLineNo">584</span><a id="line.584"> }</a>
<span class="sourceLineNo">585</span><a id="line.585"> )</a>
<span class="sourceLineNo">586</span><a id="line.586"> Collection&lt;org.apache.archiva.redback.rest.api.model.v2.Operation&gt; getCurrentUserOperations( )</a>
<span class="sourceLineNo">587</span><a id="line.587"> throws RedbackServiceException;</a>
<span class="sourceLineNo">588</span><a id="line.588"></a>
<span class="sourceLineNo">589</span><a id="line.589"></a>
<span class="sourceLineNo">590</span><a id="line.590"> @Path( "{userId}/register/{key}/validate" )</a>
<span class="sourceLineNo">591</span><a id="line.591"> @POST</a>
<span class="sourceLineNo">592</span><a id="line.592"> @Produces( {APPLICATION_JSON} )</a>
<span class="sourceLineNo">593</span><a id="line.593"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">594</span><a id="line.594"> @Operation( summary = "Validate the user registration for the given userid by checking the provided key.",</a>
<span class="sourceLineNo">595</span><a id="line.595"> responses = {</a>
<span class="sourceLineNo">596</span><a id="line.596"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">597</span><a id="line.597"> description = "The status of the user registration",</a>
<span class="sourceLineNo">598</span><a id="line.598"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = VerificationStatus.class))</a>
<span class="sourceLineNo">599</span><a id="line.599"> ),</a>
<span class="sourceLineNo">600</span><a id="line.600"> @ApiResponse( responseCode = "404", description = "No user registration was found for the given id and key",</a>
<span class="sourceLineNo">601</span><a id="line.601"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )))</a>
<span class="sourceLineNo">602</span><a id="line.602"> }</a>
<span class="sourceLineNo">603</span><a id="line.603"> )</a>
<span class="sourceLineNo">604</span><a id="line.604"> VerificationStatus validateUserRegistration( @PathParam( "userId" ) String userId, @PathParam( "key" ) String key )</a>
<span class="sourceLineNo">605</span><a id="line.605"> throws RedbackServiceException;</a>
<span class="sourceLineNo">606</span><a id="line.606"></a>
<span class="sourceLineNo">607</span><a id="line.607"></a>
<span class="sourceLineNo">608</span><a id="line.608"> /**</a>
<span class="sourceLineNo">609</span><a id="line.609"> * Returns all roles for a given user id. Recurses all child roles.</a>
<span class="sourceLineNo">610</span><a id="line.610"> *</a>
<span class="sourceLineNo">611</span><a id="line.611"> * @since 3.0</a>
<span class="sourceLineNo">612</span><a id="line.612"> */</a>
<span class="sourceLineNo">613</span><a id="line.613"> @Path( "{userId}/roles" )</a>
<span class="sourceLineNo">614</span><a id="line.614"> @GET</a>
<span class="sourceLineNo">615</span><a id="line.615"> @Produces( { MediaType.APPLICATION_JSON } )</a>
<span class="sourceLineNo">616</span><a id="line.616"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )</a>
<span class="sourceLineNo">617</span><a id="line.617"> @Operation( summary = "Returns a list of all roles effectively assigned to the given user.",</a>
<span class="sourceLineNo">618</span><a id="line.618"> responses = {</a>
<span class="sourceLineNo">619</span><a id="line.619"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">620</span><a id="line.620"> description = "The list of roles assigned to the given user",</a>
<span class="sourceLineNo">621</span><a id="line.621"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">622</span><a id="line.622"> @Schema(implementation = org.apache.archiva.redback.rest.api.model.v2.RoleInfo.class )))</a>
<span class="sourceLineNo">623</span><a id="line.623"> ),</a>
<span class="sourceLineNo">624</span><a id="line.624"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">625</span><a id="line.625"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">626</span><a id="line.626"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for retrieving the information.",</a>
<span class="sourceLineNo">627</span><a id="line.627"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">628</span><a id="line.628"> }</a>
<span class="sourceLineNo">629</span><a id="line.629"> )</a>
<span class="sourceLineNo">630</span><a id="line.630"> List&lt;RoleInfo&gt; getEffectivelyAssignedRoles( @PathParam( "userId" ) String username )</a>
<span class="sourceLineNo">631</span><a id="line.631"> throws RedbackServiceException;</a>
<span class="sourceLineNo">632</span><a id="line.632"></a>
<span class="sourceLineNo">633</span><a id="line.633"></a>
<span class="sourceLineNo">634</span><a id="line.634"> /**</a>
<span class="sourceLineNo">635</span><a id="line.635"> * @since 3.0</a>
<span class="sourceLineNo">636</span><a id="line.636"> */</a>
<span class="sourceLineNo">637</span><a id="line.637"> @Path( "{userId}/roletree" )</a>
<span class="sourceLineNo">638</span><a id="line.638"> @GET</a>
<span class="sourceLineNo">639</span><a id="line.639"> @Produces( { APPLICATION_JSON } )</a>
<span class="sourceLineNo">640</span><a id="line.640"> @RedbackAuthorization( permissions = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )</a>
<span class="sourceLineNo">641</span><a id="line.641"> @Operation( summary = "Returns a list of all roles that are assigned, or can be assigned to the given user. "+</a>
<span class="sourceLineNo">642</span><a id="line.642"> "This method sets the 'assigned' flag on all returned role objects.",</a>
<span class="sourceLineNo">643</span><a id="line.643"> security = {</a>
<span class="sourceLineNo">644</span><a id="line.644"> @SecurityRequirement( name = RedbackRoleConstants.USER_MANAGEMENT_RBAC_ADMIN_OPERATION )</a>
<span class="sourceLineNo">645</span><a id="line.645"> },</a>
<span class="sourceLineNo">646</span><a id="line.646"> responses = {</a>
<span class="sourceLineNo">647</span><a id="line.647"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">648</span><a id="line.648"> description = "The list of roles separated by application that are assigned or assignable for the given user",</a>
<span class="sourceLineNo">649</span><a id="line.649"> content = @Content(mediaType = APPLICATION_JSON, array = @ArraySchema(schema =</a>
<span class="sourceLineNo">650</span><a id="line.650"> @Schema(implementation = Application.class )))</a>
<span class="sourceLineNo">651</span><a id="line.651"> ),</a>
<span class="sourceLineNo">652</span><a id="line.652"> @ApiResponse( responseCode = "404", description = "User does not exist",</a>
<span class="sourceLineNo">653</span><a id="line.653"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">654</span><a id="line.654"> @ApiResponse( responseCode = "403", description = "The authenticated user has not the permission for retrieving the information.",</a>
<span class="sourceLineNo">655</span><a id="line.655"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">656</span><a id="line.656"> }</a>
<span class="sourceLineNo">657</span><a id="line.657"> )</a>
<span class="sourceLineNo">658</span><a id="line.658"> RoleTree getRoleTree( @PathParam( "userId" ) String username )</a>
<span class="sourceLineNo">659</span><a id="line.659"> throws RedbackServiceException;</a>
<span class="sourceLineNo">660</span><a id="line.660"></a>
<span class="sourceLineNo">661</span><a id="line.661"></a>
<span class="sourceLineNo">662</span><a id="line.662"> @Path( "me/password/update" )</a>
<span class="sourceLineNo">663</span><a id="line.663"> @POST</a>
<span class="sourceLineNo">664</span><a id="line.664"> @Consumes({APPLICATION_JSON})</a>
<span class="sourceLineNo">665</span><a id="line.665"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">666</span><a id="line.666"> @Operation( summary = "Changes a user password",</a>
<span class="sourceLineNo">667</span><a id="line.667"> security = {</a>
<span class="sourceLineNo">668</span><a id="line.668"> @SecurityRequirement( name = "Authenticated" )</a>
<span class="sourceLineNo">669</span><a id="line.669"> },</a>
<span class="sourceLineNo">670</span><a id="line.670"> responses = {</a>
<span class="sourceLineNo">671</span><a id="line.671"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">672</span><a id="line.672"> description = "The password change was successful"</a>
<span class="sourceLineNo">673</span><a id="line.673"> ),</a>
<span class="sourceLineNo">674</span><a id="line.674"> @ApiResponse( responseCode = "401", description = "User is not logged in",</a>
<span class="sourceLineNo">675</span><a id="line.675"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">676</span><a id="line.676"> @ApiResponse( responseCode = "400", description = "Provided data is not valid",</a>
<span class="sourceLineNo">677</span><a id="line.677"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">678</span><a id="line.678"> @ApiResponse( responseCode = "403", description = "If the given user_id does not match",</a>
<span class="sourceLineNo">679</span><a id="line.679"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">680</span><a id="line.680"> }</a>
<span class="sourceLineNo">681</span><a id="line.681"> )</a>
<span class="sourceLineNo">682</span><a id="line.682"> Response changePassword( PasswordChange passwordChange ) throws RedbackServiceException;</a>
<span class="sourceLineNo">683</span><a id="line.683"></a>
<span class="sourceLineNo">684</span><a id="line.684"> @Path( "{userId}/password/update" )</a>
<span class="sourceLineNo">685</span><a id="line.685"> @POST</a>
<span class="sourceLineNo">686</span><a id="line.686"> @Consumes({APPLICATION_JSON})</a>
<span class="sourceLineNo">687</span><a id="line.687"> @RedbackAuthorization( noRestriction = true, noPermission = true )</a>
<span class="sourceLineNo">688</span><a id="line.688"> @Operation( summary = "Changes a user password",</a>
<span class="sourceLineNo">689</span><a id="line.689"> responses = {</a>
<span class="sourceLineNo">690</span><a id="line.690"> @ApiResponse( responseCode = "200",</a>
<span class="sourceLineNo">691</span><a id="line.691"> description = "The password change was successful"</a>
<span class="sourceLineNo">692</span><a id="line.692"> ),</a>
<span class="sourceLineNo">693</span><a id="line.693"> @ApiResponse( responseCode = "400", description = "Provided data is not valid",</a>
<span class="sourceLineNo">694</span><a id="line.694"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) ),</a>
<span class="sourceLineNo">695</span><a id="line.695"> @ApiResponse( responseCode = "403", description = "If the given user_id does not match",</a>
<span class="sourceLineNo">696</span><a id="line.696"> content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = RedbackRestError.class )) )</a>
<span class="sourceLineNo">697</span><a id="line.697"> }</a>
<span class="sourceLineNo">698</span><a id="line.698"> )</a>
<span class="sourceLineNo">699</span><a id="line.699"> Response changePasswordUnauthenticated( @PathParam( "userId" ) String userId, PasswordChange passwordChange ) throws RedbackServiceException;</a>
<span class="sourceLineNo">700</span><a id="line.700"></a>
<span class="sourceLineNo">701</span><a id="line.701">}</a>
</pre>
</div>
</main>
</body>
</html>