github.com/rzurga/go-swagger@v0.28.1-0.20211109195225-5d1f453ffa3a/fixtures/bugs/1774/def_api.yaml (about) 1 swagger: "2.0" 2 info: 3 description: >- 4 REST API for the User Management Service 5 version: "1" 6 title: "User Management" 7 termsOfService: "Experimental, no SLA" 8 contact: 9 email: "development@bbgo.org" 10 license: 11 name: "Apache 2.0" 12 url: "http://www.apache.org/licenses/LICENSE-2.0.html" 13 # host: "localhost" 14 basePath: "/user-service/v1" 15 tags: 16 - name: User 17 description: "User" 18 19 - name: Token 20 description: "Token" 21 22 schemes: 23 - "https" 24 - "http" 25 paths: 26 /users: 27 post: 28 tags: 29 - User 30 summary: "an operation to register a new user" 31 description: >- 32 Registers a new user 33 operationId: "registerUser" 34 consumes: 35 - "application/json" 36 produces: 37 - "application/json" 38 parameters: 39 - name: payload 40 in: body 41 description: >- 42 Data for the user to be registered 43 schema: 44 $ref: "./Data.yaml" 45 required: true 46 responses: 47 201: 48 description: Created 49 headers: 50 Location: 51 description: URI of the registered resource 52 type: string 53 #format: uri 54 ETag: 55 description: >- 56 Fingerprint of the created resource 57 type: string 58 schema: 59 $ref: "./User.yaml" 60 400: 61 $ref: "./responses.yaml#/400" 62 401: 63 $ref: "./responses.yaml#/401" 64 403: 65 $ref: "./responses.yaml#/403" 66 500: 67 $ref: "./responses.yaml#/500" 68 69 get: 70 tags: 71 - User 72 summary: Get all users 73 description: >- 74 Get all users 75 operationId: "getUsers" 76 produces: 77 - "application/json" 78 parameters: 79 - $ref: "./parameters.yaml#/filter" 80 - $ref: "./parameters.yaml#/top" 81 - $ref: "./parameters.yaml#/skip" 82 - $ref: "./parameters.yaml#/search" 83 responses: 84 200: 85 description: OK 86 schema: 87 $ref: "./Users.yaml" 88 400: 89 $ref: "./responses.yaml#/400" 90 401: 91 $ref: "./responses.yaml#/401" 92 403: 93 $ref: "./responses.yaml#/403" 94 404: 95 $ref: "./responses.yaml#/404" 96 500: 97 $ref: "./responses.yaml#/500" 98 security: 99 - tokenAuth: [ADMIN, USER] 100 101 /users/{id}: 102 get: 103 tags: 104 - User 105 summary: "Retrieve a user by ID" 106 description: >- 107 Returns user 108 operationId: "getUser" 109 produces: 110 - "application/json" 111 parameters: 112 - in: path 113 name: "id" 114 description: "User ID" 115 type: string 116 required: true 117 responses: 118 200: 119 description: OK 120 headers: 121 ETag: 122 description: >- 123 Fingerprint of the user object retrieved 124 type: string 125 schema: 126 $ref: "./User.yaml" 127 400: 128 $ref: "./responses.yaml#/400" 129 401: 130 $ref: "./responses.yaml#/401" 131 403: 132 $ref: "./responses.yaml#/403" 133 404: 134 $ref: "./responses.yaml#/404" 135 500: 136 $ref: "./responses.yaml#/500" 137 security: 138 - tokenAuth: [ADMIN, USER] 139 140 delete: 141 tags: 142 - User 143 summary: Deletes a user 144 description: >- 145 Deletes a user 146 operationId: deleteUser 147 parameters: 148 - name: id 149 in: path 150 description: ID of a user to delete 151 required: true 152 type: "string" 153 responses: 154 204: 155 $ref: "./responses.yaml#/204" 156 400: 157 $ref: "./responses.yaml#/400" 158 401: 159 $ref: "./responses.yaml#/401" 160 403: 161 $ref: "./responses.yaml#/403" 162 404: 163 $ref: "./responses.yaml#/404" 164 500: 165 $ref: "./responses.yaml#/500" 166 security: 167 - tokenAuth: [ADMIN, USER] 168 169 /users/{id}/data: 170 put: 171 tags: 172 - User 173 summary: Update an existing user data 174 description: >- 175 Updates data for an existing user 176 operationId: updateData 177 consumes: 178 - application/json 179 produces: 180 - application/json 181 parameters: 182 - in: path 183 name: id 184 description: ID of the user to update 185 type: string 186 required: true 187 - in: body 188 name: payload 189 description: User data to be updated 190 required: true 191 schema: 192 $ref: "./Data.yaml" 193 - $ref: "./parameters.yaml#/ifmatch" 194 responses: 195 200: 196 description: OK 197 headers: 198 ETag: 199 description: "Fingerprint of the user object updated" 200 type: string 201 schema: 202 $ref: "./User.yaml" 203 400: 204 $ref: "./responses.yaml#/400" 205 401: 206 $ref: "./responses.yaml#/401" 207 403: 208 $ref: "./responses.yaml#/403" 209 404: 210 $ref: "./responses.yaml#/404" 211 412: 212 $ref: "./responses.yaml#/412" 213 500: 214 $ref: "./responses.yaml#/500" 215 security: 216 - tokenAuth: [ADMIN, USER] 217 218 /users/{id}/roles: 219 put: 220 tags: 221 - User 222 summary: Update roles for an existing user 223 description: >- 224 Updates roles for an existing user 225 operationId: updateRoles 226 consumes: 227 - application/json 228 produces: 229 - application/json 230 parameters: 231 - in: path 232 name: id 233 description: ID of the user to update 234 type: string 235 required: true 236 - in: body 237 name: payload 238 description: User roles to be updated 239 required: true 240 schema: 241 $ref: "./Roles.yaml" 242 - $ref: "./parameters.yaml#/ifmatch" 243 responses: 244 200: 245 description: OK 246 headers: 247 ETag: 248 description: "Fingerprint of the user object updated" 249 type: string 250 schema: 251 $ref: "./User.yaml" 252 400: 253 $ref: "./responses.yaml#/400" 254 401: 255 $ref: "./responses.yaml#/401" 256 403: 257 $ref: "./responses.yaml#/403" 258 404: 259 $ref: "./responses.yaml#/404" 260 412: 261 $ref: "./responses.yaml#/412" 262 500: 263 $ref: "./responses.yaml#/500" 264 security: 265 - tokenAuth: [ADMIN, USER] 266 267 /token: 268 post: 269 tags: 270 - Token 271 summary: Issues a token for an authenticated user 272 description: >- 273 Issues a token for an authenticated user 274 operationId: issueToken 275 produces: 276 - application/json 277 responses: 278 200: 279 description: OK 280 schema: 281 $ref: "./AccessToken.yaml" 282 400: 283 $ref: "./responses.yaml#/400" 284 401: 285 $ref: "./responses.yaml#/401" 286 403: 287 $ref: "./responses.yaml#/403" 288 404: 289 $ref: "./responses.yaml#/404" 290 412: 291 $ref: "./responses.yaml#/412" 292 500: 293 $ref: "./responses.yaml#/500" 294 security: 295 - basicAuth: [] 296 297 securityDefinitions: 298 basicAuth: 299 type: basic 300 tokenAuth: 301 type: apiKey 302 in: header 303 name: Authorization