From 7b8cac890cf480a55477a3edf0ab23da13954733 Mon Sep 17 00:00:00 2001 From: Aris Nourbakhsh Date: Fri, 24 Feb 2023 15:51:17 +0100 Subject: [PATCH] Feat(Definitions): Released definitions for keycloak 21 --- .../Options.cs | 3 + .../Program.cs | 6 +- ...hag.Keycloak.OpenApiGenerator.Tests.csproj | 1 + .../ResourceInterpreterTests.cs | 21 + .../TestFiles/ImplicitParamsResource.java | 102 + .../KeycloakOpenApiGenerator.cs | 1 + .../Parsing/Resource/RawRxJsResourceAction.cs | 35 +- .../Parsing/Resource/RawRxjsParam.cs | 24 +- .../Parsing/Resource/ResourceInterpreter.cs | 19 +- .../PostProcess/Parameter.cs | 8 +- OpenApiDefinitions/keycloak-21.0.0.json | 15502 ++++++++++++++++ OpenApiDefinitions/keycloak-21.0.0.yml | 9892 ++++++++++ 12 files changed, 25596 insertions(+), 18 deletions(-) create mode 100644 Dahag.Keycloak.OpenApiGenerator.Tests/TestFiles/ImplicitParamsResource.java create mode 100644 OpenApiDefinitions/keycloak-21.0.0.json create mode 100644 OpenApiDefinitions/keycloak-21.0.0.yml diff --git a/Dahag.Keycloak.OpenApiGenerator.Cli/Options.cs b/Dahag.Keycloak.OpenApiGenerator.Cli/Options.cs index 68ce098..ae2f0d7 100644 --- a/Dahag.Keycloak.OpenApiGenerator.Cli/Options.cs +++ b/Dahag.Keycloak.OpenApiGenerator.Cli/Options.cs @@ -9,4 +9,7 @@ public class Options [Value(1, Required = false)] public string? Output { get; set; } + + [Value(2, Required = false)] + public string? OutputFileName { get; set; } } \ No newline at end of file diff --git a/Dahag.Keycloak.OpenApiGenerator.Cli/Program.cs b/Dahag.Keycloak.OpenApiGenerator.Cli/Program.cs index a594e26..5907edb 100644 --- a/Dahag.Keycloak.OpenApiGenerator.Cli/Program.cs +++ b/Dahag.Keycloak.OpenApiGenerator.Cli/Program.cs @@ -28,6 +28,10 @@ if (!Directory.Exists(outputRoot)) throw new Exception($"output root directory '{outputRoot}' could not be found"); + var outputFileName = options.OutputFileName ?? "definition"; + var definitionsYmlPath = Path.Combine(outputRoot, $"{outputFileName}.yml"); + var definitionsJsonPath = Path.Combine(outputRoot, $"{outputFileName}.json"); + using var loggerFactory = new SerilogLoggerFactory(); var repoParser = new KeycloakRepositoryParser(loggerFactory.CreateLogger(), options.KeycloakRoot); var apiDefinition = repoParser.Parse(); @@ -37,13 +41,11 @@ Log.Information("Generating OpenApi definition"); var openApiDocument = new KeycloakOpenApiGenerator().Generate(postProcessed.ActionCollections, postProcessed.Representations); - var definitionsYmlPath = Path.Combine(Directory.GetCurrentDirectory(), "definition.yml"); Log.Information($"Writing: {definitionsYmlPath}"); using (var targetFile = File.Open(definitionsYmlPath, FileMode.Create)) { openApiDocument.SerializeAsYaml(targetFile, OpenApiSpecVersion.OpenApi3_0); } - var definitionsJsonPath = Path.Combine(Directory.GetCurrentDirectory(), "definition.json"); Log.Information($"Writing: {definitionsJsonPath}"); using (var targetFile = File.Open(definitionsJsonPath, FileMode.Create)) { diff --git a/Dahag.Keycloak.OpenApiGenerator.Tests/Dahag.Keycloak.OpenApiGenerator.Tests.csproj b/Dahag.Keycloak.OpenApiGenerator.Tests/Dahag.Keycloak.OpenApiGenerator.Tests.csproj index 56496a5..ec6b575 100644 --- a/Dahag.Keycloak.OpenApiGenerator.Tests/Dahag.Keycloak.OpenApiGenerator.Tests.csproj +++ b/Dahag.Keycloak.OpenApiGenerator.Tests/Dahag.Keycloak.OpenApiGenerator.Tests.csproj @@ -23,6 +23,7 @@ + diff --git a/Dahag.Keycloak.OpenApiGenerator.Tests/ResourceInterpreterTests.cs b/Dahag.Keycloak.OpenApiGenerator.Tests/ResourceInterpreterTests.cs index d4390c3..bdf064a 100644 --- a/Dahag.Keycloak.OpenApiGenerator.Tests/ResourceInterpreterTests.cs +++ b/Dahag.Keycloak.OpenApiGenerator.Tests/ResourceInterpreterTests.cs @@ -188,6 +188,27 @@ public void Interpret_AdvancedParams_Works() } }); } + + + [Test] + public void Interpret_ImplicitBodyParams_Works() + { + var actual = ParseResource("ImplicitParamsResource.java"); + + Assert.That(actual.Actions, Has.Count.EqualTo(1)); + actual.Actions[0].Parameters.AssertEquality(new List + { + new() + { + Name = "data", + ParamSource = ParamSource.Body, + Type = "Object", + PathParam = null, + Default = null, + Implicit = true + } + }); + } [Test] diff --git a/Dahag.Keycloak.OpenApiGenerator.Tests/TestFiles/ImplicitParamsResource.java b/Dahag.Keycloak.OpenApiGenerator.Tests/TestFiles/ImplicitParamsResource.java new file mode 100644 index 0000000..0249c78 --- /dev/null +++ b/Dahag.Keycloak.OpenApiGenerator.Tests/TestFiles/ImplicitParamsResource.java @@ -0,0 +1,102 @@ +/* + * Copyright 2016 Red Hat, Inc. and/or its affiliates + * and other contributors as indicated by the @author tags. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.keycloak.services.resources.admin; + +import com.google.common.collect.Streams; +import org.jboss.resteasy.annotations.cache.NoCache; +import org.keycloak.broker.provider.IdentityProvider; +import org.keycloak.broker.provider.IdentityProviderFactory; +import org.keycloak.broker.social.SocialIdentityProvider; +import org.keycloak.connections.httpclient.HttpClientProvider; +import org.keycloak.events.admin.OperationType; +import org.keycloak.events.admin.ResourceType; +import org.keycloak.http.FormPartValue; +import org.keycloak.models.IdentityProviderModel; +import org.keycloak.models.KeycloakSession; +import org.keycloak.models.ModelDuplicateException; +import org.keycloak.models.RealmModel; +import org.keycloak.models.utils.ModelToRepresentation; +import org.keycloak.models.utils.RepresentationToModel; +import org.keycloak.models.utils.StripSecretsUtils; +import org.keycloak.provider.ProviderFactory; +import org.keycloak.representations.idm.IdentityProviderRepresentation; +import org.keycloak.services.ErrorResponse; +import org.keycloak.services.resources.admin.permissions.AdminPermissionEvaluator; + +import javax.ws.rs.BadRequestException; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; +import java.io.IOException; +import java.io.InputStream; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Stream; + +import static javax.ws.rs.core.Response.Status.BAD_REQUEST; +import org.keycloak.utils.ReservedCharValidator; + +/** + * @resource Identity Providers + * @author Pedro Igor + */ +public class IdentityProvidersResource { + + private final RealmModel realm; + private final KeycloakSession session; + private AdminPermissionEvaluator auth; + private AdminEventBuilder adminEvent; + + public IdentityProvidersResource(RealmModel realm, KeycloakSession session, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent) { + this.realm = realm; + this.session = session; + this.auth = auth; + this.adminEvent = adminEvent.resource(ResourceType.IDENTITY_PROVIDER); + } + + /** + * Import identity provider from uploaded JSON file + * + * @param input + * @return + * @throws IOException + */ + @POST + @Path("import-config") + @Consumes(MediaType.MULTIPART_FORM_DATA) + @Produces(MediaType.APPLICATION_JSON) + public Map importFrom() throws IOException { + this.auth.realm().requireManageIdentityProviders(); + MultivaluedMap formDataMap = session.getContext().getHttpRequest().getMultiPartFormParameters(); + if (!(formDataMap.containsKey("providerId") && formDataMap.containsKey("file"))) { + throw new BadRequestException(); + } + String providerId = formDataMap.getFirst("providerId").asString(); + InputStream inputStream = formDataMap.getFirst("file").asInputStream(); + IdentityProviderFactory providerFactory = getProviderFactoryById(providerId); + Map config = providerFactory.parseConfig(session, inputStream); + return config; + } + +} diff --git a/Dahag.Keycloak.OpenApiGenerator/KeycloakOpenApiGenerator.cs b/Dahag.Keycloak.OpenApiGenerator/KeycloakOpenApiGenerator.cs index 632c676..24e53f9 100644 --- a/Dahag.Keycloak.OpenApiGenerator/KeycloakOpenApiGenerator.cs +++ b/Dahag.Keycloak.OpenApiGenerator/KeycloakOpenApiGenerator.cs @@ -80,6 +80,7 @@ private OpenApiPaths CreatePaths(IEnumerable actionCollection foreach (var pathGroup in groupedByPath) { + var pathItem = CreateOpenApoCreateOpenApiPathItem(pathGroup.ToList()); paths.Add(pathGroup.Key, pathItem); } diff --git a/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxJsResourceAction.cs b/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxJsResourceAction.cs index 77395da..a956d14 100644 --- a/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxJsResourceAction.cs +++ b/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxJsResourceAction.cs @@ -1,4 +1,5 @@ using System.Diagnostics; +using System.Text.RegularExpressions; using Dahag.Keycloak.OpenApiGenerator.Parsing.Documentation; namespace Dahag.Keycloak.OpenApiGenerator.Parsing.Resource; @@ -26,9 +27,9 @@ public override int GetHashCode() public HttpMethod? HttpMethod { get; set; } public List Parameters { get; set; } = new(); public RawDocumentation? Documentation { get; set; } - public List? Consumes { get; set; } + public List? Consumes { get; set; } public List? Produces { get; set; } - + public string? ReturnsType { get => _returnsType; @@ -46,11 +47,12 @@ public string? ReturnsType public int FoundAtLine { get; set; } public int PersistedAtLine { get; set; } public bool ProbablyParentOfAnotherResource { get; set; } + public string? RawMethodBody { get; set; } public string? Tag { get; set; } private string? _returnsType; - + public void Set(ActionAnnotation actionAnnotation) { if (actionAnnotation.Path != null && Path != null) @@ -58,10 +60,10 @@ public void Set(ActionAnnotation actionAnnotation) if (actionAnnotation.HttpMethod != null && HttpMethod != null) throw new AlreadySetException(nameof(HttpMethod)); - + if (actionAnnotation.Consumes != null && Consumes != null) throw new AlreadySetException(nameof(Consumes)); - + if (actionAnnotation.Produces != null && Produces != null) throw new AlreadySetException(nameof(Produces)); @@ -70,14 +72,33 @@ public void Set(ActionAnnotation actionAnnotation) if (actionAnnotation.HttpMethod != null) HttpMethod = actionAnnotation.HttpMethod; - + if (actionAnnotation.Consumes != null) Consumes = actionAnnotation.Consumes; - + if (actionAnnotation.Produces != null) Produces = actionAnnotation.Produces; } + public bool CouldMaybeHaveAnImplicitBodyParameter() + { + return Path != null + && HttpMethod is Resource.HttpMethod.Post or Resource.HttpMethod.Put + && ProbablyParentOfAnotherResource == false + && (Consumes?.Any() ?? false) + && (!Parameters.Any() || Parameters.All(x => x.ParamSource == ParamSource.Path)) + && RawMethodBody != null && (RawMethodBody.Contains(".getMultiPartFormParameters()") || RawMethodBody.Contains(".getDecodedFormParameters()") || + new Regex(@"get.+FromRequest\(\)").IsMatch(RawMethodBody)); + } + + public void AddImplicitBodyParameter() + { + Parameters = Parameters.Concat(new List + { + RawRxjsParam.CreateImplicitBodyParameter() + }).ToList(); + } + public override string ToString() { var paramsAsString = string.Join('\n', Parameters.Select(x => x.ToString())); diff --git a/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxjsParam.cs b/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxjsParam.cs index aded257..fe0f3a1 100644 --- a/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxjsParam.cs +++ b/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/RawRxjsParam.cs @@ -1,5 +1,8 @@ -namespace Dahag.Keycloak.OpenApiGenerator.Parsing.Resource; +using System.Diagnostics; +namespace Dahag.Keycloak.OpenApiGenerator.Parsing.Resource; + +[DebuggerDisplay($"{nameof(ToString)}()")] public class RawRxjsParam { public string? Name { get; set; } @@ -7,14 +10,29 @@ public class RawRxjsParam public string? Type { get; set; } public string? Default { get; set; } public bool InternalJavaJankToIgnore { get; set; } + public bool Implicit { get; set; } public ParamSource? ParamSource { get; set; } public override string ToString() { - var ignore = InternalJavaJankToIgnore ? $"IGNORE": ""; + var ignore = InternalJavaJankToIgnore ? "IGNORE": ""; var defaultExpression = Default != null? $" = {Default}": ""; var paramSourceExpression = ParamSource != null? Enum.GetName(ParamSource.Value): ""; - return $"{ignore}({paramSourceExpression}){PathParam}({Name}:{Type}){defaultExpression}"; + var implicitExpression = Implicit ? "implicit": "explicit"; + return $"{ignore}({implicitExpression})({paramSourceExpression}){PathParam}({Name}:{Type}){defaultExpression}"; + } + + public static RawRxjsParam CreateImplicitBodyParameter() + { + return new RawRxjsParam + { + Name = "data", + ParamSource = Resource.ParamSource.Body, + Type = "Object", + PathParam = null, + Default = null, + Implicit = true + }; } } diff --git a/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/ResourceInterpreter.cs b/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/ResourceInterpreter.cs index b3347d8..14163d1 100644 --- a/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/ResourceInterpreter.cs +++ b/Dahag.Keycloak.OpenApiGenerator/Parsing/Resource/ResourceInterpreter.cs @@ -1,4 +1,5 @@ using System.Diagnostics; +using Antlr4.Runtime; using Antlr4.Runtime.Tree; namespace Dahag.Keycloak.OpenApiGenerator.Parsing.Resource; @@ -96,9 +97,7 @@ public override RawRxJsResource VisitMethodBody(JavaParser.MethodBodyContext con _skipChildren = true; if (CurrentPending != null) { - CurrentPending.PersistedAtLine = context.Start.Line; - _resource.Actions.Add(CurrentPending); - CurrentPending = null; + FinalizeCurrentPending(context); } var result = base.VisitMethodBody(context); @@ -106,6 +105,20 @@ public override RawRxJsResource VisitMethodBody(JavaParser.MethodBodyContext con return result; } + private void FinalizeCurrentPending(ParserRuleContext context) + { + CurrentPending!.PersistedAtLine = context.Start.Line; + CurrentPending.RawMethodBody = context.GetText(); + _resource.Actions.Add(CurrentPending); + + if (CurrentPending.CouldMaybeHaveAnImplicitBodyParameter()) + { + CurrentPending.AddImplicitBodyParameter(); + } + + CurrentPending = null; + } + public override RawRxJsResource VisitCompilationUnit(JavaParser.CompilationUnitContext context) { _resource.Name = context.typeDeclaration()[0].classDeclaration().identifier().GetText(); diff --git a/Dahag.Keycloak.OpenApiGenerator/PostProcess/Parameter.cs b/Dahag.Keycloak.OpenApiGenerator/PostProcess/Parameter.cs index 1c886e5..14f1b6c 100644 --- a/Dahag.Keycloak.OpenApiGenerator/PostProcess/Parameter.cs +++ b/Dahag.Keycloak.OpenApiGenerator/PostProcess/Parameter.cs @@ -21,12 +21,14 @@ public class Parameter : IParameter public string Name { get; } public string? Default { get; set; } public TypeInfo TypeInfo { get; } + public bool Implicit { get; } - public Parameter(ParamSource source, string name, TypeInfo typeInfo) + public Parameter(ParamSource source, string name, TypeInfo typeInfo, bool @implicit) { Source = source; Name = name; TypeInfo = typeInfo; + Implicit = @implicit; } public static IParameter Create(RawRxjsParam raw, RawDocumentation? rawDocumentation, List representations, List enums) @@ -45,10 +47,10 @@ public static IParameter Create(RawRxjsParam raw, RawDocumentation? rawDocumenta if (typeInfo == null) throw new Exception($"Could not find type for {raw.Type}"); - return new Parameter(raw.ParamSource!.Value, raw.PathParam ?? raw.Name, typeInfo) + return new Parameter(raw.ParamSource!.Value, raw.PathParam ?? raw.Name, typeInfo, raw.Implicit) { Default = raw.Default, - Documentation = rawDocumentation?.ParamText.GetValueOrDefault(raw.Name) + Documentation = rawDocumentation?.ParamText.GetValueOrDefault(raw.Name), }; } } diff --git a/OpenApiDefinitions/keycloak-21.0.0.json b/OpenApiDefinitions/keycloak-21.0.0.json new file mode 100644 index 0000000..8387c20 --- /dev/null +++ b/OpenApiDefinitions/keycloak-21.0.0.json @@ -0,0 +1,15502 @@ +{ + "openapi": "3.0.1", + "info": { + "title": "Keycloak REST Api", + "description": "This is a REST API reference for the Keycloak Admin", + "version": "1" + }, + "paths": { + "/": { + "get": { + "tags": [ + "RealmsAdmin" + ], + "description": "/\nGet accessible realms\n\nReturns a list of accessible realms. The list is filtered based on what realms the caller is allowed to view.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RealmRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "RealmsAdmin" + ], + "description": "/\nImport a realm.\n

\nImports a realm from a full representation of that realm. Realm name must be unique.\n\n/\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + } + }, + "/{realm}": { + "description": "/{realm}", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet the top-level representation of the realm\n\nIt will not include nested information like User and Client representations.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RealmRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nUpdate the top-level information of the realm\n\nAny user, roles or client information in the representation\nwill be ignored. This will only update top-level attributes of the realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RealmRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nDelete the realm\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/admin-events": { + "description": "/{realm}/admin-events", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet admin events\n\nReturns all admin events, or filters events based on URL query parameters listed here\n\n", + "parameters": [ + { + "name": "operationTypes", + "in": "query", + "description": "", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "authRealm", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "authClient", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "authUser", + "in": "query", + "description": "user id", + "schema": { + "type": "string" + } + }, + { + "name": "authIpAddress", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "resourcePath", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "dateFrom", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "dateTo", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "description": "", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "Maximum results size (defaults to 100)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "resourceTypes", + "in": "query", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AdminEventRepresentation" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nDelete all admin events\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/attack-detection/brute-force/users": { + "description": "/{realm}/attack-detection/brute-force/users", + "delete": { + "tags": [ + "AttackDetection" + ], + "description": "/\nClear any user login failures for all users\n\nThis can release temporary disabled users\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/attack-detection/brute-force/users/{userId}": { + "description": "/{realm}/attack-detection/brute-force/users/{userId}", + "get": { + "tags": [ + "AttackDetection" + ], + "description": "/\nGet status of a username in brute force detection\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "AttackDetection" + ], + "description": "/\nClear any user login failures for the user\n\nThis can release temporary disabled user\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/authenticator-providers": { + "description": "/{realm}/authentication/authenticator-providers", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet authenticator providers\n\nReturns a stream of authenticator providers.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/client-authenticator-providers": { + "description": "/{realm}/authentication/client-authenticator-providers", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet client authenticator providers\n\nReturns a stream of client authenticator providers.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/config": { + "description": "/{realm}/authentication/config", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nCreate new authenticator configuration\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatorConfigRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/config-description/{providerId}": { + "description": "/{realm}/authentication/config-description/{providerId}", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet authenticator provider's configuration description\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatorConfigInfoRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "providerId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/config/{id}": { + "description": "/{realm}/authentication/config/{id}", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet authenticator configuration\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatorConfigRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nDelete authenticator configuration\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nUpdate authenticator configuration\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatorConfigRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "Configuration id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/executions": { + "description": "/{realm}/authentication/executions", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nAdd new authentication execution\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationExecutionRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/executions/{executionId}": { + "description": "/{realm}/authentication/executions/{executionId}", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet Single Execution\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nDelete execution\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "executionId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/executions/{executionId}/config": { + "description": "/{realm}/authentication/executions/{executionId}/config", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nUpdate execution with new configuration\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatorConfigRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "executionId", + "in": "path", + "description": "Execution id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/executions/{executionId}/config/{id}": { + "description": "/{realm}/authentication/executions/{executionId}/config/{id}", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet execution's configuration\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticatorConfigRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "executionId", + "in": "path", + "description": "Execution id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "Configuration id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/executions/{executionId}/lower-priority": { + "description": "/{realm}/authentication/executions/{executionId}/lower-priority", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nLower execution's priority\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "executionId", + "in": "path", + "description": "Execution id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/executions/{executionId}/raise-priority": { + "description": "/{realm}/authentication/executions/{executionId}/raise-priority", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nRaise execution's priority\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "executionId", + "in": "path", + "description": "Execution id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/flows": { + "description": "/{realm}/authentication/flows", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet authentication flows\n\nReturns a stream of authentication flows.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationFlowRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nCreate a new authentication flow\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationFlowRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/flows/{flowAlias}/copy": { + "description": "/{realm}/authentication/flows/{flowAlias}/copy", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nCopy existing authentication flow under a new name\n\nThe new name is given as 'newName' attribute of the passed JSON object\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowAlias", + "in": "path", + "description": "Name of the existing authentication flow", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/flows/{flowAlias}/executions": { + "description": "/{realm}/authentication/flows/{flowAlias}/executions", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet authentication executions for a flow\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nUpdate authentication executions of a Flow\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationExecutionInfoRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowAlias", + "in": "path", + "description": "Flow alias", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/flows/{flowAlias}/executions/execution": { + "description": "/{realm}/authentication/flows/{flowAlias}/executions/execution", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nAdd new authentication execution to a flow\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowAlias", + "in": "path", + "description": "Alias of parent flow", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/flows/{flowAlias}/executions/flow": { + "description": "/{realm}/authentication/flows/{flowAlias}/executions/flow", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nAdd new flow with new execution to existing flow\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "flowAlias", + "in": "path", + "description": "Alias of parent authentication flow", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/flows/{id}": { + "description": "/{realm}/authentication/flows/{id}", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet authentication flow for id\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationFlowRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nUpdate an authentication flow\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AuthenticationFlowRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nDelete an authentication flow\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "Flow id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/form-action-providers": { + "description": "/{realm}/authentication/form-action-providers", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet form action providers\n\nReturns a stream of form action providers.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/form-providers": { + "description": "/{realm}/authentication/form-providers", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet form providers\n\nReturns a stream of form providers.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/per-client-config-description": { + "description": "/{realm}/authentication/per-client-config-description", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet configuration descriptions for all clients\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/register-required-action": { + "description": "/{realm}/authentication/register-required-action", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nRegister a new required actions\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/required-actions": { + "description": "/{realm}/authentication/required-actions", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet required actions\n\nReturns a stream of required actions.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RequiredActionProviderRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/required-actions/{alias}": { + "description": "/{realm}/authentication/required-actions/{alias}", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet required action for alias\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequiredActionProviderRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nUpdate required action\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RequiredActionProviderRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nDelete required action\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "description": "Alias of required action", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/required-actions/{alias}/lower-priority": { + "description": "/{realm}/authentication/required-actions/{alias}/lower-priority", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nLower required action's priority\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "description": "Alias of required action", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/required-actions/{alias}/raise-priority": { + "description": "/{realm}/authentication/required-actions/{alias}/raise-priority", + "post": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nRaise required action's priority\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "description": "Alias of required action", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/authentication/unregistered-required-actions": { + "description": "/{realm}/authentication/unregistered-required-actions", + "get": { + "tags": [ + "AuthenticationManagement" + ], + "description": "/\nGet unregistered required actions\n\nReturns a stream of unregistered required actions.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-description-converter": { + "description": "/{realm}/client-description-converter", + "post": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for importing clients under this realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + }, + "application/xml": { + "schema": { + "type": "string" + } + }, + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-policies/policies": { + "description": "/{realm}/client-policies/policies", + "get": { + "tags": [ + "ClientPolicies" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientPoliciesRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "ClientPolicies" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientPoliciesRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-policies/profiles": { + "description": "/{realm}/client-policies/profiles", + "get": { + "tags": [ + "ClientProfiles" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "parameters": [ + { + "name": "include-global-profiles", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientProfilesRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "ClientProfiles" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientProfilesRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-registration-policy/providers": { + "description": "/{realm}/client-registration-policy/providers", + "get": { + "tags": [ + "ClientRegistrationPolicy" + ], + "description": "/\nBase path for retrieve providers with the configProperties properly filled\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComponentTypeRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes": { + "description": "/{realm}/client-scopes", + "get": { + "tags": [ + "ClientScopes" + ], + "description": "/\nGet client scopes belonging to the realm\n\nReturns a list of client scopes belonging to the realm\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ClientScopes" + ], + "description": "/\nCreate a new client scope\n\nClient Scope's name must be unique!\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}": { + "description": "/{realm}/client-scopes/{id}", + "put": { + "tags": [ + "ClientScope" + ], + "description": "/\nUpdate the client scope\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "ClientScope" + ], + "description": "/\nGet representation of the client scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "ClientScope" + ], + "description": "/\nDelete the client scope\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/protocol-mappers/add-models": { + "description": "/{realm}/client-scopes/{id}/protocol-mappers/add-models", + "post": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nCreate multiple mappers\n\n/\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/protocol-mappers/models": { + "description": "/{realm}/client-scopes/{id}/protocol-mappers/models", + "post": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nCreate a mapper\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mappers\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/protocol-mappers/protocol/{protocol}": { + "description": "/{realm}/client-scopes/{id}/protocol-mappers/protocol/{protocol}", + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mappers by name for a specific protocol\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "protocol", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings": { + "description": "/{realm}/client-scopes/{id}/scope-mappings", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet all scope mappings for the client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MappingsRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings/clients/{client}": { + "description": "/{realm}/client-scopes/{id}/scope-mappings/clients/{client}", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nGet the roles associated with a client's scope\n\nReturns roles for the client.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nAdd client-level roles to the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nRemove client-level roles from the client's scope.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/available": { + "description": "/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/available", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nThe available client-level roles\n\nReturns the roles for the client that can be associated with the client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/composite": { + "description": "/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/composite", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nGet effective client roles\n\nReturns the roles for the client that are associated with the client's scope.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings/realm": { + "description": "/{realm}/client-scopes/{id}/scope-mappings/realm", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet realm-level roles associated with the client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nAdd a set of realm-level roles to the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nRemove a set of realm-level roles from the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings/realm/available": { + "description": "/{realm}/client-scopes/{id}/scope-mappings/realm/available", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet realm-level roles that are available to attach to this client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id}/scope-mappings/realm/composite": { + "description": "/{realm}/client-scopes/{id}/scope-mappings/realm/composite", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet effective realm-level roles associated with the client's scope\n\nWhat this does is recurse\nany composite roles associated with the client's scope and adds the roles to this lists. The method is really\nto show a comprehensive total view of realm-level roles associated with the client.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-scopes/{id1}/protocol-mappers/models/{id2}": { + "description": "/{realm}/client-scopes/{id1}/protocol-mappers/models/{id2}", + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mapper by id\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nUpdate the mapper\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nDelete the mapper\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id1", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id2", + "in": "path", + "description": "Mapper id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-session-stats": { + "description": "/{realm}/client-session-stats", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet client session stats\n\nReturns a JSON map. The key is the client id, the value is the number of sessions that currently are active\nwith that client. Only clients that actually have a session associated with them will be in this map.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates": { + "description": "/{realm}/client-templates", + "get": { + "tags": [ + "ClientScopes" + ], + "description": "/\nGet client scopes belonging to the realm\n\nReturns a list of client scopes belonging to the realm\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ClientScopes" + ], + "description": "/\nCreate a new client scope\n\nClient Scope's name must be unique!\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}": { + "description": "/{realm}/client-templates/{id}", + "put": { + "tags": [ + "ClientScope" + ], + "description": "/\nUpdate the client scope\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "ClientScope" + ], + "description": "/\nGet representation of the client scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "ClientScope" + ], + "description": "/\nDelete the client scope\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/protocol-mappers/add-models": { + "description": "/{realm}/client-templates/{id}/protocol-mappers/add-models", + "post": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nCreate multiple mappers\n\n/\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/protocol-mappers/models": { + "description": "/{realm}/client-templates/{id}/protocol-mappers/models", + "post": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nCreate a mapper\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mappers\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/protocol-mappers/protocol/{protocol}": { + "description": "/{realm}/client-templates/{id}/protocol-mappers/protocol/{protocol}", + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mappers by name for a specific protocol\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "protocol", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings": { + "description": "/{realm}/client-templates/{id}/scope-mappings", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet all scope mappings for the client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MappingsRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings/clients/{client}": { + "description": "/{realm}/client-templates/{id}/scope-mappings/clients/{client}", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nGet the roles associated with a client's scope\n\nReturns roles for the client.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nAdd client-level roles to the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nRemove client-level roles from the client's scope.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings/clients/{client}/available": { + "description": "/{realm}/client-templates/{id}/scope-mappings/clients/{client}/available", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nThe available client-level roles\n\nReturns the roles for the client that can be associated with the client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings/clients/{client}/composite": { + "description": "/{realm}/client-templates/{id}/scope-mappings/clients/{client}/composite", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nGet effective client roles\n\nReturns the roles for the client that are associated with the client's scope.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings/realm": { + "description": "/{realm}/client-templates/{id}/scope-mappings/realm", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet realm-level roles associated with the client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nAdd a set of realm-level roles to the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nRemove a set of realm-level roles from the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings/realm/available": { + "description": "/{realm}/client-templates/{id}/scope-mappings/realm/available", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet realm-level roles that are available to attach to this client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id}/scope-mappings/realm/composite": { + "description": "/{realm}/client-templates/{id}/scope-mappings/realm/composite", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet effective realm-level roles associated with the client's scope\n\nWhat this does is recurse\nany composite roles associated with the client's scope and adds the roles to this lists. The method is really\nto show a comprehensive total view of realm-level roles associated with the client.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/client-templates/{id1}/protocol-mappers/models/{id2}": { + "description": "/{realm}/client-templates/{id1}/protocol-mappers/models/{id2}", + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mapper by id\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nUpdate the mapper\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nDelete the mapper\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id1", + "in": "path", + "description": "id of client scope (not name)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id2", + "in": "path", + "description": "Mapper id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients": { + "description": "/{realm}/clients", + "get": { + "tags": [ + "Clients" + ], + "description": "/\nGet clients belonging to the realm.\n\nIf a client can't be retrieved from the storage due to a problem with the underlying storage,\nit is silently removed from the returned list.\nThis ensures that concurrent modifications to the list don't prevent callers from retrieving this list.\n\n", + "parameters": [ + { + "name": "clientId", + "in": "query", + "description": "filter by clientId", + "schema": { + "type": "string" + } + }, + { + "name": "viewableOnly", + "in": "query", + "description": "filter clients that cannot be viewed in full by admin", + "schema": { + "type": "boolean" + } + }, + { + "name": "search", + "in": "query", + "description": "whether this is a search query or a getClientById query", + "schema": { + "type": "boolean" + } + }, + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "description": "the first result", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "the max results to return", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Clients" + ], + "description": "/\nCreate a new client\n\nClient's client_id must be unique!\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients-initial-access": { + "description": "/{realm}/clients-initial-access", + "post": { + "tags": [ + "ClientInitialAccess" + ], + "description": "/\nCreate a new initial access token.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientInitialAccessCreatePresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientInitialAccessPresentation" + } + } + } + } + } + }, + "get": { + "tags": [ + "ClientInitialAccess" + ], + "description": "/\nBase path for managing client initial access tokens\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientInitialAccessPresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients-initial-access/{id}": { + "description": "/{realm}/clients-initial-access/{id}", + "delete": { + "tags": [ + "ClientInitialAccess" + ], + "description": "/\nBase path for managing client initial access tokens\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}": { + "description": "/{realm}/clients/{id}", + "put": { + "tags": [ + "Client" + ], + "description": "/\nUpdate the client\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet representation of the client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "Client" + ], + "description": "/\nDelete the client\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/certificates/{attr}": { + "description": "/{realm}/clients/{id}/certificates/{attr}", + "get": { + "tags": [ + "ClientAttributeCertificate" + ], + "description": "/\nGet key info\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CertificateRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "attr", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/certificates/{attr}/download": { + "description": "/{realm}/clients/{id}/certificates/{attr}/download", + "post": { + "tags": [ + "ClientAttributeCertificate" + ], + "description": "/\nGet a keystore file for the client, containing private key and public certificate\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyStoreConfig" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "attr", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/certificates/{attr}/generate": { + "description": "/{realm}/clients/{id}/certificates/{attr}/generate", + "post": { + "tags": [ + "ClientAttributeCertificate" + ], + "description": "/\nGenerate a new certificate with new key pair\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CertificateRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "attr", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/certificates/{attr}/generate-and-download": { + "description": "/{realm}/clients/{id}/certificates/{attr}/generate-and-download", + "post": { + "tags": [ + "ClientAttributeCertificate" + ], + "description": "/\nGenerate a new keypair and certificate, and get the private key file\n\nGenerates a keypair and certificate and serves the private key in a specified keystore format.\nOnly generated public certificate is saved in Keycloak DB - the private key is not.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeyStoreConfig" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "attr", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/certificates/{attr}/upload": { + "description": "/{realm}/clients/{id}/certificates/{attr}/upload", + "post": { + "tags": [ + "ClientAttributeCertificate" + ], + "description": "/\nUpload certificate and eventually private key\n\n", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CertificateRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "attr", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/certificates/{attr}/upload-certificate": { + "description": "/{realm}/clients/{id}/certificates/{attr}/upload-certificate", + "post": { + "tags": [ + "ClientAttributeCertificate" + ], + "description": "/\nUpload only certificate, not private key\n\n", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CertificateRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "attr", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/client-secret": { + "description": "/{realm}/clients/{id}/client-secret", + "post": { + "tags": [ + "Client" + ], + "description": "/\nGenerate a new secret for the client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialRepresentation" + } + } + } + } + } + }, + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet the client secret\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/client-secret/rotated": { + "description": "/{realm}/clients/{id}/client-secret/rotated", + "delete": { + "tags": [ + "Client" + ], + "description": "/\nInvalidate the rotated secret for the client\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet the rotated client secret\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/default-client-scopes": { + "description": "/{realm}/clients/{id}/default-client-scopes", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet default client scopes. Only name and ids are returned.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/default-client-scopes/{clientScopeId}": { + "description": "/{realm}/clients/{id}/default-client-scopes/{clientScopeId}", + "put": { + "tags": [ + "Client" + ], + "description": "/\nBase path for managing a specific client.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "Client" + ], + "description": "/\nBase path for managing a specific client.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientScopeId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/evaluate-scopes/generate-example-access-token": { + "description": "/{realm}/clients/{id}/evaluate-scopes/generate-example-access-token", + "get": { + "tags": [ + "ClientScopeEvaluate" + ], + "description": "/\nCreate JSON with payload of example access token\n\n", + "parameters": [ + { + "name": "scope", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccessToken" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/evaluate-scopes/generate-example-id-token": { + "description": "/{realm}/clients/{id}/evaluate-scopes/generate-example-id-token", + "get": { + "tags": [ + "ClientScopeEvaluate" + ], + "description": "/\nCreate JSON with payload of example id token\n\n", + "parameters": [ + { + "name": "scope", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IDToken" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/evaluate-scopes/generate-example-userinfo": { + "description": "/{realm}/clients/{id}/evaluate-scopes/generate-example-userinfo", + "get": { + "tags": [ + "ClientScopeEvaluate" + ], + "description": "/\nCreate JSON with payload of example user info\n\n", + "parameters": [ + { + "name": "scope", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "userId", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/evaluate-scopes/protocol-mappers": { + "description": "/{realm}/clients/{id}/evaluate-scopes/protocol-mappers", + "get": { + "tags": [ + "ClientScopeEvaluate" + ], + "description": "/\nReturn list of all protocol mappers, which will be used when generating tokens issued for particular client. This means\nprotocol mappers assigned to this client directly and protocol mappers assigned to all client scopes of this client.\n\n", + "parameters": [ + { + "name": "scope", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperEvaluationRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/granted": { + "description": "/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/granted", + "get": { + "tags": [ + "ClientScopeEvaluateScopeMappings" + ], + "description": "/\nGet effective scope mapping of all roles of particular role container, which this client is defacto allowed to have in the accessToken issued for him.\n\nThis contains scope mappings, which this client has directly, as well as scope mappings, which are granted to all client scopes,\nwhich are linked with this client.\n\n", + "parameters": [ + { + "name": "scope", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "roleContainerId", + "in": "path", + "description": "either realm name OR client UUID", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/not-granted": { + "description": "/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/not-granted", + "get": { + "tags": [ + "ClientScopeEvaluateScopeMappings" + ], + "description": "/\nGet roles, which this client doesn't have scope for and can't have them in the accessToken issued for him. Defacto all the\nother roles of particular role container, which are not in {", + "parameters": [ + { + "name": "scope", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "roleContainerId", + "in": "path", + "description": "either realm name OR client UUID", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/installation/providers/{providerId}": { + "description": "/{realm}/clients/{id}/installation/providers/{providerId}", + "get": { + "tags": [ + "Client" + ], + "description": "/\nBase path for managing a specific client.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "providerId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/management/permissions": { + "description": "/{realm}/clients/{id}/management/permissions", + "get": { + "tags": [ + "Client" + ], + "description": "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "Client" + ], + "description": "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/nodes": { + "description": "/{realm}/clients/{id}/nodes", + "post": { + "tags": [ + "Client" + ], + "description": "/\nRegister a cluster node with the client\n\nManually register cluster node to this client - usually it's not needed to call this directly as adapter should handle\nby sending registration request to Keycloak\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/nodes/{node}": { + "description": "/{realm}/clients/{id}/nodes/{node}", + "delete": { + "tags": [ + "Client" + ], + "description": "/\nUnregister a cluster node from the client\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "node", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/offline-session-count": { + "description": "/{realm}/clients/{id}/offline-session-count", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet application offline session count\n\nReturns a number of offline user sessions associated with this client\n\n{\n\"count\": number\n}\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/offline-sessions": { + "description": "/{realm}/clients/{id}/offline-sessions", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet offline sessions for client\n\nReturns a list of offline user sessions associated with this client\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "Paging offset", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "Maximum results size (defaults to 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserSessionRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/optional-client-scopes": { + "description": "/{realm}/clients/{id}/optional-client-scopes", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet optional client scopes. Only name and ids are returned.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/optional-client-scopes/{clientScopeId}": { + "description": "/{realm}/clients/{id}/optional-client-scopes/{clientScopeId}", + "put": { + "tags": [ + "Client" + ], + "description": "/\nBase path for managing a specific client.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "Client" + ], + "description": "/\nBase path for managing a specific client.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientScopeId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/protocol-mappers/add-models": { + "description": "/{realm}/clients/{id}/protocol-mappers/add-models", + "post": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nCreate multiple mappers\n\n/\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/protocol-mappers/models": { + "description": "/{realm}/clients/{id}/protocol-mappers/models", + "post": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nCreate a mapper\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mappers\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/protocol-mappers/protocol/{protocol}": { + "description": "/{realm}/clients/{id}/protocol-mappers/protocol/{protocol}", + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mappers by name for a specific protocol\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "protocol", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/push-revocation": { + "description": "/{realm}/clients/{id}/push-revocation", + "post": { + "tags": [ + "Client" + ], + "description": "/\nPush the client's revocation policy to its admin URL\n\nIf the client has an admin URL, push revocation policy to it.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "GlobalRequestResult" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/registration-access-token": { + "description": "/{realm}/clients/{id}/registration-access-token", + "post": { + "tags": [ + "Client" + ], + "description": "/\nGenerate a new registration access token for the client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles": { + "description": "/{realm}/clients/{id}/roles", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet all roles for the realm or client\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "RoleContainer" + ], + "description": "/\nCreate a new role for the realm or client\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}": { + "description": "/{realm}/clients/{id}/roles/{role-name}", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet a role by name\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "RoleContainer" + ], + "description": "/\nDelete a role by name\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "RoleContainer" + ], + "description": "/\nUpdate a role by name\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}/composites": { + "description": "/{realm}/clients/{id}/roles/{role-name}/composites", + "post": { + "tags": [ + "RoleContainer" + ], + "description": "/\nAdd a composite to the role\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet composites of the role\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "RoleContainer" + ], + "description": "/\nRemove roles from the role's composite\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}/composites/clients/{clientUuid}": { + "description": "/{realm}/clients/{id}/roles/{role-name}/composites/clients/{clientUuid}", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet client-level roles for the client that are in the role's composite\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientUuid", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}/composites/realm": { + "description": "/{realm}/clients/{id}/roles/{role-name}/composites/realm", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet realm-level roles of the role's composite\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}/groups": { + "description": "/{realm}/clients/{id}/roles/{role-name}/groups", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturns a stream of groups that have the specified role name\n\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "first result to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "maximum number of results to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return a full representation of the {@code GroupRepresentation} objects.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "the role name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}/management/permissions": { + "description": "/{realm}/clients/{id}/roles/{role-name}/management/permissions", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/roles/{role-name}/users": { + "description": "/{realm}/clients/{id}/roles/{role-name}/users", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturns a stream of users that have the specified role name.\n\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "first result to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "maximum number of results to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "the role name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings": { + "description": "/{realm}/clients/{id}/scope-mappings", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet all scope mappings for the client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MappingsRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings/clients/{client}": { + "description": "/{realm}/clients/{id}/scope-mappings/clients/{client}", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nGet the roles associated with a client's scope\n\nReturns roles for the client.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nAdd client-level roles to the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nRemove client-level roles from the client's scope.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings/clients/{client}/available": { + "description": "/{realm}/clients/{id}/scope-mappings/clients/{client}/available", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nThe available client-level roles\n\nReturns the roles for the client that can be associated with the client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings/clients/{client}/composite": { + "description": "/{realm}/clients/{id}/scope-mappings/clients/{client}/composite", + "get": { + "tags": [ + "ScopeMappedClient" + ], + "description": "/\nGet effective client roles\n\nReturns the roles for the client that are associated with the client's scope.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings/realm": { + "description": "/{realm}/clients/{id}/scope-mappings/realm", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet realm-level roles associated with the client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nAdd a set of realm-level roles to the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nRemove a set of realm-level roles from the client's scope\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings/realm/available": { + "description": "/{realm}/clients/{id}/scope-mappings/realm/available", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet realm-level roles that are available to attach to this client's scope\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/scope-mappings/realm/composite": { + "description": "/{realm}/clients/{id}/scope-mappings/realm/composite", + "get": { + "tags": [ + "ScopeMapped" + ], + "description": "/\nGet effective realm-level roles associated with the client's scope\n\nWhat this does is recurse\nany composite roles associated with the client's scope and adds the roles to this lists. The method is really\nto show a comprehensive total view of realm-level roles associated with the client.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/service-account-user": { + "description": "/{realm}/clients/{id}/service-account-user", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet a user dedicated to the service account\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/session-count": { + "description": "/{realm}/clients/{id}/session-count", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet application session count\n\nReturns a number of user sessions associated with this client\n\n{\n\"count\": number\n}\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/test-nodes-available": { + "description": "/{realm}/clients/{id}/test-nodes-available", + "get": { + "tags": [ + "Client" + ], + "description": "/\nTest if registered cluster nodes are available\n\nTests availability by sending 'ping' request to all cluster nodes.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "GlobalRequestResult" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id}/user-sessions": { + "description": "/{realm}/clients/{id}/user-sessions", + "get": { + "tags": [ + "Client" + ], + "description": "/\nGet user sessions for client\n\nReturns a list of user sessions associated with this client\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "Paging offset", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "Maximum results size (defaults to 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserSessionRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/clients/{id1}/protocol-mappers/models/{id2}": { + "description": "/{realm}/clients/{id1}/protocol-mappers/models/{id2}", + "get": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nGet mapper by id\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nUpdate the mapper\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ProtocolMappers" + ], + "description": "/\nDelete the mapper\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id1", + "in": "path", + "description": "id of client (not client-id)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id2", + "in": "path", + "description": "Mapper id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/components": { + "description": "/{realm}/components", + "get": { + "tags": [ + "Component" + ], + "description": "/\nBase path for managing components under this realm.\n\n", + "parameters": [ + { + "name": "parent", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "type", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "name", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComponentRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Component" + ], + "description": "/\nBase path for managing components under this realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComponentRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/components/{id}": { + "description": "/{realm}/components/{id}", + "get": { + "tags": [ + "Component" + ], + "description": "/\nBase path for managing components under this realm.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComponentRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "Component" + ], + "description": "/\nBase path for managing components under this realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ComponentRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "Component" + ], + "description": "/\nBase path for managing components under this realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/components/{id}/sub-component-types": { + "description": "/{realm}/components/{id}/sub-component-types", + "get": { + "tags": [ + "Component" + ], + "description": "/\nList of subcomponent types that are available to configure for a particular parent component.\n\n", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ComponentTypeRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/credential-registrators": { + "description": "/{realm}/credential-registrators", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/default-default-client-scopes": { + "description": "/{realm}/default-default-client-scopes", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet realm default client scopes. Only name and ids are returned.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/default-default-client-scopes/{clientScopeId}": { + "description": "/{realm}/default-default-client-scopes/{clientScopeId}", + "put": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientScopeId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/default-groups": { + "description": "/{realm}/default-groups", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet group hierarchy. Only name and ids are returned.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/default-groups/{groupId}": { + "description": "/{realm}/default-groups/{groupId}", + "put": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/default-optional-client-scopes": { + "description": "/{realm}/default-optional-client-scopes", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet realm optional client scopes. Only name and ids are returned.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/default-optional-client-scopes/{clientScopeId}": { + "description": "/{realm}/default-optional-client-scopes/{clientScopeId}", + "put": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientScopeId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/events": { + "description": "/{realm}/events", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet events\n\nReturns all events, or filters them based on URL query parameters listed here\n\n", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "The types of events to return", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "client", + "in": "query", + "description": "App or oauth client name", + "schema": { + "type": "string" + } + }, + { + "name": "user", + "in": "query", + "description": "User id", + "schema": { + "type": "string" + } + }, + { + "name": "dateFrom", + "in": "query", + "description": "From date", + "schema": { + "type": "string" + } + }, + { + "name": "dateTo", + "in": "query", + "description": "To date", + "schema": { + "type": "string" + } + }, + { + "name": "ipAddress", + "in": "query", + "description": "IP address", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "description": "Paging offset", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "Maximum results size (defaults to 100)", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EventRepresentation" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nDelete all events\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/events/config": { + "description": "/{realm}/events/config", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nGet the events provider configuration\n\nReturns JSON object with events provider configuration\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RealmEventsConfigRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nUpdate the events provider\n\nChange the events provider and/or its configuration\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RealmEventsConfigRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/group-by-path/{path}": { + "description": "/{realm}/group-by-path/{path}", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "path", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups": { + "description": "/{realm}/groups", + "get": { + "tags": [ + "Groups" + ], + "description": "/\nGet group hierarchy. Only name and ids are returned.\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "q", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "exact", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "first", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "Groups" + ], + "description": "/\ncreate or add a top level realm groupSet or create child. This will update the group and set the parent if it exists. Create it and set the parent\nif the group doesn't exist.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}": { + "description": "/{realm}/groups/{id}", + "get": { + "tags": [ + "Group" + ], + "description": "/\n\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "Group" + ], + "description": "/\nUpdate group, ignores subgroups.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "Group" + ], + "description": "/\nDoes not expand hierarchy. Subgroups will not be set.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/children": { + "description": "/{realm}/groups/{id}/children", + "post": { + "tags": [ + "Group" + ], + "description": "/\nSet or create child. This will just set the parent if it exists. Create it and set the parent\nif the group doesn't exist.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/management/permissions": { + "description": "/{realm}/groups/{id}/management/permissions", + "get": { + "tags": [ + "Group" + ], + "description": "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "Group" + ], + "description": "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/members": { + "description": "/{realm}/groups/{id}/members", + "get": { + "tags": [ + "Group" + ], + "description": "/\nGet users\n\nReturns a stream of users, filtered according to query parameters\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "Pagination offset", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "Maximum results size (defaults to 100)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "description": "Only return basic information (only guaranteed to return id, username, created, first and last name,", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings": { + "description": "/{realm}/groups/{id}/role-mappings", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet role mappings\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MappingsRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings/clients/{client}": { + "description": "/{realm}/groups/{id}/role-mappings/clients/{client}", + "get": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nGet client-level role mappings for the user, and the app\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nAdd client-level roles to the user role mapping\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nDelete client-level roles from user role mapping\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings/clients/{client}/available": { + "description": "/{realm}/groups/{id}/role-mappings/clients/{client}/available", + "get": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nGet available client-level roles that can be mapped to the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings/clients/{client}/composite": { + "description": "/{realm}/groups/{id}/role-mappings/clients/{client}/composite", + "get": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nGet effective client-level role mappings\n\nThis recurses any composite roles\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings/realm": { + "description": "/{realm}/groups/{id}/role-mappings/realm", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet realm-level role mappings\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "RoleMapper" + ], + "description": "/\nAdd realm-level role mappings to the user\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RoleMapper" + ], + "description": "/\nDelete realm-level role mappings\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings/realm/available": { + "description": "/{realm}/groups/{id}/role-mappings/realm/available", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet realm-level roles that can be mapped\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/{id}/role-mappings/realm/composite": { + "description": "/{realm}/groups/{id}/role-mappings/realm/composite", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet effective realm-level role mappings\n\nThis will recurse all composite roles to get the result.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/groups/count": { + "description": "/{realm}/groups/count", + "get": { + "tags": [ + "Groups" + ], + "description": "/\nReturns the groups counts.\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "top", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/import-config": { + "description": "/{realm}/identity-provider/import-config", + "post": { + "tags": [ + "IdentityProviders" + ], + "description": "/\nImport identity provider from uploaded JSON file\n\n", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object" + } + }, + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances": { + "description": "/{realm}/identity-provider/instances", + "get": { + "tags": [ + "IdentityProviders" + ], + "description": "/\nGet identity providers\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IdentityProviderRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "IdentityProviders" + ], + "description": "/\nCreate a new identity provider\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProviderRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances/{alias}": { + "description": "/{realm}/identity-provider/instances/{alias}", + "get": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nGet the identity provider\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProviderRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nDelete the identity provider\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nUpdate the identity provider\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProviderRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances/{alias}/export": { + "description": "/{realm}/identity-provider/instances/{alias}/export", + "get": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nExport public broker configuration for identity provider\n\n", + "parameters": [ + { + "name": "format", + "in": "query", + "description": "Format to use", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances/{alias}/management/permissions": { + "description": "/{realm}/identity-provider/instances/{alias}/management/permissions", + "get": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances/{alias}/mapper-types": { + "description": "/{realm}/identity-provider/instances/{alias}/mapper-types", + "get": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nGet mapper types for identity provider\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances/{alias}/mappers": { + "description": "/{realm}/identity-provider/instances/{alias}/mappers", + "get": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nGet mappers for identity provider\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IdentityProviderMapperRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nAdd a mapper to identity provider\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProviderMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/instances/{alias}/mappers/{id}": { + "description": "/{realm}/identity-provider/instances/{alias}/mappers/{id}", + "get": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nGet mapper by id for the identity provider\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProviderMapperRepresentation" + } + } + } + } + } + }, + "put": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nUpdate a mapper for the identity provider\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/IdentityProviderMapperRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "IdentityProvider" + ], + "description": "/\nDelete a mapper for the identity provider\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "alias", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/identity-provider/providers/{provider_id}": { + "description": "/{realm}/identity-provider/providers/{provider_id}", + "get": { + "tags": [ + "IdentityProviders" + ], + "description": "/\nGet identity providers\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "provider_id", + "in": "path", + "description": "Provider id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/keys": { + "description": "/{realm}/keys", + "get": { + "tags": [ + "Key" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/KeysMetadataRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/localization": { + "description": "/{realm}/localization", + "get": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nBase path for managing localization under this realm.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/localization/{locale}": { + "description": "/{realm}/localization/{locale}", + "post": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nImport localization from uploaded JSON file\n/\n", + "requestBody": { + "content": { + "multipart/form-data": { + "schema": { + "type": "object" + } + }, + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nBase path for managing localization under this realm.\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nBase path for managing localization under this realm.\n/\n", + "parameters": [ + { + "name": "useRealmDefaultLocaleFallback", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "locale", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/localization/{locale}/{key}": { + "description": "/{realm}/localization/{locale}/{key}", + "put": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nBase path for managing localization under this realm.\n/\n", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nBase path for managing localization under this realm.\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "RealmLocalization" + ], + "description": "/\nBase path for managing localization under this realm.\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "locale", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "key", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/logout-all": { + "description": "/{realm}/logout-all", + "post": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nRemoves all user sessions. Any client that has an admin url will also be told to invalidate any sessions\nthey have.\n\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "GlobalRequestResult" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/partial-export": { + "description": "/{realm}/partial-export", + "post": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nPartial export of existing realm into a JSON file.\n\n", + "parameters": [ + { + "name": "exportGroupsAndRoles", + "in": "query", + "description": "", + "schema": { + "type": "boolean" + } + }, + { + "name": "exportClients", + "in": "query", + "description": "", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/partialImport": { + "description": "/{realm}/partialImport", + "post": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nPartial import from a JSON file to an existing realm.\n\n/\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/push-revocation": { + "description": "/{realm}/push-revocation", + "post": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nPush the realm's revocation policy to any client that has an admin url associated with it.\n\n/\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "description": "GlobalRequestResult" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles": { + "description": "/{realm}/roles", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet all roles for the realm or client\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "RoleContainer" + ], + "description": "/\nCreate a new role for the realm or client\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles-by-id/{role-id}": { + "description": "/{realm}/roles-by-id/{role-id}", + "get": { + "tags": [ + "RoleById" + ], + "description": "/\nGet a specific role's representation\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "RoleById" + ], + "description": "/\nDelete the role\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "RoleById" + ], + "description": "/\nUpdate the role\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-id", + "in": "path", + "description": "id of role", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles-by-id/{role-id}/composites": { + "description": "/{realm}/roles-by-id/{role-id}/composites", + "post": { + "tags": [ + "RoleById" + ], + "description": "/\nMake the role a composite role by associating some child roles\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "RoleById" + ], + "description": "/\nGet role's children\n\nReturns a set of role's children provided the role is a composite.\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "RoleById" + ], + "description": "/\nRemove a set of roles from the role's composite\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles-by-id/{role-id}/composites/clients/{clientUuid}": { + "description": "/{realm}/roles-by-id/{role-id}/composites/clients/{clientUuid}", + "get": { + "tags": [ + "RoleById" + ], + "description": "/\nGet client-level roles for the client that are in the role's composite\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientUuid", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles-by-id/{role-id}/composites/realm": { + "description": "/{realm}/roles-by-id/{role-id}/composites/realm", + "get": { + "tags": [ + "RoleById" + ], + "description": "/\nGet realm-level roles that are in the role's composite\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles-by-id/{role-id}/management/permissions": { + "description": "/{realm}/roles-by-id/{role-id}/management/permissions", + "get": { + "tags": [ + "RoleById" + ], + "description": "/\nReturn object stating whether role Authoirzation permissions have been initialized or not and a reference\n\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "RoleById" + ], + "description": "/\nReturn object stating whether role Authoirzation permissions have been initialized or not and a reference\n\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-id", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}": { + "description": "/{realm}/roles/{role-name}", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet a role by name\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "RoleContainer" + ], + "description": "/\nDelete a role by name\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "RoleContainer" + ], + "description": "/\nUpdate a role by name\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}/composites": { + "description": "/{realm}/roles/{role-name}/composites", + "post": { + "tags": [ + "RoleContainer" + ], + "description": "/\nAdd a composite to the role\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet composites of the role\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "delete": { + "tags": [ + "RoleContainer" + ], + "description": "/\nRemove roles from the role's composite\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}/composites/clients/{clientUuid}": { + "description": "/{realm}/roles/{role-name}/composites/clients/{clientUuid}", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet client-level roles for the client that are in the role's composite\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientUuid", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}/composites/realm": { + "description": "/{realm}/roles/{role-name}/composites/realm", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nGet realm-level roles of the role's composite\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "role's name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}/groups": { + "description": "/{realm}/roles/{role-name}/groups", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturns a stream of groups that have the specified role name\n\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "first result to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "maximum number of results to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return a full representation of the {@code GroupRepresentation} objects.", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "the role name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}/management/permissions": { + "description": "/{realm}/roles/{role-name}/management/permissions", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/roles/{role-name}/users": { + "description": "/{realm}/roles/{role-name}/users", + "get": { + "tags": [ + "RoleContainer" + ], + "description": "/\nReturns a stream of users that have the specified role name.\n\n\n", + "parameters": [ + { + "name": "first", + "in": "query", + "description": "first result to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "maximum number of results to return. Ignored if negative or {@code null}.", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "role-name", + "in": "path", + "description": "the role name.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/sessions/{session}": { + "description": "/{realm}/sessions/{session}", + "delete": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nRemove a specific user session. Any client that has an admin url will also be told to invalidate this\nparticular session.\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "session", + "in": "path", + "description": "", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/testSMTPConnection": { + "description": "/{realm}/testSMTPConnection", + "post": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nTest SMTP connection with current logged in user\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users": { + "description": "/{realm}/users", + "post": { + "tags": [ + "Users" + ], + "description": "/\nCreate a new user\n\nUsername must be unique.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "Users" + ], + "description": "/\nGet users\n\nReturns a stream of users, filtered according to query parameters.\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "description": "A String contained in username, first or last name, or email", + "schema": { + "type": "string" + } + }, + { + "name": "lastName", + "in": "query", + "description": "A String contained in lastName, or the complete lastName, if param \"exact\" is true", + "schema": { + "type": "string" + } + }, + { + "name": "firstName", + "in": "query", + "description": "A String contained in firstName, or the complete firstName, if param \"exact\" is true", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "A String contained in email, or the complete email, if param \"exact\" is true", + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "query", + "description": "A String contained in username, or the complete username, if param \"exact\" is true", + "schema": { + "type": "string" + } + }, + { + "name": "emailVerified", + "in": "query", + "description": "whether the email has been verified", + "schema": { + "type": "boolean" + } + }, + { + "name": "idpAlias", + "in": "query", + "description": "The alias of an Identity Provider linked to the user", + "schema": { + "type": "string" + } + }, + { + "name": "idpUserId", + "in": "query", + "description": "The userId at an Identity Provider linked to the user", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "description": "Pagination offset", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "description": "Maximum results size (defaults to 100)", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "enabled", + "in": "query", + "description": "Boolean representing if user is enabled or not", + "schema": { + "type": "boolean" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "description": "Boolean which defines whether brief representations are returned (default: false)", + "schema": { + "type": "boolean" + } + }, + { + "name": "exact", + "in": "query", + "description": "Boolean which defines whether the params \"last\", \"first\", \"email\" and \"username\" must match exactly", + "schema": { + "type": "boolean" + } + }, + { + "name": "q", + "in": "query", + "description": "A query to search for custom attributes, in the format 'key1:value2 key2:value2'", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users-management-permissions": { + "description": "/{realm}/users-management-permissions", + "get": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "put": { + "tags": [ + "RealmAdmin" + ], + "description": "/\nBase path for the admin REST API for one particular realm.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ManagementPermissionReference" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}": { + "description": "/{realm}/users/{id}", + "put": { + "tags": [ + "User" + ], + "description": "/\nUpdate the user\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "get": { + "tags": [ + "User" + ], + "description": "/\nGet representation of the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserRepresentation" + } + } + } + } + } + }, + "delete": { + "tags": [ + "User" + ], + "description": "/\nDelete the user\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/configured-user-storage-credential-types": { + "description": "/{realm}/users/{id}/configured-user-storage-credential-types", + "get": { + "tags": [ + "User" + ], + "description": "/\nReturn credential types, which are provided by the user storage where user is stored. Returned values can contain for example \"password\", \"otp\" etc.\nThis will always return empty list for \"local\" users, which are not backed by any user storage\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/consents": { + "description": "/{realm}/users/{id}/consents", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet consents granted by the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/consents/{client}": { + "description": "/{realm}/users/{id}/consents/{client}", + "delete": { + "tags": [ + "User" + ], + "description": "/\nRevoke consent and offline tokens for particular client from user\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "description": "Client id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/credentials": { + "description": "/{realm}/users/{id}/credentials", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet representation of the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CredentialRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/credentials/{credentialId}": { + "description": "/{realm}/users/{id}/credentials/{credentialId}", + "delete": { + "tags": [ + "User" + ], + "description": "/\nRemove a credential for a user\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credentialId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/credentials/{credentialId}/moveAfter/{newPreviousCredentialId}": { + "description": "/{realm}/users/{id}/credentials/{credentialId}/moveAfter/{newPreviousCredentialId}", + "post": { + "tags": [ + "User" + ], + "description": "/\nMove a credential to a position behind another credential\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credentialId", + "in": "path", + "description": "The credential to move", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "newPreviousCredentialId", + "in": "path", + "description": "The credential that will be the previous element in the list. If set to null, the moved credential will be the first element in the list.", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/credentials/{credentialId}/moveToFirst": { + "description": "/{realm}/users/{id}/credentials/{credentialId}/moveToFirst", + "post": { + "tags": [ + "User" + ], + "description": "/\nMove a credential to a first position in the credentials list of the user\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credentialId", + "in": "path", + "description": "The credential to move", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/credentials/{credentialId}/userLabel": { + "description": "/{realm}/users/{id}/credentials/{credentialId}/userLabel", + "put": { + "tags": [ + "User" + ], + "description": "/\nUpdate a credential label for a user\n/\n", + "requestBody": { + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "credentialId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/disable-credential-types": { + "description": "/{realm}/users/{id}/disable-credential-types", + "put": { + "tags": [ + "User" + ], + "description": "/\nDisable all credentials for a user of a specific type\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/execute-actions-email": { + "description": "/{realm}/users/{id}/execute-actions-email", + "put": { + "tags": [ + "User" + ], + "description": "/\nSend an email to the user with a link they can click to execute particular actions.\n\nAn email contains a link the user can click to perform a set of required actions.\nThe redirectUri and clientId parameters are optional. If no redirect is given, then there will\nbe no link back to click after actions have completed. Redirect uri must be a valid uri for the\nparticular clientId.\n\n", + "parameters": [ + { + "name": "OIDCLoginProtocol.REDIRECT_URI_PARAM", + "in": "query", + "description": "Redirect uri", + "schema": { + "type": "string" + } + }, + { + "name": "OIDCLoginProtocol.CLIENT_ID_PARAM", + "in": "query", + "description": "Client id", + "schema": { + "type": "string" + } + }, + { + "name": "lifespan", + "in": "query", + "description": "Number of seconds after which the generated token expires", + "schema": { + "type": "integer", + "format": "int32" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/federated-identity": { + "description": "/{realm}/users/{id}/federated-identity", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet social logins associated with the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FederatedIdentityRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/federated-identity/{provider}": { + "description": "/{realm}/users/{id}/federated-identity/{provider}", + "post": { + "tags": [ + "User" + ], + "description": "/\nAdd a social login provider to the user\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FederatedIdentityRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "User" + ], + "description": "/\nRemove a social login provider from user\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "provider", + "in": "path", + "description": "Social login provider id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/groups": { + "description": "/{realm}/users/{id}/groups", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet representation of the user\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + }, + { + "name": "first", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "max", + "in": "query", + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "briefRepresentation", + "in": "query", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/groups/{groupId}": { + "description": "/{realm}/users/{id}/groups/{groupId}", + "delete": { + "tags": [ + "User" + ], + "description": "/\nGet representation of the user\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "put": { + "tags": [ + "User" + ], + "description": "/\nGet representation of the user\n\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "groupId", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/groups/count": { + "description": "/{realm}/users/{id}/groups/count", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet representation of the user\n\n", + "parameters": [ + { + "name": "search", + "in": "query", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int64" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/impersonation": { + "description": "/{realm}/users/{id}/impersonation", + "post": { + "tags": [ + "User" + ], + "description": "/\nImpersonate the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/logout": { + "description": "/{realm}/users/{id}/logout", + "post": { + "tags": [ + "User" + ], + "description": "/\nRemove all user sessions associated with the user\n\nAlso send notification to all clients that have an admin URL to invalidate the sessions for the particular user.\n\n/\n", + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/offline-sessions/{clientUuid}": { + "description": "/{realm}/users/{id}/offline-sessions/{clientUuid}", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet offline sessions associated with the user and client\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserSessionRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "clientUuid", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/reset-password": { + "description": "/{realm}/users/{id}/reset-password", + "put": { + "tags": [ + "User" + ], + "description": "/\nSet up a new password for the user.\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CredentialRepresentation" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/reset-password-email": { + "description": "/{realm}/users/{id}/reset-password-email", + "put": { + "tags": [ + "User" + ], + "description": "/\nSend an email to the user with a link they can click to reset their password.\nThe redirectUri and clientId parameters are optional. The default for the\nredirect is the account client.\n\nThis endpoint has been deprecated. Please use the execute-actions-email passing a list with\nUPDATE_PASSWORD within it.\n\n", + "parameters": [ + { + "name": "OIDCLoginProtocol.REDIRECT_URI_PARAM", + "in": "query", + "description": "redirect uri", + "schema": { + "type": "string" + } + }, + { + "name": "OIDCLoginProtocol.CLIENT_ID_PARAM", + "in": "query", + "description": "client id", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings": { + "description": "/{realm}/users/{id}/role-mappings", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet role mappings\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MappingsRepresentation" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings/clients/{client}": { + "description": "/{realm}/users/{id}/role-mappings/clients/{client}", + "get": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nGet client-level role mappings for the user, and the app\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nAdd client-level roles to the user role mapping\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nDelete client-level roles from user role mapping\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings/clients/{client}/available": { + "description": "/{realm}/users/{id}/role-mappings/clients/{client}/available", + "get": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nGet available client-level roles that can be mapped to the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings/clients/{client}/composite": { + "description": "/{realm}/users/{id}/role-mappings/clients/{client}/composite", + "get": { + "tags": [ + "ClientRoleMappings" + ], + "description": "/\nGet effective client-level role mappings\n\nThis recurses any composite roles\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "client", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings/realm": { + "description": "/{realm}/users/{id}/role-mappings/realm", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet realm-level role mappings\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "post": { + "tags": [ + "RoleMapper" + ], + "description": "/\nAdd realm-level role mappings to the user\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "delete": { + "tags": [ + "RoleMapper" + ], + "description": "/\nDelete realm-level role mappings\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings/realm/available": { + "description": "/{realm}/users/{id}/role-mappings/realm/available", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet realm-level roles that can be mapped\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/role-mappings/realm/composite": { + "description": "/{realm}/users/{id}/role-mappings/realm/composite", + "get": { + "tags": [ + "RoleMapper" + ], + "description": "/\nGet effective realm-level role mappings\n\nThis will recurse all composite roles to get the result.\n\n", + "parameters": [ + { + "name": "briefRepresentation", + "in": "query", + "description": "if false, return roles with their attributes", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/send-verify-email": { + "description": "/{realm}/users/{id}/send-verify-email", + "put": { + "tags": [ + "User" + ], + "description": "/\nSend an email-verification email to the user\n\nAn email contains a link the user can click to verify their email address.\nThe redirectUri and clientId parameters are optional. The default for the\nredirect is the account client.\n\n", + "parameters": [ + { + "name": "OIDCLoginProtocol.REDIRECT_URI_PARAM", + "in": "query", + "description": "Redirect uri", + "schema": { + "type": "string" + } + }, + { + "name": "OIDCLoginProtocol.CLIENT_ID_PARAM", + "in": "query", + "description": "Client id", + "schema": { + "type": "string" + } + } + ], + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/{id}/sessions": { + "description": "/{realm}/users/{id}/sessions", + "get": { + "tags": [ + "User" + ], + "description": "/\nGet sessions associated with the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserSessionRepresentation" + } + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "id", + "in": "path", + "description": "User id", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/count": { + "description": "/{realm}/users/count", + "get": { + "tags": [ + "Users" + ], + "description": "/\nReturns the number of users that match the given criteria.\nIt can be called in three different ways.\n1. Don't specify any criteria and pass {", + "parameters": [ + { + "name": "search", + "in": "query", + "description": "arbitrary search string for all the fields below", + "schema": { + "type": "string" + } + }, + { + "name": "lastName", + "in": "query", + "description": "last name filter", + "schema": { + "type": "string" + } + }, + { + "name": "firstName", + "in": "query", + "description": "first name filter", + "schema": { + "type": "string" + } + }, + { + "name": "email", + "in": "query", + "description": "email filter", + "schema": { + "type": "string" + } + }, + { + "name": "emailVerified", + "in": "query", + "schema": { + "type": "boolean" + } + }, + { + "name": "username", + "in": "query", + "description": "username filter", + "schema": { + "type": "string" + } + }, + { + "name": "enabled", + "in": "query", + "description": "Boolean representing if user is enabled or not", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "integer", + "format": "int32" + } + } + } + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "/{realm}/users/profile": { + "description": "/{realm}/users/profile", + "get": { + "tags": [ + "UserProfile" + ], + "description": "/\nGet representation of the user\n\n", + "responses": { + "2XX": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "put": { + "tags": [ + "UserProfile" + ], + "description": "/\nGet representation of the user\n\n", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "string" + } + } + } + }, + "responses": { + "2XX": { + "description": "Success" + } + } + }, + "parameters": [ + { + "name": "realm", + "in": "path", + "description": "realm name (not id!)", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "components": { + "schemas": { + "AbstractAuthenticationExecutionRepresentation": { + "type": "object", + "properties": { + "authenticatorConfig": { + "type": "string" + }, + "authenticator": { + "type": "string" + }, + "requirement": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "autheticatorFlow": { + "type": "boolean" + }, + "authenticatorFlow": { + "type": "boolean" + } + } + }, + "AuthDetailsRepresentation": { + "type": "object", + "properties": { + "realmId": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "ipAddress": { + "type": "string" + } + } + }, + "AuthenticationExecutionExportRepresentation": { + "type": "object", + "properties": { + "userSetupAllowed": { + "type": "boolean" + }, + "flowAlias": { + "type": "string" + } + } + }, + "AuthenticationExecutionInfoRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "description": { + "type": "string" + }, + "requirement": { + "type": "string" + }, + "requirementChoices": { + "type": "array", + "items": { + "type": "string" + } + }, + "configurable": { + "type": "boolean" + }, + "providerId": { + "type": "string" + }, + "authenticationConfig": { + "type": "string" + }, + "authenticationFlow": { + "type": "boolean" + }, + "level": { + "type": "integer", + "format": "int32" + }, + "index": { + "type": "integer", + "format": "int32" + }, + "flowId": { + "type": "string" + } + } + }, + "AuthenticationExecutionRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "flowId": { + "type": "string" + }, + "parentFlow": { + "type": "string" + } + } + }, + "AuthenticationFlowRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "description": { + "type": "string" + }, + "providerId": { + "type": "string" + }, + "topLevel": { + "type": "boolean" + }, + "builtIn": { + "type": "boolean" + }, + "authenticationExecutions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationExecutionExportRepresentation" + } + } + } + }, + "AuthenticatorConfigRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "CertificateRepresentation": { + "type": "object", + "properties": { + "privateKey": { + "type": "string" + }, + "publicKey": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "kid": { + "type": "string" + } + } + }, + "ClaimRepresentation": { + "type": "object", + "properties": { + "name": { + "type": "boolean" + }, + "username": { + "type": "boolean" + }, + "profile": { + "type": "boolean" + }, + "picture": { + "type": "boolean" + }, + "website": { + "type": "boolean" + }, + "email": { + "type": "boolean" + }, + "gender": { + "type": "boolean" + }, + "locale": { + "type": "boolean" + }, + "address": { + "type": "boolean" + }, + "phone": { + "type": "boolean" + } + } + }, + "ClientInitialAccessCreatePresentation": { + "type": "object", + "properties": { + "expiration": { + "type": "integer", + "format": "int32" + }, + "count": { + "type": "integer", + "format": "int32" + } + } + }, + "ClientInitialAccessPresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "token": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int32" + }, + "expiration": { + "type": "integer", + "format": "int32" + }, + "count": { + "type": "integer", + "format": "int32" + }, + "remainingCount": { + "type": "integer", + "format": "int32" + } + } + }, + "ClientPoliciesRepresentation": { + "type": "object", + "properties": { + "policies": { + "type": "array", + "items": { + "type": "object", + "description": "ClientPolicyRepresentation" + } + } + } + }, + "ClientPolicyConditionConfigurationRepresentation": { + "type": "object", + "properties": { + "negativeLogic": { + "type": "boolean" + }, + "configAsMap": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ClientPolicyConditionRepresentation": { + "type": "object", + "properties": { + "conditionProviderId": { + "type": "string" + }, + "configuration": { + "type": "object" + } + } + }, + "ClientPolicyExecutorConfigurationRepresentation": { + "type": "object", + "properties": { + "configAsMap": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "ClientPolicyExecutorRepresentation": { + "type": "object", + "properties": { + "executorProviderId": { + "type": "string" + }, + "configuration": { + "type": "object" + } + } + }, + "ClientProfileRepresentation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "executors": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientPolicyExecutorRepresentation" + } + } + } + }, + "ClientProfilesRepresentation": { + "type": "object", + "properties": { + "profiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientProfileRepresentation" + } + }, + "globalProfiles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientProfileRepresentation" + } + } + } + }, + "ComponentExportRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "providerId": { + "type": "string" + }, + "subType": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "subComponents": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentExportRepresentation" + } + } + } + }, + "ComponentRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "providerId": { + "type": "string" + }, + "providerType": { + "type": "string" + }, + "parentId": { + "type": "string" + }, + "subType": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ConfigPropertyRepresentation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "type": { + "type": "string" + }, + "defaultValue": { + "type": "object" + }, + "helpText": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + }, + "secret": { + "type": "boolean" + }, + "readOnly": { + "type": "boolean" + } + } + }, + "CredentialRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + }, + "userLabel": { + "type": "string" + }, + "secretData": { + "type": "string" + }, + "credentialData": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "createdDate": { + "type": "integer", + "format": "int64" + }, + "value": { + "type": "string" + }, + "temporary": { + "type": "boolean" + }, + "device": { + "type": "string" + }, + "hashedSaltedValue": { + "type": "string" + }, + "salt": { + "type": "string" + }, + "hashIterations": { + "type": "integer", + "format": "int32" + }, + "counter": { + "type": "integer", + "format": "int32" + }, + "algorithm": { + "type": "string" + }, + "digits": { + "type": "integer", + "format": "int32" + }, + "period": { + "type": "integer", + "format": "int32" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "EventRepresentation": { + "type": "object", + "properties": { + "time": { + "type": "integer", + "format": "int64" + }, + "type": { + "type": "string" + }, + "realmId": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "sessionId": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "error": { + "type": "string" + }, + "details": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "FederatedIdentityRepresentation": { + "type": "object", + "properties": { + "identityProvider": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "userName": { + "type": "string" + } + } + }, + "GroupRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "realmRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientRoles": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "subGroups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + }, + "access": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "IdentityProviderMapperRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "identityProviderAlias": { + "type": "string" + }, + "identityProviderMapper": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "IdentityProviderMapperTypeRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "category": { + "type": "string" + }, + "helpText": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + } + } + }, + "IdentityProviderRepresentation": { + "type": "object", + "properties": { + "internalId": { + "type": "string" + }, + "alias": { + "type": "string" + }, + "providerId": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "enabled": { + "type": "boolean" + }, + "linkOnly": { + "type": "boolean" + }, + "updateProfileFirstLoginMode": { + "type": "string" + }, + "authenticateByDefault": { + "type": "boolean" + }, + "firstBrokerLoginFlowAlias": { + "type": "string" + }, + "postBrokerLoginFlowAlias": { + "type": "string" + }, + "storeToken": { + "type": "boolean" + }, + "addReadTokenRoleOnCreate": { + "type": "boolean" + }, + "trustEmail": { + "type": "boolean" + }, + "displayName": { + "type": "string" + } + } + }, + "KeyMetadataRepresentation": { + "type": "object", + "properties": { + "providerId": { + "type": "string" + }, + "providerPriority": { + "type": "integer", + "format": "int64" + }, + "kid": { + "type": "string" + }, + "status": { + "type": "string" + }, + "type": { + "type": "string" + }, + "algorithm": { + "type": "string" + }, + "publicKey": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "use": { + "type": "object", + "description": "KeyUse" + } + } + }, + "LDAPCapabilityRepresentation": { + "type": "object", + "properties": { + "oid": { + "type": "string" + }, + "type": { + "type": "object", + "description": "CapabilityType" + } + } + }, + "ManagementPermissionReference": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "resource": { + "type": "string" + }, + "scopePermissions": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ManagementPermissionRepresentation": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } + }, + "OAuth2ErrorRepresentation": { + "type": "object", + "properties": { + "error": { + "type": "string" + }, + "errorDescription": { + "type": "string" + } + } + }, + "OAuthClientRepresentation": { + "type": "object" + }, + "PasswordPolicyTypeRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "configType": { + "type": "string" + }, + "defaultValue": { + "type": "string" + }, + "multipleSupported": { + "type": "boolean" + } + } + }, + "ProtocolMapperRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "protocol": { + "type": "string" + }, + "protocolMapper": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "consentRequired": { + "type": "boolean" + }, + "consentText": { + "type": "string" + } + } + }, + "ProtocolMapperTypeRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "category": { + "type": "string" + }, + "helpText": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + } + } + }, + "PublishedRealmRepresentation": { + "type": "object", + "properties": { + "publicKeyPem": { + "type": "string" + }, + "tokenServiceUrl": { + "type": "string" + }, + "accountServiceUrl": { + "type": "string" + }, + "notBefore": { + "type": "integer", + "format": "int32" + } + } + }, + "RealmEventsConfigRepresentation": { + "type": "object", + "properties": { + "eventsEnabled": { + "type": "boolean" + }, + "eventsExpiration": { + "type": "integer", + "format": "int64" + }, + "eventsListeners": { + "type": "array", + "items": { + "type": "string" + } + }, + "enabledEventTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "adminEventsEnabled": { + "type": "boolean" + }, + "adminEventsDetailsEnabled": { + "type": "boolean" + } + } + }, + "RequiredActionProviderRepresentation": { + "type": "object", + "properties": { + "alias": { + "type": "string" + }, + "name": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "defaultAction": { + "type": "boolean" + }, + "providerId": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "RequiredActionProviderSimpleRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "providerId": { + "type": "string" + } + } + }, + "Composites": { + "type": "object", + "properties": { + "realm": { + "type": "array", + "items": { + "type": "string" + } + }, + "client": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "application": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "ScopeMappingRepresentation": { + "type": "object", + "properties": { + "self": { + "type": "string" + }, + "client": { + "type": "string" + }, + "clientTemplate": { + "type": "string" + }, + "clientScope": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "SocialLinkRepresentation": { + "type": "object", + "properties": { + "socialProvider": { + "type": "string" + }, + "socialUserId": { + "type": "string" + }, + "socialUsername": { + "type": "string" + } + } + }, + "SynchronizationResultRepresentation": { + "type": "object", + "properties": { + "ignored": { + "type": "boolean" + }, + "added": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "integer", + "format": "int32" + }, + "removed": { + "type": "integer", + "format": "int32" + }, + "failed": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + } + } + }, + "TestLdapConnectionRepresentation": { + "type": "object", + "properties": { + "action": { + "type": "string" + }, + "connectionUrl": { + "type": "string" + }, + "authType": { + "type": "string" + }, + "bindDn": { + "type": "string" + }, + "bindCredential": { + "type": "string" + }, + "useTruststoreSpi": { + "type": "string" + }, + "connectionTimeout": { + "type": "string" + }, + "componentId": { + "type": "string" + }, + "startTls": { + "type": "string" + } + } + }, + "UserConsentRepresentation": { + "type": "object", + "properties": { + "clientId": { + "type": "string" + }, + "grantedClientScopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdDate": { + "type": "integer", + "format": "int64" + }, + "lastUpdatedDate": { + "type": "integer", + "format": "int64" + }, + "grantedRealmRoles": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "UserFederationMapperRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "federationProviderDisplayName": { + "type": "string" + }, + "federationMapperType": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "UserFederationMapperSyncConfigRepresentation": { + "type": "object", + "properties": { + "fedToKeycloakSyncSupported": { + "type": "boolean" + }, + "fedToKeycloakSyncMessage": { + "type": "string" + }, + "keycloakToFedSyncSupported": { + "type": "boolean" + }, + "keycloakToFedSyncMessage": { + "type": "string" + } + } + }, + "UserFederationMapperTypeRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "category": { + "type": "string" + }, + "helpText": { + "type": "string" + }, + "syncConfig": { + "$ref": "#/components/schemas/UserFederationMapperSyncConfigRepresentation" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + }, + "defaultConfig": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "UserFederationProviderFactoryRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + }, + "helpText": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + } + } + }, + "UserFederationProviderRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "providerName": { + "type": "string" + }, + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "fullSyncPeriod": { + "type": "integer", + "format": "int32" + }, + "changedSyncPeriod": { + "type": "integer", + "format": "int32" + }, + "lastSync": { + "type": "integer", + "format": "int32" + } + } + }, + "UserRepresentation": { + "type": "object", + "properties": { + "self": { + "type": "string" + }, + "id": { + "type": "string" + }, + "createdTimestamp": { + "type": "integer", + "format": "int64" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "email": { + "type": "string" + }, + "username": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "totp": { + "type": "boolean" + }, + "emailVerified": { + "type": "boolean" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "credentials": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CredentialRepresentation" + } + }, + "requiredActions": { + "type": "array", + "items": { + "type": "string" + } + }, + "federatedIdentities": { + "type": "array", + "items": { + "$ref": "#/components/schemas/FederatedIdentityRepresentation" + } + }, + "socialLinks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SocialLinkRepresentation" + } + }, + "realmRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "clientRoles": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "clientConsents": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserConsentRepresentation" + } + }, + "notBefore": { + "type": "integer", + "format": "int32" + }, + "applicationRoles": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "federationLink": { + "type": "string" + }, + "serviceAccountClientId": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "type": "string" + } + }, + "origin": { + "type": "string" + }, + "disableableCredentialTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "access": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "UserSessionRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "username": { + "type": "string" + }, + "userId": { + "type": "string" + }, + "ipAddress": { + "type": "string" + }, + "start": { + "type": "integer", + "format": "int64" + }, + "lastAccess": { + "type": "integer", + "format": "int64" + }, + "rememberMe": { + "type": "boolean" + }, + "clients": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "Access": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "verifyCaller": { + "type": "boolean" + } + } + }, + "CertConf": { + "type": "object", + "properties": { + "certThumbprint": { + "type": "string" + } + } + }, + "AccessTokenResponse": { + "type": "object", + "properties": { + "scope": { + "type": "string" + }, + "token": { + "type": "string" + }, + "expiresIn": { + "type": "integer", + "format": "int64" + }, + "refreshExpiresIn": { + "type": "integer", + "format": "int64" + }, + "refreshToken": { + "type": "string" + }, + "tokenType": { + "type": "string" + }, + "idToken": { + "type": "string" + }, + "notBeforePolicy": { + "type": "integer", + "format": "int32" + }, + "sessionState": { + "type": "string" + }, + "otherClaims": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "error": { + "type": "string" + }, + "errorDescription": { + "type": "string" + }, + "errorUri": { + "type": "string" + } + } + }, + "AddressClaimSet": { + "type": "object", + "properties": { + "formattedAddress": { + "type": "string" + }, + "streetAddress": { + "type": "string" + }, + "locality": { + "type": "string" + }, + "region": { + "type": "string" + }, + "postalCode": { + "type": "string" + }, + "country": { + "type": "string" + } + } + }, + "AuthorizationDetailsJSONRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "locations": { + "type": "array", + "items": { + "type": "string" + } + }, + "actions": { + "type": "array", + "items": { + "type": "string" + } + }, + "datatypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "identifier": { + "type": "string" + }, + "privileges": { + "type": "array", + "items": { + "type": "string" + } + }, + "customData": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "scopeNameFromCustomData": { + "type": "string" + }, + "dynamicScopeParamFromCustomData": { + "type": "string" + } + } + }, + "AuthorizationResponseToken": { + "type": "object", + "properties": { + "category": { + "enum": [ + "INTERNAL", + "ACCESS", + "ID", + "ADMIN", + "USERINFO", + "LOGOUT", + "AUTHORIZATION_RESPONSE" + ], + "type": "string", + "description": "TokenCategory" + } + } + }, + "ClaimsRepresentation": { + "type": "object", + "properties": { + "idTokenClaims": { + "type": "object", + "additionalProperties": { + "type": "object", + "description": "ClaimValue" + } + }, + "userinfoClaims": { + "type": "object", + "additionalProperties": { + "type": "object", + "description": "ClaimValue" + } + }, + "present": { + "type": "boolean" + }, + "presentAsNullClaim": { + "type": "boolean" + }, + "claimValue": { + "type": "object", + "description": "ClaimValue" + } + } + }, + "IDToken": { + "type": "object", + "properties": { + "nonce": { + "type": "string" + }, + "auth_time": { + "type": "integer", + "format": "int64" + }, + "sessionId": { + "type": "string" + }, + "sessionState": { + "type": "string" + }, + "accessTokenHash": { + "type": "string" + }, + "codeHash": { + "type": "string" + }, + "name": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "middleName": { + "type": "string" + }, + "nickName": { + "type": "string" + }, + "preferredUsername": { + "type": "string" + }, + "profile": { + "type": "string" + }, + "picture": { + "type": "string" + }, + "website": { + "type": "string" + }, + "email": { + "type": "string" + }, + "emailVerified": { + "type": "boolean" + }, + "gender": { + "type": "string" + }, + "birthdate": { + "type": "string" + }, + "zoneinfo": { + "type": "string" + }, + "locale": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "phoneNumberVerified": { + "type": "boolean" + }, + "address": { + "$ref": "#/components/schemas/AddressClaimSet" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + }, + "claimsLocales": { + "type": "string" + }, + "acr": { + "type": "string" + }, + "stateHash": { + "type": "string" + }, + "category": { + "enum": [ + "INTERNAL", + "ACCESS", + "ID", + "ADMIN", + "USERINFO", + "LOGOUT", + "AUTHORIZATION_RESPONSE" + ], + "type": "string", + "description": "TokenCategory" + } + } + }, + "JsonWebToken": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "exp": { + "type": "integer", + "format": "int64" + }, + "nbf": { + "type": "integer", + "format": "int64" + }, + "iat": { + "type": "integer", + "format": "int64" + }, + "issuer": { + "type": "string" + }, + "suer": { + "$ref": "#/components/schemas/JsonWebToken" + }, + "subject": { + "type": "string" + }, + "type": { + "type": "string" + }, + "issuedFor": { + "type": "string" + }, + "suedFor": { + "$ref": "#/components/schemas/JsonWebToken" + }, + "otherClaims": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "category": { + "enum": [ + "INTERNAL", + "ACCESS", + "ID", + "ADMIN", + "USERINFO", + "LOGOUT", + "AUTHORIZATION_RESPONSE" + ], + "type": "string", + "description": "TokenCategory" + } + } + }, + "KeyStoreConfig": { + "type": "object", + "properties": { + "realmCertificate": { + "type": "boolean" + }, + "storePassword": { + "type": "string" + }, + "keyPassword": { + "type": "string" + }, + "keyAlias": { + "type": "string" + }, + "realmAlias": { + "type": "string" + }, + "format": { + "type": "string" + } + } + }, + "LogoutToken": { + "type": "object", + "properties": { + "events": { + "type": "object", + "additionalProperties": { + "type": "object" + } + }, + "sid": { + "type": "string" + }, + "category": { + "enum": [ + "INTERNAL", + "ACCESS", + "ID", + "ADMIN", + "USERINFO", + "LOGOUT", + "AUTHORIZATION_RESPONSE" + ], + "type": "string", + "description": "TokenCategory" + } + } + }, + "OAuth2DeviceAuthorizationResponse": { + "type": "object", + "properties": { + "deviceCode": { + "type": "string" + }, + "userCode": { + "type": "string" + }, + "verificationUri": { + "type": "string" + }, + "verificationUriComplete": { + "type": "string" + }, + "expiresIn": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "integer", + "format": "int64" + } + } + }, + "RefreshToken": { + "type": "object", + "properties": { + "category": { + "enum": [ + "INTERNAL", + "ACCESS", + "ID", + "ADMIN", + "USERINFO", + "LOGOUT", + "AUTHORIZATION_RESPONSE" + ], + "type": "string", + "description": "TokenCategory" + } + } + }, + "UserInfo": { + "type": "object", + "properties": { + "issuer": { + "type": "string" + }, + "subject": { + "type": "string" + }, + "name": { + "type": "string" + }, + "givenName": { + "type": "string" + }, + "familyName": { + "type": "string" + }, + "middleName": { + "type": "string" + }, + "nickName": { + "type": "string" + }, + "preferredUsername": { + "type": "string" + }, + "profile": { + "type": "string" + }, + "picture": { + "type": "string" + }, + "website": { + "type": "string" + }, + "email": { + "type": "string" + }, + "emailVerified": { + "type": "boolean" + }, + "gender": { + "type": "string" + }, + "birthdate": { + "type": "string" + }, + "zoneinfo": { + "type": "string" + }, + "locale": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "phoneNumberVerified": { + "type": "boolean" + }, + "address": { + "$ref": "#/components/schemas/AddressClaimSet" + }, + "updatedAt": { + "type": "integer", + "format": "int64" + }, + "sub": { + "type": "string" + }, + "claimsLocales": { + "type": "string" + }, + "otherClaims": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "VersionRepresentation": { + "type": "object", + "properties": { + "version": { + "type": "string" + }, + "buildTime": { + "type": "string" + } + } + }, + "SynchronizationResult": { + "type": "object", + "properties": { + "ignored": { + "type": "boolean" + }, + "added": { + "type": "integer", + "format": "int32" + }, + "updated": { + "type": "integer", + "format": "int32" + }, + "removed": { + "type": "integer", + "format": "int32" + }, + "failed": { + "type": "integer", + "format": "int32" + }, + "status": { + "type": "string" + } + } + }, + "ProtocolMapperEvaluationRepresentation": { + "type": "object", + "properties": { + "mapperId": { + "type": "string" + }, + "mapperName": { + "type": "string" + }, + "containerId": { + "type": "string" + }, + "containerName": { + "type": "string" + }, + "containerType": { + "type": "string" + }, + "protocolMapper": { + "type": "string" + } + } + }, + "Permission": { + "type": "object", + "properties": { + "resourceId": { + "type": "string" + }, + "resourceName": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "claims": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "AggregatePolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + } + } + }, + "ClientScopeDefinition": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "required": { + "type": "boolean" + } + } + }, + "GroupDefinition": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "path": { + "type": "string" + }, + "extendChildren": { + "type": "boolean" + } + } + }, + "JSPolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "code": { + "type": "string" + } + } + }, + "PermissionTicketRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "owner": { + "type": "string" + }, + "resource": { + "type": "string" + }, + "scope": { + "type": "string" + }, + "granted": { + "type": "boolean" + }, + "scopeName": { + "type": "string" + }, + "resourceName": { + "type": "string" + }, + "requesterName": { + "type": "string" + }, + "requester": { + "type": "string" + }, + "ownerName": { + "type": "string" + } + } + }, + "PolicyProviderRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "name": { + "type": "string" + }, + "group": { + "type": "string" + } + } + }, + "PolicyRepresentation": { + "type": "object", + "properties": { + "config": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "RegexPolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "targetClaim": { + "type": "string" + }, + "pattern": { + "type": "string" + } + } + }, + "ResourceOwnerRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + } + } + }, + "ResourcePermissionRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "resourceType": { + "type": "string" + } + } + }, + "RoleDefinition": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "required": { + "type": "boolean" + } + } + }, + "ScopePermissionRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "resourceType": { + "type": "string" + } + } + }, + "TimePolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "notBefore": { + "type": "string" + }, + "notOnOrAfter": { + "type": "string" + }, + "dayMonth": { + "type": "string" + }, + "dayMonthEnd": { + "type": "string" + }, + "month": { + "type": "string" + }, + "monthEnd": { + "type": "string" + }, + "year": { + "type": "string" + }, + "yearEnd": { + "type": "string" + }, + "hour": { + "type": "string" + }, + "hourEnd": { + "type": "string" + }, + "minute": { + "type": "string" + }, + "minuteEnd": { + "type": "string" + } + } + }, + "UmaPermissionRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "groups": { + "type": "array", + "items": { + "type": "string" + } + }, + "clients": { + "type": "array", + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + }, + "condition": { + "type": "string" + } + } + }, + "UserPolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "AdminEventRepresentation": { + "type": "object", + "properties": { + "time": { + "type": "integer", + "format": "int64" + }, + "realmId": { + "type": "string" + }, + "authDetails": { + "$ref": "#/components/schemas/AuthDetailsRepresentation" + }, + "operationType": { + "type": "string" + }, + "resourceType": { + "type": "string" + }, + "resourcePath": { + "type": "string" + }, + "representation": { + "type": "string" + }, + "error": { + "type": "string" + } + } + }, + "ApplicationRepresentation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "claims": { + "$ref": "#/components/schemas/ClaimRepresentation" + } + } + }, + "AuthenticatorConfigInfoRepresentation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "helpText": { + "type": "string" + }, + "providerId": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + } + } + }, + "ClientScopeRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "protocolMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + }, + "protocol": { + "type": "string" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ClientTemplateRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "protocolMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + }, + "protocol": { + "type": "string" + }, + "fullScopeAllowed": { + "type": "boolean" + }, + "bearerOnly": { + "type": "boolean" + }, + "consentRequired": { + "type": "boolean" + }, + "standardFlowEnabled": { + "type": "boolean" + }, + "implicitFlowEnabled": { + "type": "boolean" + }, + "directAccessGrantsEnabled": { + "type": "boolean" + }, + "serviceAccountsEnabled": { + "type": "boolean" + }, + "publicClient": { + "type": "boolean" + }, + "frontchannelLogout": { + "type": "boolean" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + } + }, + "ComponentTypeRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "helpText": { + "type": "string" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConfigPropertyRepresentation" + } + }, + "metadata": { + "type": "object", + "additionalProperties": { + "type": "object" + } + } + } + }, + "KeysMetadataRepresentation": { + "type": "object", + "properties": { + "active": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "keys": { + "type": "array", + "items": { + "$ref": "#/components/schemas/KeyMetadataRepresentation" + } + } + } + }, + "RoleRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "scopeParamRequired": { + "type": "boolean" + }, + "composites": { + "$ref": "#/components/schemas/Composites" + }, + "composite": { + "type": "boolean" + }, + "clientRole": { + "type": "boolean" + }, + "containerId": { + "type": "string" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "RolesRepresentation": { + "type": "object", + "properties": { + "realm": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + }, + "client": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + }, + "application": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + } + }, + "Authorization": { + "type": "object", + "properties": { + "permissions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Permission" + } + } + } + }, + "ClientScopePolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "clientScopes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeDefinition" + } + } + } + }, + "GroupPolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "groupsClaim": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupDefinition" + } + } + } + }, + "RolePolicyRepresentation": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleDefinition" + } + } + } + }, + "ClientMappingsRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "client": { + "type": "string" + }, + "mappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + } + } + }, + "MappingsRepresentation": { + "type": "object", + "properties": { + "realmMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RoleRepresentation" + } + }, + "clientMappings": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ClientMappingsRepresentation" + } + } + } + }, + "AccessToken": { + "type": "object", + "properties": { + "suedAt": { + "$ref": "#/components/schemas/AccessToken" + }, + "suer": { + "$ref": "#/components/schemas/AccessToken" + }, + "allowedOrigins": { + "type": "array", + "items": { + "type": "string" + } + }, + "realmAccess": { + "$ref": "#/components/schemas/Access" + }, + "trustedCertificates": { + "type": "array", + "items": { + "type": "string" + } + }, + "suedFor": { + "$ref": "#/components/schemas/AccessToken" + }, + "authorization": { + "$ref": "#/components/schemas/Authorization" + }, + "certConf": { + "$ref": "#/components/schemas/CertConf" + }, + "scope": { + "type": "string" + }, + "category": { + "enum": [ + "INTERNAL", + "ACCESS", + "ID", + "ADMIN", + "USERINFO", + "LOGOUT", + "AUTHORIZATION_RESPONSE" + ], + "type": "string", + "description": "TokenCategory" + } + } + }, + "ClientRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "enabled": { + "type": "boolean" + }, + "alwaysDisplayInConsole": { + "type": "boolean" + }, + "surrogateAuthRequired": { + "type": "boolean" + }, + "rootUrl": { + "type": "string" + }, + "adminUrl": { + "type": "string" + }, + "baseUrl": { + "type": "string" + }, + "clientAuthenticatorType": { + "type": "string" + }, + "secret": { + "type": "string" + }, + "registrationAccessToken": { + "type": "string" + }, + "redirectUris": { + "type": "array", + "items": { + "type": "string" + } + }, + "webOrigins": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "notBefore": { + "type": "integer", + "format": "int32" + }, + "bearerOnly": { + "type": "boolean" + }, + "consentRequired": { + "type": "boolean" + }, + "standardFlowEnabled": { + "type": "boolean" + }, + "implicitFlowEnabled": { + "type": "boolean" + }, + "directAccessGrantsEnabled": { + "type": "boolean" + }, + "serviceAccountsEnabled": { + "type": "boolean" + }, + "authorizationServicesEnabled": { + "type": "boolean" + }, + "directGrantsOnly": { + "type": "boolean" + }, + "publicClient": { + "type": "boolean" + }, + "fullScopeAllowed": { + "type": "boolean" + }, + "protocol": { + "type": "string" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "authenticationFlowBindingOverrides": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "nodeReRegistrationTimeout": { + "type": "integer", + "format": "int32" + }, + "registeredNodes": { + "type": "object", + "additionalProperties": { + "type": "integer", + "format": "int32" + } + }, + "frontchannelLogout": { + "type": "boolean" + }, + "protocolMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + }, + "clientTemplate": { + "type": "string" + }, + "useTemplateConfig": { + "type": "boolean" + }, + "useTemplateScope": { + "type": "boolean" + }, + "useTemplateMappers": { + "type": "boolean" + }, + "defaultClientScopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "optionalClientScopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "authorizationSettings": { + "$ref": "#/components/schemas/ResourceServerRepresentation" + }, + "access": { + "type": "object", + "additionalProperties": { + "type": "boolean" + } + }, + "origin": { + "type": "string" + } + } + }, + "PartialImportRepresentation": { + "type": "object", + "properties": { + "ifResourceExists": { + "type": "string" + }, + "policy": { + "type": "object", + "description": "Policy" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + }, + "clients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientRepresentation" + } + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + }, + "identityProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IdentityProviderRepresentation" + } + }, + "identityProviderMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IdentityProviderMapperRepresentation" + } + }, + "roles": { + "$ref": "#/components/schemas/RolesRepresentation" + } + } + }, + "RealmRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "realm": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "displayNameHtml": { + "type": "string" + }, + "users": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + }, + "applications": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApplicationRepresentation" + } + }, + "clients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientRepresentation" + } + }, + "enabled": { + "type": "boolean" + }, + "sslRequired": { + "type": "string" + }, + "defaultSignatureAlgorithm": { + "type": "string" + }, + "revokeRefreshToken": { + "type": "boolean" + }, + "refreshTokenMaxReuse": { + "type": "integer", + "format": "int32" + }, + "accessTokenLifespan": { + "type": "integer", + "format": "int32" + }, + "accessTokenLifespanForImplicitFlow": { + "type": "integer", + "format": "int32" + }, + "ssoSessionIdleTimeout": { + "type": "integer", + "format": "int32" + }, + "ssoSessionMaxLifespan": { + "type": "integer", + "format": "int32" + }, + "ssoSessionMaxLifespanRememberMe": { + "type": "integer", + "format": "int32" + }, + "ssoSessionIdleTimeoutRememberMe": { + "type": "integer", + "format": "int32" + }, + "offlineSessionIdleTimeout": { + "type": "integer", + "format": "int32" + }, + "offlineSessionMaxLifespanEnabled": { + "type": "boolean" + }, + "offlineSessionMaxLifespan": { + "type": "integer", + "format": "int32" + }, + "clientSessionIdleTimeout": { + "type": "integer", + "format": "int32" + }, + "clientSessionMaxLifespan": { + "type": "integer", + "format": "int32" + }, + "clientOfflineSessionIdleTimeout": { + "type": "integer", + "format": "int32" + }, + "clientOfflineSessionMaxLifespan": { + "type": "integer", + "format": "int32" + }, + "scopeMappings": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScopeMappingRepresentation" + } + }, + "requiredCredentials": { + "type": "array", + "items": { + "type": "string" + } + }, + "passwordPolicy": { + "type": "string" + }, + "accessCodeLifespan": { + "type": "integer", + "format": "int32" + }, + "accessCodeLifespanUserAction": { + "type": "integer", + "format": "int32" + }, + "accessCodeLifespanLogin": { + "type": "integer", + "format": "int32" + }, + "actionTokenGeneratedByAdminLifespan": { + "type": "integer", + "format": "int32" + }, + "oAuth2DeviceCodeLifespan": { + "type": "integer", + "format": "int32" + }, + "oAuth2DevicePollingInterval": { + "type": "integer", + "format": "int32" + }, + "actionTokenGeneratedByUserLifespan": { + "type": "integer", + "format": "int32" + }, + "defaultRoles": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultRole": { + "$ref": "#/components/schemas/RoleRepresentation" + }, + "defaultGroups": { + "type": "array", + "items": { + "type": "string" + } + }, + "privateKey": { + "type": "string" + }, + "publicKey": { + "type": "string" + }, + "certificate": { + "type": "string" + }, + "codeSecret": { + "type": "string" + }, + "passwordCredentialGrantAllowed": { + "type": "boolean" + }, + "registrationAllowed": { + "type": "boolean" + }, + "registrationEmailAsUsername": { + "type": "boolean" + }, + "rememberMe": { + "type": "boolean" + }, + "verifyEmail": { + "type": "boolean" + }, + "loginWithEmailAllowed": { + "type": "boolean" + }, + "duplicateEmailsAllowed": { + "type": "boolean" + }, + "resetPasswordAllowed": { + "type": "boolean" + }, + "editUsernameAllowed": { + "type": "boolean" + }, + "social": { + "type": "boolean" + }, + "updateProfileOnInitialSocialLogin": { + "type": "boolean" + }, + "browserSecurityHeaders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "socialProviders": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "smtpServer": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "oauthClients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OAuthClientRepresentation" + } + }, + "clientScopeMappings": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScopeMappingRepresentation" + } + } + }, + "applicationScopeMappings": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScopeMappingRepresentation" + } + } + }, + "roles": { + "$ref": "#/components/schemas/RolesRepresentation" + }, + "loginTheme": { + "type": "string" + }, + "accountTheme": { + "type": "string" + }, + "adminTheme": { + "type": "string" + }, + "emailTheme": { + "type": "string" + }, + "notBefore": { + "type": "integer", + "format": "int32" + }, + "bruteForceProtected": { + "type": "boolean" + }, + "permanentLockout": { + "type": "boolean" + }, + "maxFailureWaitSeconds": { + "type": "integer", + "format": "int32" + }, + "minimumQuickLoginWaitSeconds": { + "type": "integer", + "format": "int32" + }, + "waitIncrementSeconds": { + "type": "integer", + "format": "int32" + }, + "quickLoginCheckMilliSeconds": { + "type": "integer", + "format": "int64" + }, + "maxDeltaTimeSeconds": { + "type": "integer", + "format": "int32" + }, + "failureFactor": { + "type": "integer", + "format": "int32" + }, + "eventsEnabled": { + "type": "boolean" + }, + "eventsExpiration": { + "type": "integer", + "format": "int64" + }, + "eventsListeners": { + "type": "array", + "items": { + "type": "string" + } + }, + "enabledEventTypes": { + "type": "array", + "items": { + "type": "string" + } + }, + "adminEventsEnabled": { + "type": "boolean" + }, + "adminEventsDetailsEnabled": { + "type": "boolean" + }, + "userFederationProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserFederationProviderRepresentation" + } + }, + "userFederationMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserFederationMapperRepresentation" + } + }, + "identityProviders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IdentityProviderRepresentation" + } + }, + "protocolMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProtocolMapperRepresentation" + } + }, + "internationalizationEnabled": { + "type": "boolean" + }, + "supportedLocales": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultLocale": { + "type": "string" + }, + "identityProviderMappers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/IdentityProviderMapperRepresentation" + } + }, + "authenticationFlows": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticationFlowRepresentation" + } + }, + "authenticatorConfig": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuthenticatorConfigRepresentation" + } + }, + "requiredActions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RequiredActionProviderRepresentation" + } + }, + "otpPolicyType": { + "type": "string" + }, + "otpPolicyAlgorithm": { + "type": "string" + }, + "otpPolicyInitialCounter": { + "type": "integer", + "format": "int32" + }, + "otpPolicyDigits": { + "type": "integer", + "format": "int32" + }, + "otpPolicyLookAheadWindow": { + "type": "integer", + "format": "int32" + }, + "otpPolicyPeriod": { + "type": "integer", + "format": "int32" + }, + "otpSupportedApplications": { + "type": "array", + "items": { + "type": "string" + } + }, + "otpPolicyCodeReusable": { + "type": "boolean" + }, + "webAuthnPolicyRpEntityName": { + "type": "string" + }, + "webAuthnPolicySignatureAlgorithms": { + "type": "array", + "items": { + "type": "string" + } + }, + "webAuthnPolicyRpId": { + "type": "string" + }, + "webAuthnPolicyAttestationConveyancePreference": { + "type": "string" + }, + "webAuthnPolicyAuthenticatorAttachment": { + "type": "string" + }, + "webAuthnPolicyRequireResidentKey": { + "type": "string" + }, + "webAuthnPolicyUserVerificationRequirement": { + "type": "string" + }, + "webAuthnPolicyCreateTimeout": { + "type": "integer", + "format": "int32" + }, + "webAuthnPolicyAvoidSameAuthenticatorRegister": { + "type": "boolean" + }, + "webAuthnPolicyAcceptableAaguids": { + "type": "array", + "items": { + "type": "string" + } + }, + "webAuthnPolicyPasswordlessRpEntityName": { + "type": "string" + }, + "webAuthnPolicyPasswordlessSignatureAlgorithms": { + "type": "array", + "items": { + "type": "string" + } + }, + "webAuthnPolicyPasswordlessRpId": { + "type": "string" + }, + "webAuthnPolicyPasswordlessAttestationConveyancePreference": { + "type": "string" + }, + "webAuthnPolicyPasswordlessAuthenticatorAttachment": { + "type": "string" + }, + "webAuthnPolicyPasswordlessRequireResidentKey": { + "type": "string" + }, + "webAuthnPolicyPasswordlessUserVerificationRequirement": { + "type": "string" + }, + "webAuthnPolicyPasswordlessCreateTimeout": { + "type": "integer", + "format": "int32" + }, + "webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister": { + "type": "boolean" + }, + "webAuthnPolicyPasswordlessAcceptableAaguids": { + "type": "array", + "items": { + "type": "string" + } + }, + "browserFlow": { + "type": "string" + }, + "registrationFlow": { + "type": "string" + }, + "directGrantFlow": { + "type": "string" + }, + "resetCredentialsFlow": { + "type": "string" + }, + "clientAuthenticationFlow": { + "type": "string" + }, + "dockerAuthenticationFlow": { + "type": "string" + }, + "keycloakVersion": { + "type": "string" + }, + "groups": { + "type": "array", + "items": { + "$ref": "#/components/schemas/GroupRepresentation" + } + }, + "clientTemplates": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientTemplateRepresentation" + } + }, + "clientScopes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ClientScopeRepresentation" + } + }, + "defaultDefaultClientScopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "defaultOptionalClientScopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "components": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/ComponentExportRepresentation" + } + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "federatedUsers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/UserRepresentation" + } + }, + "userManagedAccessAllowed": { + "type": "boolean" + } + } + }, + "AbstractPolicyRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "type": "string" + }, + "decisionStrategy": { + "enum": [ + "AFFIRMATIVE(0)", + "UNANIMOUS(1)", + "CONSENSUS(2)" + ], + "type": "string", + "description": "DecisionStrategy" + }, + "logic": { + "enum": [ + "POSITIVE(0)", + "NEGATIVE(1)" + ], + "type": "string", + "description": "Logic" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "policies": { + "type": "array", + "items": { + "type": "string" + } + }, + "resources": { + "type": "array", + "items": { + "type": "string" + } + }, + "scopes": { + "type": "array", + "items": { + "type": "string" + } + }, + "owner": { + "type": "string" + }, + "resourcesData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResourceRepresentation" + } + }, + "scopesData": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScopeRepresentation" + } + } + } + }, + "ResourceRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "uris": { + "type": "array", + "items": { + "type": "string" + } + }, + "type": { + "type": "string" + }, + "scopes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScopeRepresentation" + } + }, + "iconUri": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/ResourceOwnerRepresentation" + }, + "ownerManagedAccess": { + "type": "boolean" + }, + "attributes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + }, + "ResourceServerRepresentation": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "clientId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "allowRemoteResourceManagement": { + "type": "boolean" + }, + "policyEnforcementMode": { + "enum": [ + "ENFORCING(0)", + "PERMISSIVE(1)", + "DISABLED(2)" + ], + "type": "string", + "description": "PolicyEnforcementMode" + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResourceRepresentation" + } + }, + "policies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyRepresentation" + } + }, + "scopes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScopeRepresentation" + } + }, + "decisionStrategy": { + "enum": [ + "AFFIRMATIVE(0)", + "UNANIMOUS(1)", + "CONSENSUS(2)" + ], + "type": "string", + "description": "DecisionStrategy" + } + } + }, + "ScopeRepresentation": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "iconUri": { + "type": "string" + }, + "id": { + "type": "string" + }, + "policies": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PolicyRepresentation" + } + }, + "resources": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ResourceRepresentation" + } + } + } + } + }, + "securitySchemes": { + "access_token": { + "type": "http", + "scheme": "bearer", + "bearerFormat": "JWT" + } + } + }, + "security": [ + { + "access_token": [ ] + } + ] +} \ No newline at end of file diff --git a/OpenApiDefinitions/keycloak-21.0.0.yml b/OpenApiDefinitions/keycloak-21.0.0.yml new file mode 100644 index 0000000..b5c3b9a --- /dev/null +++ b/OpenApiDefinitions/keycloak-21.0.0.yml @@ -0,0 +1,9892 @@ +openapi: 3.0.1 +info: + title: Keycloak REST Api + description: This is a REST API reference for the Keycloak Admin + version: '1' +paths: + /: + get: + tags: + - RealmsAdmin + description: "/\nGet accessible realms\n\nReturns a list of accessible realms. The list is filtered based on what realms the caller is allowed to view.\n\n" + parameters: + - name: briefRepresentation + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RealmRepresentation' + post: + tags: + - RealmsAdmin + description: "/\nImport a realm.\n

\nImports a realm from a full representation of that realm. Realm name must be unique.\n\n/\n" + requestBody: + content: + application/json: + schema: + type: object + responses: + 2XX: + description: Success + '/{realm}': + description: '/{realm}' + get: + tags: + - RealmAdmin + description: "/\nGet the top-level representation of the realm\n\nIt will not include nested information like User and Client representations.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RealmRepresentation' + put: + tags: + - RealmAdmin + description: "/\nUpdate the top-level information of the realm\n\nAny user, roles or client information in the representation\nwill be ignored. This will only update top-level attributes of the realm.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RealmRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - RealmAdmin + description: "/\nDelete the realm\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/admin-events': + description: '/{realm}/admin-events' + get: + tags: + - RealmAdmin + description: "/\nGet admin events\n\nReturns all admin events, or filters events based on URL query parameters listed here\n\n" + parameters: + - name: operationTypes + in: query + description: '' + schema: + type: array + items: + type: string + - name: authRealm + in: query + description: '' + schema: + type: string + - name: authClient + in: query + description: '' + schema: + type: string + - name: authUser + in: query + description: user id + schema: + type: string + - name: authIpAddress + in: query + description: '' + schema: + type: string + - name: resourcePath + in: query + description: '' + schema: + type: string + - name: dateFrom + in: query + description: '' + schema: + type: string + - name: dateTo + in: query + description: '' + schema: + type: string + - name: first + in: query + description: '' + schema: + type: integer + format: int32 + - name: max + in: query + description: Maximum results size (defaults to 100) + schema: + type: integer + format: int32 + - name: resourceTypes + in: query + schema: + type: array + items: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminEventRepresentation' + delete: + tags: + - RealmAdmin + description: "/\nDelete all admin events\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/attack-detection/brute-force/users': + description: '/{realm}/attack-detection/brute-force/users' + delete: + tags: + - AttackDetection + description: "/\nClear any user login failures for all users\n\nThis can release temporary disabled users\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/attack-detection/brute-force/users/{userId}': + description: '/{realm}/attack-detection/brute-force/users/{userId}' + get: + tags: + - AttackDetection + description: "/\nGet status of a username in brute force detection\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: object + delete: + tags: + - AttackDetection + description: "/\nClear any user login failures for the user\n\nThis can release temporary disabled user\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: userId + in: path + description: '' + required: true + schema: + type: string + '/{realm}/authentication/authenticator-providers': + description: '/{realm}/authentication/authenticator-providers' + get: + tags: + - AuthenticationManagement + description: "/\nGet authenticator providers\n\nReturns a stream of authenticator providers.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/client-authenticator-providers': + description: '/{realm}/authentication/client-authenticator-providers' + get: + tags: + - AuthenticationManagement + description: "/\nGet client authenticator providers\n\nReturns a stream of client authenticator providers.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/config': + description: '/{realm}/authentication/config' + post: + tags: + - AuthenticationManagement + description: "/\nCreate new authenticator configuration\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatorConfigRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/config-description/{providerId}': + description: '/{realm}/authentication/config-description/{providerId}' + get: + tags: + - AuthenticationManagement + description: "/\nGet authenticator provider's configuration description\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatorConfigInfoRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: providerId + in: path + required: true + schema: + type: string + '/{realm}/authentication/config/{id}': + description: '/{realm}/authentication/config/{id}' + get: + tags: + - AuthenticationManagement + description: "/\nGet authenticator configuration\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatorConfigRepresentation' + delete: + tags: + - AuthenticationManagement + description: "/\nDelete authenticator configuration\n" + responses: + 2XX: + description: Success + put: + tags: + - AuthenticationManagement + description: "/\nUpdate authenticator configuration\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatorConfigRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: Configuration id + required: true + schema: + type: string + '/{realm}/authentication/executions': + description: '/{realm}/authentication/executions' + post: + tags: + - AuthenticationManagement + description: "/\nAdd new authentication execution\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationExecutionRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/executions/{executionId}': + description: '/{realm}/authentication/executions/{executionId}' + get: + tags: + - AuthenticationManagement + description: "/\nGet Single Execution\n/\n" + responses: + 2XX: + description: Success + delete: + tags: + - AuthenticationManagement + description: "/\nDelete execution\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: executionId + in: path + required: true + schema: + type: string + '/{realm}/authentication/executions/{executionId}/config': + description: '/{realm}/authentication/executions/{executionId}/config' + post: + tags: + - AuthenticationManagement + description: "/\nUpdate execution with new configuration\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatorConfigRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: executionId + in: path + description: Execution id + required: true + schema: + type: string + '/{realm}/authentication/executions/{executionId}/config/{id}': + description: '/{realm}/authentication/executions/{executionId}/config/{id}' + get: + tags: + - AuthenticationManagement + description: "/\nGet execution's configuration\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticatorConfigRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: executionId + in: path + description: Execution id + required: true + schema: + type: string + - name: id + in: path + description: Configuration id + required: true + schema: + type: string + '/{realm}/authentication/executions/{executionId}/lower-priority': + description: '/{realm}/authentication/executions/{executionId}/lower-priority' + post: + tags: + - AuthenticationManagement + description: "/\nLower execution's priority\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: executionId + in: path + description: Execution id + required: true + schema: + type: string + '/{realm}/authentication/executions/{executionId}/raise-priority': + description: '/{realm}/authentication/executions/{executionId}/raise-priority' + post: + tags: + - AuthenticationManagement + description: "/\nRaise execution's priority\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: executionId + in: path + description: Execution id + required: true + schema: + type: string + '/{realm}/authentication/flows': + description: '/{realm}/authentication/flows' + get: + tags: + - AuthenticationManagement + description: "/\nGet authentication flows\n\nReturns a stream of authentication flows.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AuthenticationFlowRepresentation' + post: + tags: + - AuthenticationManagement + description: "/\nCreate a new authentication flow\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationFlowRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/flows/{flowAlias}/copy': + description: '/{realm}/authentication/flows/{flowAlias}/copy' + post: + tags: + - AuthenticationManagement + description: "/\nCopy existing authentication flow under a new name\n\nThe new name is given as 'newName' attribute of the passed JSON object\n\n" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: flowAlias + in: path + description: Name of the existing authentication flow + required: true + schema: + type: string + '/{realm}/authentication/flows/{flowAlias}/executions': + description: '/{realm}/authentication/flows/{flowAlias}/executions' + get: + tags: + - AuthenticationManagement + description: "/\nGet authentication executions for a flow\n\n" + responses: + 2XX: + description: Success + put: + tags: + - AuthenticationManagement + description: "/\nUpdate authentication executions of a Flow\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationExecutionInfoRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: flowAlias + in: path + description: Flow alias + required: true + schema: + type: string + '/{realm}/authentication/flows/{flowAlias}/executions/execution': + description: '/{realm}/authentication/flows/{flowAlias}/executions/execution' + post: + tags: + - AuthenticationManagement + description: "/\nAdd new authentication execution to a flow\n\n" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: flowAlias + in: path + description: Alias of parent flow + required: true + schema: + type: string + '/{realm}/authentication/flows/{flowAlias}/executions/flow': + description: '/{realm}/authentication/flows/{flowAlias}/executions/flow' + post: + tags: + - AuthenticationManagement + description: "/\nAdd new flow with new execution to existing flow\n\n" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: flowAlias + in: path + description: Alias of parent authentication flow + required: true + schema: + type: string + '/{realm}/authentication/flows/{id}': + description: '/{realm}/authentication/flows/{id}' + get: + tags: + - AuthenticationManagement + description: "/\nGet authentication flow for id\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationFlowRepresentation' + put: + tags: + - AuthenticationManagement + description: "/\nUpdate an authentication flow\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/AuthenticationFlowRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - AuthenticationManagement + description: "/\nDelete an authentication flow\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: Flow id + required: true + schema: + type: string + '/{realm}/authentication/form-action-providers': + description: '/{realm}/authentication/form-action-providers' + get: + tags: + - AuthenticationManagement + description: "/\nGet form action providers\n\nReturns a stream of form action providers.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/form-providers': + description: '/{realm}/authentication/form-providers' + get: + tags: + - AuthenticationManagement + description: "/\nGet form providers\n\nReturns a stream of form providers.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/per-client-config-description': + description: '/{realm}/authentication/per-client-config-description' + get: + tags: + - AuthenticationManagement + description: "/\nGet configuration descriptions for all clients\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/register-required-action': + description: '/{realm}/authentication/register-required-action' + post: + tags: + - AuthenticationManagement + description: "/\nRegister a new required actions\n\n" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/required-actions': + description: '/{realm}/authentication/required-actions' + get: + tags: + - AuthenticationManagement + description: "/\nGet required actions\n\nReturns a stream of required actions.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RequiredActionProviderRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/authentication/required-actions/{alias}': + description: '/{realm}/authentication/required-actions/{alias}' + get: + tags: + - AuthenticationManagement + description: "/\nGet required action for alias\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RequiredActionProviderRepresentation' + put: + tags: + - AuthenticationManagement + description: "/\nUpdate required action\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RequiredActionProviderRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - AuthenticationManagement + description: "/\nDelete required action\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + description: Alias of required action + required: true + schema: + type: string + '/{realm}/authentication/required-actions/{alias}/lower-priority': + description: '/{realm}/authentication/required-actions/{alias}/lower-priority' + post: + tags: + - AuthenticationManagement + description: "/\nLower required action's priority\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + description: Alias of required action + required: true + schema: + type: string + '/{realm}/authentication/required-actions/{alias}/raise-priority': + description: '/{realm}/authentication/required-actions/{alias}/raise-priority' + post: + tags: + - AuthenticationManagement + description: "/\nRaise required action's priority\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + description: Alias of required action + required: true + schema: + type: string + '/{realm}/authentication/unregistered-required-actions': + description: '/{realm}/authentication/unregistered-required-actions' + get: + tags: + - AuthenticationManagement + description: "/\nGet unregistered required actions\n\nReturns a stream of unregistered required actions.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-description-converter': + description: '/{realm}/client-description-converter' + post: + tags: + - RealmAdmin + description: "/\nBase path for importing clients under this realm.\n\n" + requestBody: + content: + application/json: + schema: + type: string + application/xml: + schema: + type: string + text/plain: + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-policies/policies': + description: '/{realm}/client-policies/policies' + get: + tags: + - ClientPolicies + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientPoliciesRepresentation' + put: + tags: + - ClientPolicies + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientPoliciesRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-policies/profiles': + description: '/{realm}/client-policies/profiles' + get: + tags: + - ClientProfiles + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + parameters: + - name: include-global-profiles + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientProfilesRepresentation' + put: + tags: + - ClientProfiles + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientProfilesRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-registration-policy/providers': + description: '/{realm}/client-registration-policy/providers' + get: + tags: + - ClientRegistrationPolicy + description: "/\nBase path for retrieve providers with the configProperties properly filled\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ComponentTypeRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-scopes': + description: '/{realm}/client-scopes' + get: + tags: + - ClientScopes + description: "/\nGet client scopes belonging to the realm\n\nReturns a list of client scopes belonging to the realm\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + post: + tags: + - ClientScopes + description: "/\nCreate a new client scope\n\nClient Scope's name must be unique!\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientScopeRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}': + description: '/{realm}/client-scopes/{id}' + put: + tags: + - ClientScope + description: "/\nUpdate the client scope\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientScopeRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - ClientScope + description: "/\nGet representation of the client scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientScopeRepresentation' + delete: + tags: + - ClientScope + description: "/\nDelete the client scope\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/protocol-mappers/add-models': + description: '/{realm}/client-scopes/{id}/protocol-mappers/add-models' + post: + tags: + - ProtocolMappers + description: "/\nCreate multiple mappers\n\n/\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/protocol-mappers/models': + description: '/{realm}/client-scopes/{id}/protocol-mappers/models' + post: + tags: + - ProtocolMappers + description: "/\nCreate a mapper\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - ProtocolMappers + description: "/\nGet mappers\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/protocol-mappers/protocol/{protocol}': + description: '/{realm}/client-scopes/{id}/protocol-mappers/protocol/{protocol}' + get: + tags: + - ProtocolMappers + description: "/\nGet mappers by name for a specific protocol\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: protocol + in: path + description: '' + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings': + description: '/{realm}/client-scopes/{id}/scope-mappings' + get: + tags: + - ScopeMapped + description: "/\nGet all scope mappings for the client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MappingsRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings/clients/{client}': + description: '/{realm}/client-scopes/{id}/scope-mappings/clients/{client}' + get: + tags: + - ScopeMappedClient + description: "/\nGet the roles associated with a client's scope\n\nReturns roles for the client.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ScopeMappedClient + description: "/\nAdd client-level roles to the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ScopeMappedClient + description: "/\nRemove client-level roles from the client's scope.\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/available': + description: '/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/available' + get: + tags: + - ScopeMappedClient + description: "/\nThe available client-level roles\n\nReturns the roles for the client that can be associated with the client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/composite': + description: '/{realm}/client-scopes/{id}/scope-mappings/clients/{client}/composite' + get: + tags: + - ScopeMappedClient + description: "/\nGet effective client roles\n\nReturns the roles for the client that are associated with the client's scope.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings/realm': + description: '/{realm}/client-scopes/{id}/scope-mappings/realm' + get: + tags: + - ScopeMapped + description: "/\nGet realm-level roles associated with the client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ScopeMapped + description: "/\nAdd a set of realm-level roles to the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ScopeMapped + description: "/\nRemove a set of realm-level roles from the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings/realm/available': + description: '/{realm}/client-scopes/{id}/scope-mappings/realm/available' + get: + tags: + - ScopeMapped + description: "/\nGet realm-level roles that are available to attach to this client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id}/scope-mappings/realm/composite': + description: '/{realm}/client-scopes/{id}/scope-mappings/realm/composite' + get: + tags: + - ScopeMapped + description: "/\nGet effective realm-level roles associated with the client's scope\n\nWhat this does is recurse\nany composite roles associated with the client's scope and adds the roles to this lists. The method is really\nto show a comprehensive total view of realm-level roles associated with the client.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-scopes/{id1}/protocol-mappers/models/{id2}': + description: '/{realm}/client-scopes/{id1}/protocol-mappers/models/{id2}' + get: + tags: + - ProtocolMappers + description: "/\nGet mapper by id\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + put: + tags: + - ProtocolMappers + description: "/\nUpdate the mapper\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ProtocolMappers + description: "/\nDelete the mapper\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id1 + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: id2 + in: path + description: Mapper id + required: true + schema: + type: string + '/{realm}/client-session-stats': + description: '/{realm}/client-session-stats' + get: + tags: + - RealmAdmin + description: "/\nGet client session stats\n\nReturns a JSON map. The key is the client id, the value is the number of sessions that currently are active\nwith that client. Only clients that actually have a session associated with them will be in this map.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-templates': + description: '/{realm}/client-templates' + get: + tags: + - ClientScopes + description: "/\nGet client scopes belonging to the realm\n\nReturns a list of client scopes belonging to the realm\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + post: + tags: + - ClientScopes + description: "/\nCreate a new client scope\n\nClient Scope's name must be unique!\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientScopeRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/client-templates/{id}': + description: '/{realm}/client-templates/{id}' + put: + tags: + - ClientScope + description: "/\nUpdate the client scope\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientScopeRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - ClientScope + description: "/\nGet representation of the client scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientScopeRepresentation' + delete: + tags: + - ClientScope + description: "/\nDelete the client scope\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id}/protocol-mappers/add-models': + description: '/{realm}/client-templates/{id}/protocol-mappers/add-models' + post: + tags: + - ProtocolMappers + description: "/\nCreate multiple mappers\n\n/\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id}/protocol-mappers/models': + description: '/{realm}/client-templates/{id}/protocol-mappers/models' + post: + tags: + - ProtocolMappers + description: "/\nCreate a mapper\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - ProtocolMappers + description: "/\nGet mappers\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id}/protocol-mappers/protocol/{protocol}': + description: '/{realm}/client-templates/{id}/protocol-mappers/protocol/{protocol}' + get: + tags: + - ProtocolMappers + description: "/\nGet mappers by name for a specific protocol\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: protocol + in: path + description: '' + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings': + description: '/{realm}/client-templates/{id}/scope-mappings' + get: + tags: + - ScopeMapped + description: "/\nGet all scope mappings for the client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MappingsRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings/clients/{client}': + description: '/{realm}/client-templates/{id}/scope-mappings/clients/{client}' + get: + tags: + - ScopeMappedClient + description: "/\nGet the roles associated with a client's scope\n\nReturns roles for the client.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ScopeMappedClient + description: "/\nAdd client-level roles to the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ScopeMappedClient + description: "/\nRemove client-level roles from the client's scope.\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings/clients/{client}/available': + description: '/{realm}/client-templates/{id}/scope-mappings/clients/{client}/available' + get: + tags: + - ScopeMappedClient + description: "/\nThe available client-level roles\n\nReturns the roles for the client that can be associated with the client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings/clients/{client}/composite': + description: '/{realm}/client-templates/{id}/scope-mappings/clients/{client}/composite' + get: + tags: + - ScopeMappedClient + description: "/\nGet effective client roles\n\nReturns the roles for the client that are associated with the client's scope.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings/realm': + description: '/{realm}/client-templates/{id}/scope-mappings/realm' + get: + tags: + - ScopeMapped + description: "/\nGet realm-level roles associated with the client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ScopeMapped + description: "/\nAdd a set of realm-level roles to the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ScopeMapped + description: "/\nRemove a set of realm-level roles from the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings/realm/available': + description: '/{realm}/client-templates/{id}/scope-mappings/realm/available' + get: + tags: + - ScopeMapped + description: "/\nGet realm-level roles that are available to attach to this client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id}/scope-mappings/realm/composite': + description: '/{realm}/client-templates/{id}/scope-mappings/realm/composite' + get: + tags: + - ScopeMapped + description: "/\nGet effective realm-level roles associated with the client's scope\n\nWhat this does is recurse\nany composite roles associated with the client's scope and adds the roles to this lists. The method is really\nto show a comprehensive total view of realm-level roles associated with the client.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client scope (not name) + required: true + schema: + type: string + '/{realm}/client-templates/{id1}/protocol-mappers/models/{id2}': + description: '/{realm}/client-templates/{id1}/protocol-mappers/models/{id2}' + get: + tags: + - ProtocolMappers + description: "/\nGet mapper by id\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + put: + tags: + - ProtocolMappers + description: "/\nUpdate the mapper\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ProtocolMappers + description: "/\nDelete the mapper\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id1 + in: path + description: id of client scope (not name) + required: true + schema: + type: string + - name: id2 + in: path + description: Mapper id + required: true + schema: + type: string + '/{realm}/clients': + description: '/{realm}/clients' + get: + tags: + - Clients + description: "/\nGet clients belonging to the realm.\n\nIf a client can't be retrieved from the storage due to a problem with the underlying storage,\nit is silently removed from the returned list.\nThis ensures that concurrent modifications to the list don't prevent callers from retrieving this list.\n\n" + parameters: + - name: clientId + in: query + description: filter by clientId + schema: + type: string + - name: viewableOnly + in: query + description: filter clients that cannot be viewed in full by admin + schema: + type: boolean + - name: search + in: query + description: whether this is a search query or a getClientById query + schema: + type: boolean + - name: q + in: query + schema: + type: string + - name: first + in: query + description: the first result + schema: + type: integer + format: int32 + - name: max + in: query + description: the max results to return + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientRepresentation' + post: + tags: + - Clients + description: "/\nCreate a new client\n\nClient's client_id must be unique!\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/clients-initial-access': + description: '/{realm}/clients-initial-access' + post: + tags: + - ClientInitialAccess + description: "/\nCreate a new initial access token.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientInitialAccessCreatePresentation' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientInitialAccessPresentation' + get: + tags: + - ClientInitialAccess + description: "/\nBase path for managing client initial access tokens\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientInitialAccessPresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/clients-initial-access/{id}': + description: '/{realm}/clients-initial-access/{id}' + delete: + tags: + - ClientInitialAccess + description: "/\nBase path for managing client initial access tokens\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}': + description: '/{realm}/clients/{id}' + put: + tags: + - Client + description: "/\nUpdate the client\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - Client + description: "/\nGet representation of the client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRepresentation' + delete: + tags: + - Client + description: "/\nDelete the client\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/certificates/{attr}': + description: '/{realm}/clients/{id}/certificates/{attr}' + get: + tags: + - ClientAttributeCertificate + description: "/\nGet key info\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: attr + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/certificates/{attr}/download': + description: '/{realm}/clients/{id}/certificates/{attr}/download' + post: + tags: + - ClientAttributeCertificate + description: "/\nGet a keystore file for the client, containing private key and public certificate\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/KeyStoreConfig' + responses: + 2XX: + description: Success + content: + application/octet-stream: + schema: + type: string + format: binary + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: attr + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/certificates/{attr}/generate': + description: '/{realm}/clients/{id}/certificates/{attr}/generate' + post: + tags: + - ClientAttributeCertificate + description: "/\nGenerate a new certificate with new key pair\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: attr + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/certificates/{attr}/generate-and-download': + description: '/{realm}/clients/{id}/certificates/{attr}/generate-and-download' + post: + tags: + - ClientAttributeCertificate + description: "/\nGenerate a new keypair and certificate, and get the private key file\n\nGenerates a keypair and certificate and serves the private key in a specified keystore format.\nOnly generated public certificate is saved in Keycloak DB - the private key is not.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/KeyStoreConfig' + responses: + 2XX: + description: Success + content: + application/octet-stream: + schema: + type: string + format: binary + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: attr + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/certificates/{attr}/upload': + description: '/{realm}/clients/{id}/certificates/{attr}/upload' + post: + tags: + - ClientAttributeCertificate + description: "/\nUpload certificate and eventually private key\n\n" + requestBody: + content: + multipart/form-data: + schema: + type: object + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: attr + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/certificates/{attr}/upload-certificate': + description: '/{realm}/clients/{id}/certificates/{attr}/upload-certificate' + post: + tags: + - ClientAttributeCertificate + description: "/\nUpload only certificate, not private key\n\n" + requestBody: + content: + multipart/form-data: + schema: + type: object + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CertificateRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: attr + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/client-secret': + description: '/{realm}/clients/{id}/client-secret' + post: + tags: + - Client + description: "/\nGenerate a new secret for the client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CredentialRepresentation' + get: + tags: + - Client + description: "/\nGet the client secret\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CredentialRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/client-secret/rotated': + description: '/{realm}/clients/{id}/client-secret/rotated' + delete: + tags: + - Client + description: "/\nInvalidate the rotated secret for the client\n\n" + responses: + 2XX: + description: Success + get: + tags: + - Client + description: "/\nGet the rotated client secret\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/CredentialRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/default-client-scopes': + description: '/{realm}/clients/{id}/default-client-scopes' + get: + tags: + - Client + description: "/\nGet default client scopes. Only name and ids are returned.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/default-client-scopes/{clientScopeId}': + description: '/{realm}/clients/{id}/default-client-scopes/{clientScopeId}' + put: + tags: + - Client + description: "/\nBase path for managing a specific client.\n\n" + responses: + 2XX: + description: Success + delete: + tags: + - Client + description: "/\nBase path for managing a specific client.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: clientScopeId + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}/evaluate-scopes/generate-example-access-token': + description: '/{realm}/clients/{id}/evaluate-scopes/generate-example-access-token' + get: + tags: + - ClientScopeEvaluate + description: "/\nCreate JSON with payload of example access token\n\n" + parameters: + - name: scope + in: query + schema: + type: string + - name: userId + in: query + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/AccessToken' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/evaluate-scopes/generate-example-id-token': + description: '/{realm}/clients/{id}/evaluate-scopes/generate-example-id-token' + get: + tags: + - ClientScopeEvaluate + description: "/\nCreate JSON with payload of example id token\n\n" + parameters: + - name: scope + in: query + schema: + type: string + - name: userId + in: query + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/IDToken' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/evaluate-scopes/generate-example-userinfo': + description: '/{realm}/clients/{id}/evaluate-scopes/generate-example-userinfo' + get: + tags: + - ClientScopeEvaluate + description: "/\nCreate JSON with payload of example user info\n\n" + parameters: + - name: scope + in: query + schema: + type: string + - name: userId + in: query + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/evaluate-scopes/protocol-mappers': + description: '/{realm}/clients/{id}/evaluate-scopes/protocol-mappers' + get: + tags: + - ClientScopeEvaluate + description: "/\nReturn list of all protocol mappers, which will be used when generating tokens issued for particular client. This means\nprotocol mappers assigned to this client directly and protocol mappers assigned to all client scopes of this client.\n\n" + parameters: + - name: scope + in: query + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperEvaluationRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/granted': + description: '/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/granted' + get: + tags: + - ClientScopeEvaluateScopeMappings + description: "/\nGet effective scope mapping of all roles of particular role container, which this client is defacto allowed to have in the accessToken issued for him.\n\nThis contains scope mappings, which this client has directly, as well as scope mappings, which are granted to all client scopes,\nwhich are linked with this client.\n\n" + parameters: + - name: scope + in: query + description: '' + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: roleContainerId + in: path + description: either realm name OR client UUID + required: true + schema: + type: string + '/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/not-granted': + description: '/{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/not-granted' + get: + tags: + - ClientScopeEvaluateScopeMappings + description: "/\nGet roles, which this client doesn't have scope for and can't have them in the accessToken issued for him. Defacto all the\nother roles of particular role container, which are not in {" + parameters: + - name: scope + in: query + description: '' + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: roleContainerId + in: path + description: either realm name OR client UUID + required: true + schema: + type: string + '/{realm}/clients/{id}/installation/providers/{providerId}': + description: '/{realm}/clients/{id}/installation/providers/{providerId}' + get: + tags: + - Client + description: "/\nBase path for managing a specific client.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: providerId + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}/management/permissions': + description: '/{realm}/clients/{id}/management/permissions' + get: + tags: + - Client + description: "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - Client + description: "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/nodes': + description: '/{realm}/clients/{id}/nodes' + post: + tags: + - Client + description: "/\nRegister a cluster node with the client\n\nManually register cluster node to this client - usually it's not needed to call this directly as adapter should handle\nby sending registration request to Keycloak\n\n" + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/nodes/{node}': + description: '/{realm}/clients/{id}/nodes/{node}' + delete: + tags: + - Client + description: "/\nUnregister a cluster node from the client\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: node + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/offline-session-count': + description: '/{realm}/clients/{id}/offline-session-count' + get: + tags: + - Client + description: "/\nGet application offline session count\n\nReturns a number of offline user sessions associated with this client\n\n{\n\"count\": number\n}\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int64 + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/offline-sessions': + description: '/{realm}/clients/{id}/offline-sessions' + get: + tags: + - Client + description: "/\nGet offline sessions for client\n\nReturns a list of offline user sessions associated with this client\n\n" + parameters: + - name: first + in: query + description: Paging offset + schema: + type: integer + format: int32 + - name: max + in: query + description: Maximum results size (defaults to 100) + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserSessionRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/optional-client-scopes': + description: '/{realm}/clients/{id}/optional-client-scopes' + get: + tags: + - Client + description: "/\nGet optional client scopes. Only name and ids are returned.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/optional-client-scopes/{clientScopeId}': + description: '/{realm}/clients/{id}/optional-client-scopes/{clientScopeId}' + put: + tags: + - Client + description: "/\nBase path for managing a specific client.\n\n" + responses: + 2XX: + description: Success + delete: + tags: + - Client + description: "/\nBase path for managing a specific client.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: clientScopeId + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}/protocol-mappers/add-models': + description: '/{realm}/clients/{id}/protocol-mappers/add-models' + post: + tags: + - ProtocolMappers + description: "/\nCreate multiple mappers\n\n/\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/protocol-mappers/models': + description: '/{realm}/clients/{id}/protocol-mappers/models' + post: + tags: + - ProtocolMappers + description: "/\nCreate a mapper\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - ProtocolMappers + description: "/\nGet mappers\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/protocol-mappers/protocol/{protocol}': + description: '/{realm}/clients/{id}/protocol-mappers/protocol/{protocol}' + get: + tags: + - ProtocolMappers + description: "/\nGet mappers by name for a specific protocol\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: protocol + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/push-revocation': + description: '/{realm}/clients/{id}/push-revocation' + post: + tags: + - Client + description: "/\nPush the client's revocation policy to its admin URL\n\nIf the client has an admin URL, push revocation policy to it.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + description: GlobalRequestResult + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/registration-access-token': + description: '/{realm}/clients/{id}/registration-access-token' + post: + tags: + - Client + description: "/\nGenerate a new registration access token for the client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ClientRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/roles': + description: '/{realm}/clients/{id}/roles' + get: + tags: + - RoleContainer + description: "/\nGet all roles for the realm or client\n\n" + parameters: + - name: search + in: query + schema: + type: string + - name: first + in: query + schema: + type: integer + format: int32 + - name: max + in: query + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - RoleContainer + description: "/\nCreate a new role for the realm or client\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}': + description: '/{realm}/clients/{id}/roles/{role-name}' + get: + tags: + - RoleContainer + description: "/\nGet a role by name\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + delete: + tags: + - RoleContainer + description: "/\nDelete a role by name\n\n" + responses: + 2XX: + description: Success + put: + tags: + - RoleContainer + description: "/\nUpdate a role by name\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}/composites': + description: '/{realm}/clients/{id}/roles/{role-name}/composites' + post: + tags: + - RoleContainer + description: "/\nAdd a composite to the role\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - RoleContainer + description: "/\nGet composites of the role\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + delete: + tags: + - RoleContainer + description: "/\nRemove roles from the role's composite\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}/composites/clients/{clientUuid}': + description: '/{realm}/clients/{id}/roles/{role-name}/composites/clients/{clientUuid}' + get: + tags: + - RoleContainer + description: "/\nGet client-level roles for the client that are in the role's composite\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + - name: clientUuid + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}/composites/realm': + description: '/{realm}/clients/{id}/roles/{role-name}/composites/realm' + get: + tags: + - RoleContainer + description: "/\nGet realm-level roles of the role's composite\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}/groups': + description: '/{realm}/clients/{id}/roles/{role-name}/groups' + get: + tags: + - RoleContainer + description: "/\nReturns a stream of groups that have the specified role name\n\n\n" + parameters: + - name: first + in: query + description: 'first result to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + - name: max + in: query + description: 'maximum number of results to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + description: 'if false, return a full representation of the {@code GroupRepresentation} objects.' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: the role name. + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}/management/permissions': + description: '/{realm}/clients/{id}/roles/{role-name}/management/permissions' + get: + tags: + - RoleContainer + description: "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - RoleContainer + description: "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: '' + required: true + schema: + type: string + '/{realm}/clients/{id}/roles/{role-name}/users': + description: '/{realm}/clients/{id}/roles/{role-name}/users' + get: + tags: + - RoleContainer + description: "/\nReturns a stream of users that have the specified role name.\n\n\n" + parameters: + - name: first + in: query + description: 'first result to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + - name: max + in: query + description: 'maximum number of results to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: role-name + in: path + description: the role name. + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings': + description: '/{realm}/clients/{id}/scope-mappings' + get: + tags: + - ScopeMapped + description: "/\nGet all scope mappings for the client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MappingsRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings/clients/{client}': + description: '/{realm}/clients/{id}/scope-mappings/clients/{client}' + get: + tags: + - ScopeMappedClient + description: "/\nGet the roles associated with a client's scope\n\nReturns roles for the client.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ScopeMappedClient + description: "/\nAdd client-level roles to the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ScopeMappedClient + description: "/\nRemove client-level roles from the client's scope.\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings/clients/{client}/available': + description: '/{realm}/clients/{id}/scope-mappings/clients/{client}/available' + get: + tags: + - ScopeMappedClient + description: "/\nThe available client-level roles\n\nReturns the roles for the client that can be associated with the client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings/clients/{client}/composite': + description: '/{realm}/clients/{id}/scope-mappings/clients/{client}/composite' + get: + tags: + - ScopeMappedClient + description: "/\nGet effective client roles\n\nReturns the roles for the client that are associated with the client's scope.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings/realm': + description: '/{realm}/clients/{id}/scope-mappings/realm' + get: + tags: + - ScopeMapped + description: "/\nGet realm-level roles associated with the client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ScopeMapped + description: "/\nAdd a set of realm-level roles to the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ScopeMapped + description: "/\nRemove a set of realm-level roles from the client's scope\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings/realm/available': + description: '/{realm}/clients/{id}/scope-mappings/realm/available' + get: + tags: + - ScopeMapped + description: "/\nGet realm-level roles that are available to attach to this client's scope\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/scope-mappings/realm/composite': + description: '/{realm}/clients/{id}/scope-mappings/realm/composite' + get: + tags: + - ScopeMapped + description: "/\nGet effective realm-level roles associated with the client's scope\n\nWhat this does is recurse\nany composite roles associated with the client's scope and adds the roles to this lists. The method is really\nto show a comprehensive total view of realm-level roles associated with the client.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/service-account-user': + description: '/{realm}/clients/{id}/service-account-user' + get: + tags: + - Client + description: "/\nGet a user dedicated to the service account\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UserRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/session-count': + description: '/{realm}/clients/{id}/session-count' + get: + tags: + - Client + description: "/\nGet application session count\n\nReturns a number of user sessions associated with this client\n\n{\n\"count\": number\n}\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int64 + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/test-nodes-available': + description: '/{realm}/clients/{id}/test-nodes-available' + get: + tags: + - Client + description: "/\nTest if registered cluster nodes are available\n\nTests availability by sending 'ping' request to all cluster nodes.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + description: GlobalRequestResult + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id}/user-sessions': + description: '/{realm}/clients/{id}/user-sessions' + get: + tags: + - Client + description: "/\nGet user sessions for client\n\nReturns a list of user sessions associated with this client\n\n" + parameters: + - name: first + in: query + description: Paging offset + schema: + type: integer + format: int32 + - name: max + in: query + description: Maximum results size (defaults to 100) + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserSessionRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: id of client (not client-id) + required: true + schema: + type: string + '/{realm}/clients/{id1}/protocol-mappers/models/{id2}': + description: '/{realm}/clients/{id1}/protocol-mappers/models/{id2}' + get: + tags: + - ProtocolMappers + description: "/\nGet mapper by id\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + put: + tags: + - ProtocolMappers + description: "/\nUpdate the mapper\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ProtocolMappers + description: "/\nDelete the mapper\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id1 + in: path + description: id of client (not client-id) + required: true + schema: + type: string + - name: id2 + in: path + description: Mapper id + required: true + schema: + type: string + '/{realm}/components': + description: '/{realm}/components' + get: + tags: + - Component + description: "/\nBase path for managing components under this realm.\n\n" + parameters: + - name: parent + in: query + schema: + type: string + - name: type + in: query + schema: + type: string + - name: name + in: query + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ComponentRepresentation' + post: + tags: + - Component + description: "/\nBase path for managing components under this realm.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ComponentRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/components/{id}': + description: '/{realm}/components/{id}' + get: + tags: + - Component + description: "/\nBase path for managing components under this realm.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ComponentRepresentation' + put: + tags: + - Component + description: "/\nBase path for managing components under this realm.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ComponentRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - Component + description: "/\nBase path for managing components under this realm.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + required: true + schema: + type: string + '/{realm}/components/{id}/sub-component-types': + description: '/{realm}/components/{id}/sub-component-types' + get: + tags: + - Component + description: "/\nList of subcomponent types that are available to configure for a particular parent component.\n\n" + parameters: + - name: type + in: query + description: '' + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ComponentTypeRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/credential-registrators': + description: '/{realm}/credential-registrators' + get: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/default-default-client-scopes': + description: '/{realm}/default-default-client-scopes' + get: + tags: + - RealmAdmin + description: "/\nGet realm default client scopes. Only name and ids are returned.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/default-default-client-scopes/{clientScopeId}': + description: '/{realm}/default-default-client-scopes/{clientScopeId}' + put: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + delete: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: clientScopeId + in: path + required: true + schema: + type: string + '/{realm}/default-groups': + description: '/{realm}/default-groups' + get: + tags: + - RealmAdmin + description: "/\nGet group hierarchy. Only name and ids are returned.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/default-groups/{groupId}': + description: '/{realm}/default-groups/{groupId}' + put: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + delete: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: groupId + in: path + required: true + schema: + type: string + '/{realm}/default-optional-client-scopes': + description: '/{realm}/default-optional-client-scopes' + get: + tags: + - RealmAdmin + description: "/\nGet realm optional client scopes. Only name and ids are returned.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/default-optional-client-scopes/{clientScopeId}': + description: '/{realm}/default-optional-client-scopes/{clientScopeId}' + put: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + delete: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: clientScopeId + in: path + required: true + schema: + type: string + '/{realm}/events': + description: '/{realm}/events' + get: + tags: + - RealmAdmin + description: "/\nGet events\n\nReturns all events, or filters them based on URL query parameters listed here\n\n" + parameters: + - name: type + in: query + description: The types of events to return + schema: + type: array + items: + type: string + - name: client + in: query + description: App or oauth client name + schema: + type: string + - name: user + in: query + description: User id + schema: + type: string + - name: dateFrom + in: query + description: From date + schema: + type: string + - name: dateTo + in: query + description: To date + schema: + type: string + - name: ipAddress + in: query + description: IP address + schema: + type: string + - name: first + in: query + description: Paging offset + schema: + type: integer + format: int32 + - name: max + in: query + description: Maximum results size (defaults to 100) + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EventRepresentation' + delete: + tags: + - RealmAdmin + description: "/\nDelete all events\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/events/config': + description: '/{realm}/events/config' + get: + tags: + - RealmAdmin + description: "/\nGet the events provider configuration\n\nReturns JSON object with events provider configuration\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RealmEventsConfigRepresentation' + put: + tags: + - RealmAdmin + description: "/\nUpdate the events provider\n\nChange the events provider and/or its configuration\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RealmEventsConfigRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/group-by-path/{path}': + description: '/{realm}/group-by-path/{path}' + get: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GroupRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: path + in: path + required: true + schema: + type: string + '/{realm}/groups': + description: '/{realm}/groups' + get: + tags: + - Groups + description: "/\nGet group hierarchy. Only name and ids are returned.\n\n" + parameters: + - name: search + in: query + schema: + type: string + - name: q + in: query + schema: + type: string + - name: exact + in: query + schema: + type: boolean + - name: first + in: query + schema: + type: integer + format: int32 + - name: max + in: query + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + post: + tags: + - Groups + description: "/\ncreate or add a top level realm groupSet or create child. This will update the group and set the parent if it exists. Create it and set the parent\nif the group doesn't exist.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GroupRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/groups/{id}': + description: '/{realm}/groups/{id}' + get: + tags: + - Group + description: "/\n\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/GroupRepresentation' + put: + tags: + - Group + description: "/\nUpdate group, ignores subgroups.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GroupRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - Group + description: "/\nDoes not expand hierarchy. Subgroups will not be set.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/children': + description: '/{realm}/groups/{id}/children' + post: + tags: + - Group + description: "/\nSet or create child. This will just set the parent if it exists. Create it and set the parent\nif the group doesn't exist.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GroupRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/management/permissions': + description: '/{realm}/groups/{id}/management/permissions' + get: + tags: + - Group + description: "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - Group + description: "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/members': + description: '/{realm}/groups/{id}/members' + get: + tags: + - Group + description: "/\nGet users\n\nReturns a stream of users, filtered according to query parameters\n\n" + parameters: + - name: first + in: query + description: Pagination offset + schema: + type: integer + format: int32 + - name: max + in: query + description: Maximum results size (defaults to 100) + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + description: 'Only return basic information (only guaranteed to return id, username, created, first and last name,' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings': + description: '/{realm}/groups/{id}/role-mappings' + get: + tags: + - RoleMapper + description: "/\nGet role mappings\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MappingsRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings/clients/{client}': + description: '/{realm}/groups/{id}/role-mappings/clients/{client}' + get: + tags: + - ClientRoleMappings + description: "/\nGet client-level role mappings for the user, and the app\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ClientRoleMappings + description: "/\nAdd client-level roles to the user role mapping\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ClientRoleMappings + description: "/\nDelete client-level roles from user role mapping\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings/clients/{client}/available': + description: '/{realm}/groups/{id}/role-mappings/clients/{client}/available' + get: + tags: + - ClientRoleMappings + description: "/\nGet available client-level roles that can be mapped to the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings/clients/{client}/composite': + description: '/{realm}/groups/{id}/role-mappings/clients/{client}/composite' + get: + tags: + - ClientRoleMappings + description: "/\nGet effective client-level role mappings\n\nThis recurses any composite roles\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings/realm': + description: '/{realm}/groups/{id}/role-mappings/realm' + get: + tags: + - RoleMapper + description: "/\nGet realm-level role mappings\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - RoleMapper + description: "/\nAdd realm-level role mappings to the user\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - RoleMapper + description: "/\nDelete realm-level role mappings\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings/realm/available': + description: '/{realm}/groups/{id}/role-mappings/realm/available' + get: + tags: + - RoleMapper + description: "/\nGet realm-level roles that can be mapped\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/{id}/role-mappings/realm/composite': + description: '/{realm}/groups/{id}/role-mappings/realm/composite' + get: + tags: + - RoleMapper + description: "/\nGet effective realm-level role mappings\n\nThis will recurse all composite roles to get the result.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/groups/count': + description: '/{realm}/groups/count' + get: + tags: + - Groups + description: "/\nReturns the groups counts.\n\n" + parameters: + - name: search + in: query + schema: + type: string + - name: top + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int64 + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/identity-provider/import-config': + description: '/{realm}/identity-provider/import-config' + post: + tags: + - IdentityProviders + description: "/\nImport identity provider from uploaded JSON file\n\n" + requestBody: + content: + multipart/form-data: + schema: + type: object + application/json: + schema: + type: object + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/identity-provider/instances': + description: '/{realm}/identity-provider/instances' + get: + tags: + - IdentityProviders + description: "/\nGet identity providers\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IdentityProviderRepresentation' + post: + tags: + - IdentityProviders + description: "/\nCreate a new identity provider\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityProviderRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/identity-provider/instances/{alias}': + description: '/{realm}/identity-provider/instances/{alias}' + get: + tags: + - IdentityProvider + description: "/\nGet the identity provider\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityProviderRepresentation' + delete: + tags: + - IdentityProvider + description: "/\nDelete the identity provider\n\n" + responses: + 2XX: + description: Success + put: + tags: + - IdentityProvider + description: "/\nUpdate the identity provider\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityProviderRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + required: true + schema: + type: string + '/{realm}/identity-provider/instances/{alias}/export': + description: '/{realm}/identity-provider/instances/{alias}/export' + get: + tags: + - IdentityProvider + description: "/\nExport public broker configuration for identity provider\n\n" + parameters: + - name: format + in: query + description: Format to use + schema: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + required: true + schema: + type: string + '/{realm}/identity-provider/instances/{alias}/management/permissions': + description: '/{realm}/identity-provider/instances/{alias}/management/permissions' + get: + tags: + - IdentityProvider + description: "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - IdentityProvider + description: "/\nReturn object stating whether client Authorization permissions have been initialized or not and a reference\n\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + required: true + schema: + type: string + '/{realm}/identity-provider/instances/{alias}/mapper-types': + description: '/{realm}/identity-provider/instances/{alias}/mapper-types' + get: + tags: + - IdentityProvider + description: "/\nGet mapper types for identity provider\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + required: true + schema: + type: string + '/{realm}/identity-provider/instances/{alias}/mappers': + description: '/{realm}/identity-provider/instances/{alias}/mappers' + get: + tags: + - IdentityProvider + description: "/\nGet mappers for identity provider\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/IdentityProviderMapperRepresentation' + post: + tags: + - IdentityProvider + description: "/\nAdd a mapper to identity provider\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityProviderMapperRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + required: true + schema: + type: string + '/{realm}/identity-provider/instances/{alias}/mappers/{id}': + description: '/{realm}/identity-provider/instances/{alias}/mappers/{id}' + get: + tags: + - IdentityProvider + description: "/\nGet mapper by id for the identity provider\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityProviderMapperRepresentation' + put: + tags: + - IdentityProvider + description: "/\nUpdate a mapper for the identity provider\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/IdentityProviderMapperRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - IdentityProvider + description: "/\nDelete a mapper for the identity provider\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: alias + in: path + required: true + schema: + type: string + - name: id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/identity-provider/providers/{provider_id}': + description: '/{realm}/identity-provider/providers/{provider_id}' + get: + tags: + - IdentityProviders + description: "/\nGet identity providers\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: provider_id + in: path + description: Provider id + required: true + schema: + type: string + '/{realm}/keys': + description: '/{realm}/keys' + get: + tags: + - Key + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/KeysMetadataRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/localization': + description: '/{realm}/localization' + get: + tags: + - RealmLocalization + description: "/\nBase path for managing localization under this realm.\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/localization/{locale}': + description: '/{realm}/localization/{locale}' + post: + tags: + - RealmLocalization + description: "/\nImport localization from uploaded JSON file\n/\n" + requestBody: + content: + multipart/form-data: + schema: + type: object + application/json: + schema: + type: object + responses: + 2XX: + description: Success + delete: + tags: + - RealmLocalization + description: "/\nBase path for managing localization under this realm.\n/\n" + responses: + 2XX: + description: Success + get: + tags: + - RealmLocalization + description: "/\nBase path for managing localization under this realm.\n/\n" + parameters: + - name: useRealmDefaultLocaleFallback + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: locale + in: path + required: true + schema: + type: string + '/{realm}/localization/{locale}/{key}': + description: '/{realm}/localization/{locale}/{key}' + put: + tags: + - RealmLocalization + description: "/\nBase path for managing localization under this realm.\n/\n" + requestBody: + content: + text/plain: + schema: + type: string + responses: + 2XX: + description: Success + delete: + tags: + - RealmLocalization + description: "/\nBase path for managing localization under this realm.\n/\n" + responses: + 2XX: + description: Success + get: + tags: + - RealmLocalization + description: "/\nBase path for managing localization under this realm.\n/\n" + responses: + 2XX: + description: Success + content: + text/plain: + schema: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: locale + in: path + required: true + schema: + type: string + - name: key + in: path + required: true + schema: + type: string + '/{realm}/logout-all': + description: '/{realm}/logout-all' + post: + tags: + - RealmAdmin + description: "/\nRemoves all user sessions. Any client that has an admin url will also be told to invalidate any sessions\nthey have.\n\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + description: GlobalRequestResult + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/partial-export': + description: '/{realm}/partial-export' + post: + tags: + - RealmAdmin + description: "/\nPartial export of existing realm into a JSON file.\n\n" + parameters: + - name: exportGroupsAndRoles + in: query + description: '' + schema: + type: boolean + - name: exportClients + in: query + description: '' + schema: + type: boolean + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/partialImport': + description: '/{realm}/partialImport' + post: + tags: + - RealmAdmin + description: "/\nPartial import from a JSON file to an existing realm.\n\n/\n" + requestBody: + content: + application/json: + schema: + type: object + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/push-revocation': + description: '/{realm}/push-revocation' + post: + tags: + - RealmAdmin + description: "/\nPush the realm's revocation policy to any client that has an admin url associated with it.\n\n/\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + description: GlobalRequestResult + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/roles': + description: '/{realm}/roles' + get: + tags: + - RoleContainer + description: "/\nGet all roles for the realm or client\n\n" + parameters: + - name: search + in: query + schema: + type: string + - name: first + in: query + schema: + type: integer + format: int32 + - name: max + in: query + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - RoleContainer + description: "/\nCreate a new role for the realm or client\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/roles-by-id/{role-id}': + description: '/{realm}/roles-by-id/{role-id}' + get: + tags: + - RoleById + description: "/\nGet a specific role's representation\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + delete: + tags: + - RoleById + description: "/\nDelete the role\n\n" + responses: + 2XX: + description: Success + put: + tags: + - RoleById + description: "/\nUpdate the role\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-id + in: path + description: id of role + required: true + schema: + type: string + '/{realm}/roles-by-id/{role-id}/composites': + description: '/{realm}/roles-by-id/{role-id}/composites' + post: + tags: + - RoleById + description: "/\nMake the role a composite role by associating some child roles\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - RoleById + description: "/\nGet role's children\n\nReturns a set of role's children provided the role is a composite.\n\n" + parameters: + - name: search + in: query + schema: + type: string + - name: first + in: query + schema: + type: integer + format: int32 + - name: max + in: query + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + delete: + tags: + - RoleById + description: "/\nRemove a set of roles from the role's composite\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/roles-by-id/{role-id}/composites/clients/{clientUuid}': + description: '/{realm}/roles-by-id/{role-id}/composites/clients/{clientUuid}' + get: + tags: + - RoleById + description: "/\nGet client-level roles for the client that are in the role's composite\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-id + in: path + description: '' + required: true + schema: + type: string + - name: clientUuid + in: path + description: '' + required: true + schema: + type: string + '/{realm}/roles-by-id/{role-id}/composites/realm': + description: '/{realm}/roles-by-id/{role-id}/composites/realm' + get: + tags: + - RoleById + description: "/\nGet realm-level roles that are in the role's composite\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/roles-by-id/{role-id}/management/permissions': + description: '/{realm}/roles-by-id/{role-id}/management/permissions' + get: + tags: + - RoleById + description: "/\nReturn object stating whether role Authoirzation permissions have been initialized or not and a reference\n\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - RoleById + description: "/\nReturn object stating whether role Authoirzation permissions have been initialized or not and a reference\n\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-id + in: path + description: '' + required: true + schema: + type: string + '/{realm}/roles/{role-name}': + description: '/{realm}/roles/{role-name}' + get: + tags: + - RoleContainer + description: "/\nGet a role by name\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + delete: + tags: + - RoleContainer + description: "/\nDelete a role by name\n\n" + responses: + 2XX: + description: Success + put: + tags: + - RoleContainer + description: "/\nUpdate a role by name\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + '/{realm}/roles/{role-name}/composites': + description: '/{realm}/roles/{role-name}/composites' + post: + tags: + - RoleContainer + description: "/\nAdd a composite to the role\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - RoleContainer + description: "/\nGet composites of the role\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + delete: + tags: + - RoleContainer + description: "/\nRemove roles from the role's composite\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + '/{realm}/roles/{role-name}/composites/clients/{clientUuid}': + description: '/{realm}/roles/{role-name}/composites/clients/{clientUuid}' + get: + tags: + - RoleContainer + description: "/\nGet client-level roles for the client that are in the role's composite\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + - name: clientUuid + in: path + description: '' + required: true + schema: + type: string + '/{realm}/roles/{role-name}/composites/realm': + description: '/{realm}/roles/{role-name}/composites/realm' + get: + tags: + - RoleContainer + description: "/\nGet realm-level roles of the role's composite\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: role's name (not id!) + required: true + schema: + type: string + '/{realm}/roles/{role-name}/groups': + description: '/{realm}/roles/{role-name}/groups' + get: + tags: + - RoleContainer + description: "/\nReturns a stream of groups that have the specified role name\n\n\n" + parameters: + - name: first + in: query + description: 'first result to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + - name: max + in: query + description: 'maximum number of results to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + description: 'if false, return a full representation of the {@code GroupRepresentation} objects.' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: the role name. + required: true + schema: + type: string + '/{realm}/roles/{role-name}/management/permissions': + description: '/{realm}/roles/{role-name}/management/permissions' + get: + tags: + - RoleContainer + description: "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - RoleContainer + description: "/\nReturn object stating whether role Authorization permissions have been initialized or not and a reference\n\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: '' + required: true + schema: + type: string + '/{realm}/roles/{role-name}/users': + description: '/{realm}/roles/{role-name}/users' + get: + tags: + - RoleContainer + description: "/\nReturns a stream of users that have the specified role name.\n\n\n" + parameters: + - name: first + in: query + description: 'first result to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + - name: max + in: query + description: 'maximum number of results to return. Ignored if negative or {@code null}.' + schema: + type: integer + format: int32 + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: role-name + in: path + description: the role name. + required: true + schema: + type: string + '/{realm}/sessions/{session}': + description: '/{realm}/sessions/{session}' + delete: + tags: + - RealmAdmin + description: "/\nRemove a specific user session. Any client that has an admin url will also be told to invalidate this\nparticular session.\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: session + in: path + description: '' + required: true + schema: + type: string + '/{realm}/testSMTPConnection': + description: '/{realm}/testSMTPConnection' + post: + tags: + - RealmAdmin + description: "/\nTest SMTP connection with current logged in user\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/users': + description: '/{realm}/users' + post: + tags: + - Users + description: "/\nCreate a new user\n\nUsername must be unique.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - Users + description: "/\nGet users\n\nReturns a stream of users, filtered according to query parameters.\n\n" + parameters: + - name: search + in: query + description: 'A String contained in username, first or last name, or email' + schema: + type: string + - name: lastName + in: query + description: 'A String contained in lastName, or the complete lastName, if param "exact" is true' + schema: + type: string + - name: firstName + in: query + description: 'A String contained in firstName, or the complete firstName, if param "exact" is true' + schema: + type: string + - name: email + in: query + description: 'A String contained in email, or the complete email, if param "exact" is true' + schema: + type: string + - name: username + in: query + description: 'A String contained in username, or the complete username, if param "exact" is true' + schema: + type: string + - name: emailVerified + in: query + description: whether the email has been verified + schema: + type: boolean + - name: idpAlias + in: query + description: The alias of an Identity Provider linked to the user + schema: + type: string + - name: idpUserId + in: query + description: The userId at an Identity Provider linked to the user + schema: + type: string + - name: first + in: query + description: Pagination offset + schema: + type: integer + format: int32 + - name: max + in: query + description: Maximum results size (defaults to 100) + schema: + type: integer + format: int32 + - name: enabled + in: query + description: Boolean representing if user is enabled or not + schema: + type: boolean + - name: briefRepresentation + in: query + description: 'Boolean which defines whether brief representations are returned (default: false)' + schema: + type: boolean + - name: exact + in: query + description: 'Boolean which defines whether the params "last", "first", "email" and "username" must match exactly' + schema: + type: boolean + - name: q + in: query + description: 'A query to search for custom attributes, in the format ''key1:value2 key2:value2''' + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/users-management-permissions': + description: '/{realm}/users-management-permissions' + get: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + put: + tags: + - RealmAdmin + description: "/\nBase path for the admin REST API for one particular realm.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/ManagementPermissionReference' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/users/{id}': + description: '/{realm}/users/{id}' + put: + tags: + - User + description: "/\nUpdate the user\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserRepresentation' + responses: + 2XX: + description: Success + get: + tags: + - User + description: "/\nGet representation of the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/UserRepresentation' + delete: + tags: + - User + description: "/\nDelete the user\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/configured-user-storage-credential-types': + description: '/{realm}/users/{id}/configured-user-storage-credential-types' + get: + tags: + - User + description: "/\nReturn credential types, which are provided by the user storage where user is stored. Returned values can contain for example \"password\", \"otp\" etc.\nThis will always return empty list for \"local\" users, which are not backed by any user storage\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: string + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/consents': + description: '/{realm}/users/{id}/consents' + get: + tags: + - User + description: "/\nGet consents granted by the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/consents/{client}': + description: '/{realm}/users/{id}/consents/{client}' + delete: + tags: + - User + description: "/\nRevoke consent and offline tokens for particular client from user\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: client + in: path + description: Client id + required: true + schema: + type: string + '/{realm}/users/{id}/credentials': + description: '/{realm}/users/{id}/credentials' + get: + tags: + - User + description: "/\nGet representation of the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CredentialRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/credentials/{credentialId}': + description: '/{realm}/users/{id}/credentials/{credentialId}' + delete: + tags: + - User + description: "/\nRemove a credential for a user\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: credentialId + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/credentials/{credentialId}/moveAfter/{newPreviousCredentialId}': + description: '/{realm}/users/{id}/credentials/{credentialId}/moveAfter/{newPreviousCredentialId}' + post: + tags: + - User + description: "/\nMove a credential to a position behind another credential\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: credentialId + in: path + description: The credential to move + required: true + schema: + type: string + - name: newPreviousCredentialId + in: path + description: 'The credential that will be the previous element in the list. If set to null, the moved credential will be the first element in the list.' + required: true + schema: + type: string + '/{realm}/users/{id}/credentials/{credentialId}/moveToFirst': + description: '/{realm}/users/{id}/credentials/{credentialId}/moveToFirst' + post: + tags: + - User + description: "/\nMove a credential to a first position in the credentials list of the user\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: credentialId + in: path + description: The credential to move + required: true + schema: + type: string + '/{realm}/users/{id}/credentials/{credentialId}/userLabel': + description: '/{realm}/users/{id}/credentials/{credentialId}/userLabel' + put: + tags: + - User + description: "/\nUpdate a credential label for a user\n/\n" + requestBody: + content: + text/plain: + schema: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: credentialId + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/disable-credential-types': + description: '/{realm}/users/{id}/disable-credential-types' + put: + tags: + - User + description: "/\nDisable all credentials for a user of a specific type\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/execute-actions-email': + description: '/{realm}/users/{id}/execute-actions-email' + put: + tags: + - User + description: "/\nSend an email to the user with a link they can click to execute particular actions.\n\nAn email contains a link the user can click to perform a set of required actions.\nThe redirectUri and clientId parameters are optional. If no redirect is given, then there will\nbe no link back to click after actions have completed. Redirect uri must be a valid uri for the\nparticular clientId.\n\n" + parameters: + - name: OIDCLoginProtocol.REDIRECT_URI_PARAM + in: query + description: Redirect uri + schema: + type: string + - name: OIDCLoginProtocol.CLIENT_ID_PARAM + in: query + description: Client id + schema: + type: string + - name: lifespan + in: query + description: Number of seconds after which the generated token expires + schema: + type: integer + format: int32 + requestBody: + content: + application/json: + schema: + type: array + items: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/federated-identity': + description: '/{realm}/users/{id}/federated-identity' + get: + tags: + - User + description: "/\nGet social logins associated with the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/FederatedIdentityRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/federated-identity/{provider}': + description: '/{realm}/users/{id}/federated-identity/{provider}' + post: + tags: + - User + description: "/\nAdd a social login provider to the user\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FederatedIdentityRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - User + description: "/\nRemove a social login provider from user\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: provider + in: path + description: Social login provider id + required: true + schema: + type: string + '/{realm}/users/{id}/groups': + description: '/{realm}/users/{id}/groups' + get: + tags: + - User + description: "/\nGet representation of the user\n\n" + parameters: + - name: search + in: query + schema: + type: string + - name: first + in: query + schema: + type: integer + format: int32 + - name: max + in: query + schema: + type: integer + format: int32 + - name: briefRepresentation + in: query + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/groups/{groupId}': + description: '/{realm}/users/{id}/groups/{groupId}' + delete: + tags: + - User + description: "/\nGet representation of the user\n\n" + responses: + 2XX: + description: Success + put: + tags: + - User + description: "/\nGet representation of the user\n\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: groupId + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/groups/count': + description: '/{realm}/users/{id}/groups/count' + get: + tags: + - User + description: "/\nGet representation of the user\n\n" + parameters: + - name: search + in: query + schema: + type: string + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: integer + format: int64 + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/impersonation': + description: '/{realm}/users/{id}/impersonation' + post: + tags: + - User + description: "/\nImpersonate the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: object + additionalProperties: + type: object + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/logout': + description: '/{realm}/users/{id}/logout' + post: + tags: + - User + description: "/\nRemove all user sessions associated with the user\n\nAlso send notification to all clients that have an admin URL to invalidate the sessions for the particular user.\n\n/\n" + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/offline-sessions/{clientUuid}': + description: '/{realm}/users/{id}/offline-sessions/{clientUuid}' + get: + tags: + - User + description: "/\nGet offline sessions associated with the user and client\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserSessionRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: clientUuid + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/reset-password': + description: '/{realm}/users/{id}/reset-password' + put: + tags: + - User + description: "/\nSet up a new password for the user.\n\n" + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CredentialRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/reset-password-email': + description: '/{realm}/users/{id}/reset-password-email' + put: + tags: + - User + description: "/\nSend an email to the user with a link they can click to reset their password.\nThe redirectUri and clientId parameters are optional. The default for the\nredirect is the account client.\n\nThis endpoint has been deprecated. Please use the execute-actions-email passing a list with\nUPDATE_PASSWORD within it.\n\n" + parameters: + - name: OIDCLoginProtocol.REDIRECT_URI_PARAM + in: query + description: redirect uri + schema: + type: string + - name: OIDCLoginProtocol.CLIENT_ID_PARAM + in: query + description: client id + schema: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings': + description: '/{realm}/users/{id}/role-mappings' + get: + tags: + - RoleMapper + description: "/\nGet role mappings\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + $ref: '#/components/schemas/MappingsRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings/clients/{client}': + description: '/{realm}/users/{id}/role-mappings/clients/{client}' + get: + tags: + - ClientRoleMappings + description: "/\nGet client-level role mappings for the user, and the app\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - ClientRoleMappings + description: "/\nAdd client-level roles to the user role mapping\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - ClientRoleMappings + description: "/\nDelete client-level roles from user role mapping\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings/clients/{client}/available': + description: '/{realm}/users/{id}/role-mappings/clients/{client}/available' + get: + tags: + - ClientRoleMappings + description: "/\nGet available client-level roles that can be mapped to the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings/clients/{client}/composite': + description: '/{realm}/users/{id}/role-mappings/clients/{client}/composite' + get: + tags: + - ClientRoleMappings + description: "/\nGet effective client-level role mappings\n\nThis recurses any composite roles\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + - name: client + in: path + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings/realm': + description: '/{realm}/users/{id}/role-mappings/realm' + get: + tags: + - RoleMapper + description: "/\nGet realm-level role mappings\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + post: + tags: + - RoleMapper + description: "/\nAdd realm-level role mappings to the user\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + delete: + tags: + - RoleMapper + description: "/\nDelete realm-level role mappings\n\n" + requestBody: + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings/realm/available': + description: '/{realm}/users/{id}/role-mappings/realm/available' + get: + tags: + - RoleMapper + description: "/\nGet realm-level roles that can be mapped\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/role-mappings/realm/composite': + description: '/{realm}/users/{id}/role-mappings/realm/composite' + get: + tags: + - RoleMapper + description: "/\nGet effective realm-level role mappings\n\nThis will recurse all composite roles to get the result.\n\n" + parameters: + - name: briefRepresentation + in: query + description: 'if false, return roles with their attributes' + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/send-verify-email': + description: '/{realm}/users/{id}/send-verify-email' + put: + tags: + - User + description: "/\nSend an email-verification email to the user\n\nAn email contains a link the user can click to verify their email address.\nThe redirectUri and clientId parameters are optional. The default for the\nredirect is the account client.\n\n" + parameters: + - name: OIDCLoginProtocol.REDIRECT_URI_PARAM + in: query + description: Redirect uri + schema: + type: string + - name: OIDCLoginProtocol.CLIENT_ID_PARAM + in: query + description: Client id + schema: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/{id}/sessions': + description: '/{realm}/users/{id}/sessions' + get: + tags: + - User + description: "/\nGet sessions associated with the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/UserSessionRepresentation' + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + - name: id + in: path + description: User id + required: true + schema: + type: string + '/{realm}/users/count': + description: '/{realm}/users/count' + get: + tags: + - Users + description: "/\nReturns the number of users that match the given criteria.\nIt can be called in three different ways.\n1. Don't specify any criteria and pass {" + parameters: + - name: search + in: query + description: arbitrary search string for all the fields below + schema: + type: string + - name: lastName + in: query + description: last name filter + schema: + type: string + - name: firstName + in: query + description: first name filter + schema: + type: string + - name: email + in: query + description: email filter + schema: + type: string + - name: emailVerified + in: query + schema: + type: boolean + - name: username + in: query + description: username filter + schema: + type: string + - name: enabled + in: query + description: Boolean representing if user is enabled or not + schema: + type: boolean + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: integer + format: int32 + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string + '/{realm}/users/profile': + description: '/{realm}/users/profile' + get: + tags: + - UserProfile + description: "/\nGet representation of the user\n\n" + responses: + 2XX: + description: Success + content: + application/json: + schema: + type: string + put: + tags: + - UserProfile + description: "/\nGet representation of the user\n\n" + requestBody: + content: + application/json: + schema: + type: string + responses: + 2XX: + description: Success + parameters: + - name: realm + in: path + description: realm name (not id!) + required: true + schema: + type: string +components: + schemas: + AbstractAuthenticationExecutionRepresentation: + type: object + properties: + authenticatorConfig: + type: string + authenticator: + type: string + requirement: + type: string + priority: + type: integer + format: int32 + autheticatorFlow: + type: boolean + authenticatorFlow: + type: boolean + AuthDetailsRepresentation: + type: object + properties: + realmId: + type: string + clientId: + type: string + userId: + type: string + ipAddress: + type: string + AuthenticationExecutionExportRepresentation: + type: object + properties: + userSetupAllowed: + type: boolean + flowAlias: + type: string + AuthenticationExecutionInfoRepresentation: + type: object + properties: + id: + type: string + displayName: + type: string + alias: + type: string + description: + type: string + requirement: + type: string + requirementChoices: + type: array + items: + type: string + configurable: + type: boolean + providerId: + type: string + authenticationConfig: + type: string + authenticationFlow: + type: boolean + level: + type: integer + format: int32 + index: + type: integer + format: int32 + flowId: + type: string + AuthenticationExecutionRepresentation: + type: object + properties: + id: + type: string + flowId: + type: string + parentFlow: + type: string + AuthenticationFlowRepresentation: + type: object + properties: + id: + type: string + alias: + type: string + description: + type: string + providerId: + type: string + topLevel: + type: boolean + builtIn: + type: boolean + authenticationExecutions: + type: array + items: + $ref: '#/components/schemas/AuthenticationExecutionExportRepresentation' + AuthenticatorConfigRepresentation: + type: object + properties: + id: + type: string + alias: + type: string + config: + type: object + additionalProperties: + type: string + CertificateRepresentation: + type: object + properties: + privateKey: + type: string + publicKey: + type: string + certificate: + type: string + kid: + type: string + ClaimRepresentation: + type: object + properties: + name: + type: boolean + username: + type: boolean + profile: + type: boolean + picture: + type: boolean + website: + type: boolean + email: + type: boolean + gender: + type: boolean + locale: + type: boolean + address: + type: boolean + phone: + type: boolean + ClientInitialAccessCreatePresentation: + type: object + properties: + expiration: + type: integer + format: int32 + count: + type: integer + format: int32 + ClientInitialAccessPresentation: + type: object + properties: + id: + type: string + token: + type: string + timestamp: + type: integer + format: int32 + expiration: + type: integer + format: int32 + count: + type: integer + format: int32 + remainingCount: + type: integer + format: int32 + ClientPoliciesRepresentation: + type: object + properties: + policies: + type: array + items: + type: object + description: ClientPolicyRepresentation + ClientPolicyConditionConfigurationRepresentation: + type: object + properties: + negativeLogic: + type: boolean + configAsMap: + type: object + additionalProperties: + type: object + ClientPolicyConditionRepresentation: + type: object + properties: + conditionProviderId: + type: string + configuration: + type: object + ClientPolicyExecutorConfigurationRepresentation: + type: object + properties: + configAsMap: + type: object + additionalProperties: + type: object + ClientPolicyExecutorRepresentation: + type: object + properties: + executorProviderId: + type: string + configuration: + type: object + ClientProfileRepresentation: + type: object + properties: + name: + type: string + description: + type: string + executors: + type: array + items: + $ref: '#/components/schemas/ClientPolicyExecutorRepresentation' + ClientProfilesRepresentation: + type: object + properties: + profiles: + type: array + items: + $ref: '#/components/schemas/ClientProfileRepresentation' + globalProfiles: + type: array + items: + $ref: '#/components/schemas/ClientProfileRepresentation' + ComponentExportRepresentation: + type: object + properties: + id: + type: string + name: + type: string + providerId: + type: string + subType: + type: string + config: + type: object + additionalProperties: + type: string + subComponents: + type: object + additionalProperties: + $ref: '#/components/schemas/ComponentExportRepresentation' + ComponentRepresentation: + type: object + properties: + id: + type: string + name: + type: string + providerId: + type: string + providerType: + type: string + parentId: + type: string + subType: + type: string + config: + type: object + additionalProperties: + type: string + ConfigPropertyRepresentation: + type: object + properties: + name: + type: string + label: + type: string + type: + type: string + defaultValue: + type: object + helpText: + type: string + options: + type: array + items: + type: string + secret: + type: boolean + readOnly: + type: boolean + CredentialRepresentation: + type: object + properties: + id: + type: string + type: + type: string + userLabel: + type: string + secretData: + type: string + credentialData: + type: string + priority: + type: integer + format: int32 + createdDate: + type: integer + format: int64 + value: + type: string + temporary: + type: boolean + device: + type: string + hashedSaltedValue: + type: string + salt: + type: string + hashIterations: + type: integer + format: int32 + counter: + type: integer + format: int32 + algorithm: + type: string + digits: + type: integer + format: int32 + period: + type: integer + format: int32 + config: + type: object + additionalProperties: + type: string + EventRepresentation: + type: object + properties: + time: + type: integer + format: int64 + type: + type: string + realmId: + type: string + clientId: + type: string + userId: + type: string + sessionId: + type: string + ipAddress: + type: string + error: + type: string + details: + type: object + additionalProperties: + type: string + FederatedIdentityRepresentation: + type: object + properties: + identityProvider: + type: string + userId: + type: string + userName: + type: string + GroupRepresentation: + type: object + properties: + id: + type: string + name: + type: string + path: + type: string + realmRoles: + type: array + items: + type: string + clientRoles: + type: object + additionalProperties: + type: array + items: + type: string + attributes: + type: object + additionalProperties: + type: array + items: + type: string + subGroups: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + access: + type: object + additionalProperties: + type: boolean + IdentityProviderMapperRepresentation: + type: object + properties: + id: + type: string + name: + type: string + identityProviderAlias: + type: string + identityProviderMapper: + type: string + config: + type: object + additionalProperties: + type: string + IdentityProviderMapperTypeRepresentation: + type: object + properties: + id: + type: string + name: + type: string + category: + type: string + helpText: + type: string + properties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + IdentityProviderRepresentation: + type: object + properties: + internalId: + type: string + alias: + type: string + providerId: + type: string + config: + type: object + additionalProperties: + type: string + enabled: + type: boolean + linkOnly: + type: boolean + updateProfileFirstLoginMode: + type: string + authenticateByDefault: + type: boolean + firstBrokerLoginFlowAlias: + type: string + postBrokerLoginFlowAlias: + type: string + storeToken: + type: boolean + addReadTokenRoleOnCreate: + type: boolean + trustEmail: + type: boolean + displayName: + type: string + KeyMetadataRepresentation: + type: object + properties: + providerId: + type: string + providerPriority: + type: integer + format: int64 + kid: + type: string + status: + type: string + type: + type: string + algorithm: + type: string + publicKey: + type: string + certificate: + type: string + use: + type: object + description: KeyUse + LDAPCapabilityRepresentation: + type: object + properties: + oid: + type: string + type: + type: object + description: CapabilityType + ManagementPermissionReference: + type: object + properties: + enabled: + type: boolean + resource: + type: string + scopePermissions: + type: object + additionalProperties: + type: string + ManagementPermissionRepresentation: + type: object + properties: + enabled: + type: boolean + OAuth2ErrorRepresentation: + type: object + properties: + error: + type: string + errorDescription: + type: string + OAuthClientRepresentation: + type: object + PasswordPolicyTypeRepresentation: + type: object + properties: + id: + type: string + displayName: + type: string + configType: + type: string + defaultValue: + type: string + multipleSupported: + type: boolean + ProtocolMapperRepresentation: + type: object + properties: + id: + type: string + name: + type: string + protocol: + type: string + protocolMapper: + type: string + config: + type: object + additionalProperties: + type: string + consentRequired: + type: boolean + consentText: + type: string + ProtocolMapperTypeRepresentation: + type: object + properties: + id: + type: string + name: + type: string + category: + type: string + helpText: + type: string + priority: + type: integer + format: int32 + properties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + PublishedRealmRepresentation: + type: object + properties: + publicKeyPem: + type: string + tokenServiceUrl: + type: string + accountServiceUrl: + type: string + notBefore: + type: integer + format: int32 + RealmEventsConfigRepresentation: + type: object + properties: + eventsEnabled: + type: boolean + eventsExpiration: + type: integer + format: int64 + eventsListeners: + type: array + items: + type: string + enabledEventTypes: + type: array + items: + type: string + adminEventsEnabled: + type: boolean + adminEventsDetailsEnabled: + type: boolean + RequiredActionProviderRepresentation: + type: object + properties: + alias: + type: string + name: + type: string + enabled: + type: boolean + defaultAction: + type: boolean + providerId: + type: string + priority: + type: integer + format: int32 + config: + type: object + additionalProperties: + type: string + RequiredActionProviderSimpleRepresentation: + type: object + properties: + id: + type: string + name: + type: string + providerId: + type: string + Composites: + type: object + properties: + realm: + type: array + items: + type: string + client: + type: object + additionalProperties: + type: array + items: + type: string + application: + type: object + additionalProperties: + type: array + items: + type: string + ScopeMappingRepresentation: + type: object + properties: + self: + type: string + client: + type: string + clientTemplate: + type: string + clientScope: + type: string + roles: + type: array + items: + type: string + SocialLinkRepresentation: + type: object + properties: + socialProvider: + type: string + socialUserId: + type: string + socialUsername: + type: string + SynchronizationResultRepresentation: + type: object + properties: + ignored: + type: boolean + added: + type: integer + format: int32 + updated: + type: integer + format: int32 + removed: + type: integer + format: int32 + failed: + type: integer + format: int32 + status: + type: string + TestLdapConnectionRepresentation: + type: object + properties: + action: + type: string + connectionUrl: + type: string + authType: + type: string + bindDn: + type: string + bindCredential: + type: string + useTruststoreSpi: + type: string + connectionTimeout: + type: string + componentId: + type: string + startTls: + type: string + UserConsentRepresentation: + type: object + properties: + clientId: + type: string + grantedClientScopes: + type: array + items: + type: string + createdDate: + type: integer + format: int64 + lastUpdatedDate: + type: integer + format: int64 + grantedRealmRoles: + type: array + items: + type: string + UserFederationMapperRepresentation: + type: object + properties: + id: + type: string + name: + type: string + federationProviderDisplayName: + type: string + federationMapperType: + type: string + config: + type: object + additionalProperties: + type: string + UserFederationMapperSyncConfigRepresentation: + type: object + properties: + fedToKeycloakSyncSupported: + type: boolean + fedToKeycloakSyncMessage: + type: string + keycloakToFedSyncSupported: + type: boolean + keycloakToFedSyncMessage: + type: string + UserFederationMapperTypeRepresentation: + type: object + properties: + id: + type: string + name: + type: string + category: + type: string + helpText: + type: string + syncConfig: + $ref: '#/components/schemas/UserFederationMapperSyncConfigRepresentation' + properties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + defaultConfig: + type: object + additionalProperties: + type: string + UserFederationProviderFactoryRepresentation: + type: object + properties: + id: + type: string + options: + type: array + items: + type: string + helpText: + type: string + properties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + UserFederationProviderRepresentation: + type: object + properties: + id: + type: string + displayName: + type: string + providerName: + type: string + config: + type: object + additionalProperties: + type: string + priority: + type: integer + format: int32 + fullSyncPeriod: + type: integer + format: int32 + changedSyncPeriod: + type: integer + format: int32 + lastSync: + type: integer + format: int32 + UserRepresentation: + type: object + properties: + self: + type: string + id: + type: string + createdTimestamp: + type: integer + format: int64 + firstName: + type: string + lastName: + type: string + email: + type: string + username: + type: string + enabled: + type: boolean + totp: + type: boolean + emailVerified: + type: boolean + attributes: + type: object + additionalProperties: + type: array + items: + type: string + credentials: + type: array + items: + $ref: '#/components/schemas/CredentialRepresentation' + requiredActions: + type: array + items: + type: string + federatedIdentities: + type: array + items: + $ref: '#/components/schemas/FederatedIdentityRepresentation' + socialLinks: + type: array + items: + $ref: '#/components/schemas/SocialLinkRepresentation' + realmRoles: + type: array + items: + type: string + clientRoles: + type: object + additionalProperties: + type: array + items: + type: string + clientConsents: + type: array + items: + $ref: '#/components/schemas/UserConsentRepresentation' + notBefore: + type: integer + format: int32 + applicationRoles: + type: object + additionalProperties: + type: array + items: + type: string + federationLink: + type: string + serviceAccountClientId: + type: string + groups: + type: array + items: + type: string + origin: + type: string + disableableCredentialTypes: + type: array + items: + type: string + access: + type: object + additionalProperties: + type: boolean + UserSessionRepresentation: + type: object + properties: + id: + type: string + username: + type: string + userId: + type: string + ipAddress: + type: string + start: + type: integer + format: int64 + lastAccess: + type: integer + format: int64 + rememberMe: + type: boolean + clients: + type: object + additionalProperties: + type: string + Access: + type: object + properties: + roles: + type: array + items: + type: string + verifyCaller: + type: boolean + CertConf: + type: object + properties: + certThumbprint: + type: string + AccessTokenResponse: + type: object + properties: + scope: + type: string + token: + type: string + expiresIn: + type: integer + format: int64 + refreshExpiresIn: + type: integer + format: int64 + refreshToken: + type: string + tokenType: + type: string + idToken: + type: string + notBeforePolicy: + type: integer + format: int32 + sessionState: + type: string + otherClaims: + type: object + additionalProperties: + type: object + error: + type: string + errorDescription: + type: string + errorUri: + type: string + AddressClaimSet: + type: object + properties: + formattedAddress: + type: string + streetAddress: + type: string + locality: + type: string + region: + type: string + postalCode: + type: string + country: + type: string + AuthorizationDetailsJSONRepresentation: + type: object + properties: + type: + type: string + locations: + type: array + items: + type: string + actions: + type: array + items: + type: string + datatypes: + type: array + items: + type: string + identifier: + type: string + privileges: + type: array + items: + type: string + customData: + type: object + additionalProperties: + type: object + scopeNameFromCustomData: + type: string + dynamicScopeParamFromCustomData: + type: string + AuthorizationResponseToken: + type: object + properties: + category: + enum: + - INTERNAL + - ACCESS + - ID + - ADMIN + - USERINFO + - LOGOUT + - AUTHORIZATION_RESPONSE + type: string + description: TokenCategory + ClaimsRepresentation: + type: object + properties: + idTokenClaims: + type: object + additionalProperties: + type: object + description: ClaimValue + userinfoClaims: + type: object + additionalProperties: + type: object + description: ClaimValue + present: + type: boolean + presentAsNullClaim: + type: boolean + claimValue: + type: object + description: ClaimValue + IDToken: + type: object + properties: + nonce: + type: string + auth_time: + type: integer + format: int64 + sessionId: + type: string + sessionState: + type: string + accessTokenHash: + type: string + codeHash: + type: string + name: + type: string + givenName: + type: string + familyName: + type: string + middleName: + type: string + nickName: + type: string + preferredUsername: + type: string + profile: + type: string + picture: + type: string + website: + type: string + email: + type: string + emailVerified: + type: boolean + gender: + type: string + birthdate: + type: string + zoneinfo: + type: string + locale: + type: string + phoneNumber: + type: string + phoneNumberVerified: + type: boolean + address: + $ref: '#/components/schemas/AddressClaimSet' + updatedAt: + type: integer + format: int64 + claimsLocales: + type: string + acr: + type: string + stateHash: + type: string + category: + enum: + - INTERNAL + - ACCESS + - ID + - ADMIN + - USERINFO + - LOGOUT + - AUTHORIZATION_RESPONSE + type: string + description: TokenCategory + JsonWebToken: + type: object + properties: + id: + type: string + exp: + type: integer + format: int64 + nbf: + type: integer + format: int64 + iat: + type: integer + format: int64 + issuer: + type: string + suer: + $ref: '#/components/schemas/JsonWebToken' + subject: + type: string + type: + type: string + issuedFor: + type: string + suedFor: + $ref: '#/components/schemas/JsonWebToken' + otherClaims: + type: object + additionalProperties: + type: object + category: + enum: + - INTERNAL + - ACCESS + - ID + - ADMIN + - USERINFO + - LOGOUT + - AUTHORIZATION_RESPONSE + type: string + description: TokenCategory + KeyStoreConfig: + type: object + properties: + realmCertificate: + type: boolean + storePassword: + type: string + keyPassword: + type: string + keyAlias: + type: string + realmAlias: + type: string + format: + type: string + LogoutToken: + type: object + properties: + events: + type: object + additionalProperties: + type: object + sid: + type: string + category: + enum: + - INTERNAL + - ACCESS + - ID + - ADMIN + - USERINFO + - LOGOUT + - AUTHORIZATION_RESPONSE + type: string + description: TokenCategory + OAuth2DeviceAuthorizationResponse: + type: object + properties: + deviceCode: + type: string + userCode: + type: string + verificationUri: + type: string + verificationUriComplete: + type: string + expiresIn: + type: integer + format: int64 + interval: + type: integer + format: int64 + RefreshToken: + type: object + properties: + category: + enum: + - INTERNAL + - ACCESS + - ID + - ADMIN + - USERINFO + - LOGOUT + - AUTHORIZATION_RESPONSE + type: string + description: TokenCategory + UserInfo: + type: object + properties: + issuer: + type: string + subject: + type: string + name: + type: string + givenName: + type: string + familyName: + type: string + middleName: + type: string + nickName: + type: string + preferredUsername: + type: string + profile: + type: string + picture: + type: string + website: + type: string + email: + type: string + emailVerified: + type: boolean + gender: + type: string + birthdate: + type: string + zoneinfo: + type: string + locale: + type: string + phoneNumber: + type: string + phoneNumberVerified: + type: boolean + address: + $ref: '#/components/schemas/AddressClaimSet' + updatedAt: + type: integer + format: int64 + sub: + type: string + claimsLocales: + type: string + otherClaims: + type: object + additionalProperties: + type: object + VersionRepresentation: + type: object + properties: + version: + type: string + buildTime: + type: string + SynchronizationResult: + type: object + properties: + ignored: + type: boolean + added: + type: integer + format: int32 + updated: + type: integer + format: int32 + removed: + type: integer + format: int32 + failed: + type: integer + format: int32 + status: + type: string + ProtocolMapperEvaluationRepresentation: + type: object + properties: + mapperId: + type: string + mapperName: + type: string + containerId: + type: string + containerName: + type: string + containerType: + type: string + protocolMapper: + type: string + Permission: + type: object + properties: + resourceId: + type: string + resourceName: + type: string + scopes: + type: array + items: + type: string + claims: + type: object + additionalProperties: + type: array + items: + type: string + AggregatePolicyRepresentation: + type: object + properties: + type: + type: string + ClientScopeDefinition: + type: object + properties: + id: + type: string + required: + type: boolean + GroupDefinition: + type: object + properties: + id: + type: string + path: + type: string + extendChildren: + type: boolean + JSPolicyRepresentation: + type: object + properties: + type: + type: string + code: + type: string + PermissionTicketRepresentation: + type: object + properties: + id: + type: string + owner: + type: string + resource: + type: string + scope: + type: string + granted: + type: boolean + scopeName: + type: string + resourceName: + type: string + requesterName: + type: string + requester: + type: string + ownerName: + type: string + PolicyProviderRepresentation: + type: object + properties: + type: + type: string + name: + type: string + group: + type: string + PolicyRepresentation: + type: object + properties: + config: + type: object + additionalProperties: + type: string + RegexPolicyRepresentation: + type: object + properties: + type: + type: string + targetClaim: + type: string + pattern: + type: string + ResourceOwnerRepresentation: + type: object + properties: + id: + type: string + name: + type: string + ResourcePermissionRepresentation: + type: object + properties: + type: + type: string + resourceType: + type: string + RoleDefinition: + type: object + properties: + id: + type: string + required: + type: boolean + ScopePermissionRepresentation: + type: object + properties: + type: + type: string + resourceType: + type: string + TimePolicyRepresentation: + type: object + properties: + type: + type: string + notBefore: + type: string + notOnOrAfter: + type: string + dayMonth: + type: string + dayMonthEnd: + type: string + month: + type: string + monthEnd: + type: string + year: + type: string + yearEnd: + type: string + hour: + type: string + hourEnd: + type: string + minute: + type: string + minuteEnd: + type: string + UmaPermissionRepresentation: + type: object + properties: + type: + type: string + roles: + type: array + items: + type: string + groups: + type: array + items: + type: string + clients: + type: array + items: + type: string + users: + type: array + items: + type: string + condition: + type: string + UserPolicyRepresentation: + type: object + properties: + type: + type: string + users: + type: array + items: + type: string + AdminEventRepresentation: + type: object + properties: + time: + type: integer + format: int64 + realmId: + type: string + authDetails: + $ref: '#/components/schemas/AuthDetailsRepresentation' + operationType: + type: string + resourceType: + type: string + resourcePath: + type: string + representation: + type: string + error: + type: string + ApplicationRepresentation: + type: object + properties: + name: + type: string + claims: + $ref: '#/components/schemas/ClaimRepresentation' + AuthenticatorConfigInfoRepresentation: + type: object + properties: + name: + type: string + helpText: + type: string + providerId: + type: string + properties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + ClientScopeRepresentation: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + protocolMappers: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + protocol: + type: string + attributes: + type: object + additionalProperties: + type: string + ClientTemplateRepresentation: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + protocolMappers: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + protocol: + type: string + fullScopeAllowed: + type: boolean + bearerOnly: + type: boolean + consentRequired: + type: boolean + standardFlowEnabled: + type: boolean + implicitFlowEnabled: + type: boolean + directAccessGrantsEnabled: + type: boolean + serviceAccountsEnabled: + type: boolean + publicClient: + type: boolean + frontchannelLogout: + type: boolean + attributes: + type: object + additionalProperties: + type: string + ComponentTypeRepresentation: + type: object + properties: + id: + type: string + helpText: + type: string + properties: + type: array + items: + $ref: '#/components/schemas/ConfigPropertyRepresentation' + metadata: + type: object + additionalProperties: + type: object + KeysMetadataRepresentation: + type: object + properties: + active: + type: object + additionalProperties: + type: string + keys: + type: array + items: + $ref: '#/components/schemas/KeyMetadataRepresentation' + RoleRepresentation: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + scopeParamRequired: + type: boolean + composites: + $ref: '#/components/schemas/Composites' + composite: + type: boolean + clientRole: + type: boolean + containerId: + type: string + attributes: + type: object + additionalProperties: + type: array + items: + type: string + RolesRepresentation: + type: object + properties: + realm: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + client: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + application: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + Authorization: + type: object + properties: + permissions: + type: array + items: + $ref: '#/components/schemas/Permission' + ClientScopePolicyRepresentation: + type: object + properties: + type: + type: string + clientScopes: + type: array + items: + $ref: '#/components/schemas/ClientScopeDefinition' + GroupPolicyRepresentation: + type: object + properties: + type: + type: string + groupsClaim: + type: string + groups: + type: array + items: + $ref: '#/components/schemas/GroupDefinition' + RolePolicyRepresentation: + type: object + properties: + type: + type: string + roles: + type: array + items: + $ref: '#/components/schemas/RoleDefinition' + ClientMappingsRepresentation: + type: object + properties: + id: + type: string + client: + type: string + mappings: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + MappingsRepresentation: + type: object + properties: + realmMappings: + type: array + items: + $ref: '#/components/schemas/RoleRepresentation' + clientMappings: + type: object + additionalProperties: + $ref: '#/components/schemas/ClientMappingsRepresentation' + AccessToken: + type: object + properties: + suedAt: + $ref: '#/components/schemas/AccessToken' + suer: + $ref: '#/components/schemas/AccessToken' + allowedOrigins: + type: array + items: + type: string + realmAccess: + $ref: '#/components/schemas/Access' + trustedCertificates: + type: array + items: + type: string + suedFor: + $ref: '#/components/schemas/AccessToken' + authorization: + $ref: '#/components/schemas/Authorization' + certConf: + $ref: '#/components/schemas/CertConf' + scope: + type: string + category: + enum: + - INTERNAL + - ACCESS + - ID + - ADMIN + - USERINFO + - LOGOUT + - AUTHORIZATION_RESPONSE + type: string + description: TokenCategory + ClientRepresentation: + type: object + properties: + id: + type: string + name: + type: string + description: + type: string + clientId: + type: string + enabled: + type: boolean + alwaysDisplayInConsole: + type: boolean + surrogateAuthRequired: + type: boolean + rootUrl: + type: string + adminUrl: + type: string + baseUrl: + type: string + clientAuthenticatorType: + type: string + secret: + type: string + registrationAccessToken: + type: string + redirectUris: + type: array + items: + type: string + webOrigins: + type: array + items: + type: string + defaultRoles: + type: array + items: + type: string + notBefore: + type: integer + format: int32 + bearerOnly: + type: boolean + consentRequired: + type: boolean + standardFlowEnabled: + type: boolean + implicitFlowEnabled: + type: boolean + directAccessGrantsEnabled: + type: boolean + serviceAccountsEnabled: + type: boolean + authorizationServicesEnabled: + type: boolean + directGrantsOnly: + type: boolean + publicClient: + type: boolean + fullScopeAllowed: + type: boolean + protocol: + type: string + attributes: + type: object + additionalProperties: + type: string + authenticationFlowBindingOverrides: + type: object + additionalProperties: + type: string + nodeReRegistrationTimeout: + type: integer + format: int32 + registeredNodes: + type: object + additionalProperties: + type: integer + format: int32 + frontchannelLogout: + type: boolean + protocolMappers: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + clientTemplate: + type: string + useTemplateConfig: + type: boolean + useTemplateScope: + type: boolean + useTemplateMappers: + type: boolean + defaultClientScopes: + type: array + items: + type: string + optionalClientScopes: + type: array + items: + type: string + authorizationSettings: + $ref: '#/components/schemas/ResourceServerRepresentation' + access: + type: object + additionalProperties: + type: boolean + origin: + type: string + PartialImportRepresentation: + type: object + properties: + ifResourceExists: + type: string + policy: + type: object + description: Policy + users: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + clients: + type: array + items: + $ref: '#/components/schemas/ClientRepresentation' + groups: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + identityProviders: + type: array + items: + $ref: '#/components/schemas/IdentityProviderRepresentation' + identityProviderMappers: + type: array + items: + $ref: '#/components/schemas/IdentityProviderMapperRepresentation' + roles: + $ref: '#/components/schemas/RolesRepresentation' + RealmRepresentation: + type: object + properties: + id: + type: string + realm: + type: string + displayName: + type: string + displayNameHtml: + type: string + users: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + applications: + type: array + items: + $ref: '#/components/schemas/ApplicationRepresentation' + clients: + type: array + items: + $ref: '#/components/schemas/ClientRepresentation' + enabled: + type: boolean + sslRequired: + type: string + defaultSignatureAlgorithm: + type: string + revokeRefreshToken: + type: boolean + refreshTokenMaxReuse: + type: integer + format: int32 + accessTokenLifespan: + type: integer + format: int32 + accessTokenLifespanForImplicitFlow: + type: integer + format: int32 + ssoSessionIdleTimeout: + type: integer + format: int32 + ssoSessionMaxLifespan: + type: integer + format: int32 + ssoSessionMaxLifespanRememberMe: + type: integer + format: int32 + ssoSessionIdleTimeoutRememberMe: + type: integer + format: int32 + offlineSessionIdleTimeout: + type: integer + format: int32 + offlineSessionMaxLifespanEnabled: + type: boolean + offlineSessionMaxLifespan: + type: integer + format: int32 + clientSessionIdleTimeout: + type: integer + format: int32 + clientSessionMaxLifespan: + type: integer + format: int32 + clientOfflineSessionIdleTimeout: + type: integer + format: int32 + clientOfflineSessionMaxLifespan: + type: integer + format: int32 + scopeMappings: + type: array + items: + $ref: '#/components/schemas/ScopeMappingRepresentation' + requiredCredentials: + type: array + items: + type: string + passwordPolicy: + type: string + accessCodeLifespan: + type: integer + format: int32 + accessCodeLifespanUserAction: + type: integer + format: int32 + accessCodeLifespanLogin: + type: integer + format: int32 + actionTokenGeneratedByAdminLifespan: + type: integer + format: int32 + oAuth2DeviceCodeLifespan: + type: integer + format: int32 + oAuth2DevicePollingInterval: + type: integer + format: int32 + actionTokenGeneratedByUserLifespan: + type: integer + format: int32 + defaultRoles: + type: array + items: + type: string + defaultRole: + $ref: '#/components/schemas/RoleRepresentation' + defaultGroups: + type: array + items: + type: string + privateKey: + type: string + publicKey: + type: string + certificate: + type: string + codeSecret: + type: string + passwordCredentialGrantAllowed: + type: boolean + registrationAllowed: + type: boolean + registrationEmailAsUsername: + type: boolean + rememberMe: + type: boolean + verifyEmail: + type: boolean + loginWithEmailAllowed: + type: boolean + duplicateEmailsAllowed: + type: boolean + resetPasswordAllowed: + type: boolean + editUsernameAllowed: + type: boolean + social: + type: boolean + updateProfileOnInitialSocialLogin: + type: boolean + browserSecurityHeaders: + type: object + additionalProperties: + type: string + socialProviders: + type: object + additionalProperties: + type: string + smtpServer: + type: object + additionalProperties: + type: string + oauthClients: + type: array + items: + $ref: '#/components/schemas/OAuthClientRepresentation' + clientScopeMappings: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ScopeMappingRepresentation' + applicationScopeMappings: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/ScopeMappingRepresentation' + roles: + $ref: '#/components/schemas/RolesRepresentation' + loginTheme: + type: string + accountTheme: + type: string + adminTheme: + type: string + emailTheme: + type: string + notBefore: + type: integer + format: int32 + bruteForceProtected: + type: boolean + permanentLockout: + type: boolean + maxFailureWaitSeconds: + type: integer + format: int32 + minimumQuickLoginWaitSeconds: + type: integer + format: int32 + waitIncrementSeconds: + type: integer + format: int32 + quickLoginCheckMilliSeconds: + type: integer + format: int64 + maxDeltaTimeSeconds: + type: integer + format: int32 + failureFactor: + type: integer + format: int32 + eventsEnabled: + type: boolean + eventsExpiration: + type: integer + format: int64 + eventsListeners: + type: array + items: + type: string + enabledEventTypes: + type: array + items: + type: string + adminEventsEnabled: + type: boolean + adminEventsDetailsEnabled: + type: boolean + userFederationProviders: + type: array + items: + $ref: '#/components/schemas/UserFederationProviderRepresentation' + userFederationMappers: + type: array + items: + $ref: '#/components/schemas/UserFederationMapperRepresentation' + identityProviders: + type: array + items: + $ref: '#/components/schemas/IdentityProviderRepresentation' + protocolMappers: + type: array + items: + $ref: '#/components/schemas/ProtocolMapperRepresentation' + internationalizationEnabled: + type: boolean + supportedLocales: + type: array + items: + type: string + defaultLocale: + type: string + identityProviderMappers: + type: array + items: + $ref: '#/components/schemas/IdentityProviderMapperRepresentation' + authenticationFlows: + type: array + items: + $ref: '#/components/schemas/AuthenticationFlowRepresentation' + authenticatorConfig: + type: array + items: + $ref: '#/components/schemas/AuthenticatorConfigRepresentation' + requiredActions: + type: array + items: + $ref: '#/components/schemas/RequiredActionProviderRepresentation' + otpPolicyType: + type: string + otpPolicyAlgorithm: + type: string + otpPolicyInitialCounter: + type: integer + format: int32 + otpPolicyDigits: + type: integer + format: int32 + otpPolicyLookAheadWindow: + type: integer + format: int32 + otpPolicyPeriod: + type: integer + format: int32 + otpSupportedApplications: + type: array + items: + type: string + otpPolicyCodeReusable: + type: boolean + webAuthnPolicyRpEntityName: + type: string + webAuthnPolicySignatureAlgorithms: + type: array + items: + type: string + webAuthnPolicyRpId: + type: string + webAuthnPolicyAttestationConveyancePreference: + type: string + webAuthnPolicyAuthenticatorAttachment: + type: string + webAuthnPolicyRequireResidentKey: + type: string + webAuthnPolicyUserVerificationRequirement: + type: string + webAuthnPolicyCreateTimeout: + type: integer + format: int32 + webAuthnPolicyAvoidSameAuthenticatorRegister: + type: boolean + webAuthnPolicyAcceptableAaguids: + type: array + items: + type: string + webAuthnPolicyPasswordlessRpEntityName: + type: string + webAuthnPolicyPasswordlessSignatureAlgorithms: + type: array + items: + type: string + webAuthnPolicyPasswordlessRpId: + type: string + webAuthnPolicyPasswordlessAttestationConveyancePreference: + type: string + webAuthnPolicyPasswordlessAuthenticatorAttachment: + type: string + webAuthnPolicyPasswordlessRequireResidentKey: + type: string + webAuthnPolicyPasswordlessUserVerificationRequirement: + type: string + webAuthnPolicyPasswordlessCreateTimeout: + type: integer + format: int32 + webAuthnPolicyPasswordlessAvoidSameAuthenticatorRegister: + type: boolean + webAuthnPolicyPasswordlessAcceptableAaguids: + type: array + items: + type: string + browserFlow: + type: string + registrationFlow: + type: string + directGrantFlow: + type: string + resetCredentialsFlow: + type: string + clientAuthenticationFlow: + type: string + dockerAuthenticationFlow: + type: string + keycloakVersion: + type: string + groups: + type: array + items: + $ref: '#/components/schemas/GroupRepresentation' + clientTemplates: + type: array + items: + $ref: '#/components/schemas/ClientTemplateRepresentation' + clientScopes: + type: array + items: + $ref: '#/components/schemas/ClientScopeRepresentation' + defaultDefaultClientScopes: + type: array + items: + type: string + defaultOptionalClientScopes: + type: array + items: + type: string + components: + type: object + additionalProperties: + $ref: '#/components/schemas/ComponentExportRepresentation' + attributes: + type: object + additionalProperties: + type: string + federatedUsers: + type: array + items: + $ref: '#/components/schemas/UserRepresentation' + userManagedAccessAllowed: + type: boolean + AbstractPolicyRepresentation: + type: object + properties: + id: + type: string + type: + type: string + decisionStrategy: + enum: + - AFFIRMATIVE(0) + - UNANIMOUS(1) + - CONSENSUS(2) + type: string + description: DecisionStrategy + logic: + enum: + - POSITIVE(0) + - NEGATIVE(1) + type: string + description: Logic + name: + type: string + description: + type: string + policies: + type: array + items: + type: string + resources: + type: array + items: + type: string + scopes: + type: array + items: + type: string + owner: + type: string + resourcesData: + type: array + items: + $ref: '#/components/schemas/ResourceRepresentation' + scopesData: + type: array + items: + $ref: '#/components/schemas/ScopeRepresentation' + ResourceRepresentation: + type: object + properties: + id: + type: string + name: + type: string + displayName: + type: string + uris: + type: array + items: + type: string + type: + type: string + scopes: + type: array + items: + $ref: '#/components/schemas/ScopeRepresentation' + iconUri: + type: string + owner: + $ref: '#/components/schemas/ResourceOwnerRepresentation' + ownerManagedAccess: + type: boolean + attributes: + type: object + additionalProperties: + type: array + items: + type: string + ResourceServerRepresentation: + type: object + properties: + id: + type: string + clientId: + type: string + name: + type: string + allowRemoteResourceManagement: + type: boolean + policyEnforcementMode: + enum: + - ENFORCING(0) + - PERMISSIVE(1) + - DISABLED(2) + type: string + description: PolicyEnforcementMode + resources: + type: array + items: + $ref: '#/components/schemas/ResourceRepresentation' + policies: + type: array + items: + $ref: '#/components/schemas/PolicyRepresentation' + scopes: + type: array + items: + $ref: '#/components/schemas/ScopeRepresentation' + decisionStrategy: + enum: + - AFFIRMATIVE(0) + - UNANIMOUS(1) + - CONSENSUS(2) + type: string + description: DecisionStrategy + ScopeRepresentation: + type: object + properties: + name: + type: string + displayName: + type: string + iconUri: + type: string + id: + type: string + policies: + type: array + items: + $ref: '#/components/schemas/PolicyRepresentation' + resources: + type: array + items: + $ref: '#/components/schemas/ResourceRepresentation' + securitySchemes: + access_token: + type: http + scheme: bearer + bearerFormat: JWT +security: + - access_token: [ ] \ No newline at end of file