diff --git a/jans-cli-tui/cli/config_cli.py b/jans-cli-tui/cli/config_cli.py index 18c75ae7856..eb2e6e59972 100755 --- a/jans-cli-tui/cli/config_cli.py +++ b/jans-cli-tui/cli/config_cli.py @@ -22,6 +22,8 @@ import jwt import pyDes import stat +import ruamel.yaml + from pathlib import Path from types import SimpleNamespace @@ -90,32 +92,36 @@ def unobscure(s=''): return decrypted.decode('utf-8') -debug_json = os.path.join(cur_dir, 'swagger_yaml.json') -if os.path.exists(debug_json): - with open(debug_json) as f: - cfg_yml = json.load(f, object_pairs_hook=OrderedDict) -else: - with open(os.path.join(cur_dir, my_op_mode+'.json')) as f: - cfg_yml = json.load(f) - -op_list = [] - name_regex = re.compile('[^a-zA-Z0-9]') def get_named_tag(tag): return name_regex.sub('', tag.title()) -for path in cfg_yml['paths']: - for method in cfg_yml['paths'][path]: - if isinstance(cfg_yml['paths'][path][method], dict): - for tag_ in cfg_yml['paths'][path][method].get('tags', []): - tag = get_named_tag(tag_) - if not tag in op_list: - op_list.append(tag) +def get_plugin_name_from_title(title): + n = title.find('-') + if n > -1: + return title[n+1:].strip() + return '' -for yml_fn in glob.glob(os.path.join(cur_dir, '*.yaml')): - fname, fext = os.path.splitext(os.path.basename(yml_fn)) - op_list.append(fname) +# load yaml files +cfg_yaml = {} +op_list = [] +for opmode in os.listdir(os.path.join(cur_dir, 'ops')): + cfg_yaml[opmode] = {} + for yaml_fn in glob.glob(os.path.join(cur_dir, 'ops', opmode, '*.yaml')): + fn, ext = os.path.splitext(os.path.basename(yaml_fn)) + with open(yaml_fn) as f: + config_ = ruamel.yaml.load(f.read().replace('\t', ''), ruamel.yaml.RoundTripLoader) + plugin_name = get_plugin_name_from_title(config_['info']['title']) + cfg_yaml[opmode][plugin_name] = config_ + + for path in config_['paths']: + for method in config_['paths'][path]: + if isinstance(config_['paths'][path][method], dict): + for tag_ in config_['paths'][path][method].get('tags', []): + tag = get_named_tag(tag_) + if not tag in op_list: + op_list.append(tag) op_list.sort() @@ -947,14 +953,15 @@ def obtain_parameters(self, endpoint, single=False): def get_path_by_id(self, operation_id): retVal = {} - for path in cfg_yml['paths']: - for method in cfg_yml['paths'][path]: - if 'operationId' in cfg_yml['paths'][path][method] and cfg_yml['paths'][path][method][ - 'operationId'] == operation_id: - retVal = cfg_yml['paths'][path][method].copy() - retVal['__path__'] = path - retVal['__method__'] = method - retVal['__urlsuffix__'] = self.get_url_param(path) + for plugin in cfg_yaml[my_op_mode]: + for path in cfg_yaml[my_op_mode][plugin]['paths']: + for method in cfg_yaml[my_op_mode][plugin]['paths'][path]: + if 'operationId' in cfg_yaml[my_op_mode][plugin]['paths'][path][method] and cfg_yaml[my_op_mode][plugin]['paths'][path][method][ + 'operationId'] == operation_id: + retVal = cfg_yaml[my_op_mode][plugin]['paths'][path][method].copy() + retVal['__path__'] = path + retVal['__method__'] = method + retVal['__urlsuffix__'] = self.get_url_param(path) return retVal @@ -994,9 +1001,15 @@ def get_requests(self, endpoint, params={}): return response if response.status_code in (404, 401): - print(self.colored_text("Server returned {}".format(response.status_code), error_color)) - print(self.colored_text(response.text, error_color)) - return None + if response.text == 'ID Token is expired': + self.access_token = None + self.get_access_token(security) + self.get_requests(endpoint, params) + return + else: + print(self.colored_text("Server returned {}".format(response.status_code), error_color)) + print(self.colored_text(response.text, error_color)) + return None try: return response.json() @@ -1005,48 +1018,6 @@ def get_requests(self, endpoint, params={}): print("An error ocurred while retreiving data") self.print_exception(e) - def get_schema_from_reference(self, ref): - schema_path_list = ref.strip('/#').split('/') - schema = cfg_yml[schema_path_list[0]] - - schema_ = schema.copy() - - for p in schema_path_list[1:]: - schema_ = schema_[p] - - if 'allOf' in schema_: - all_schema = OrderedDict() - all_schema['required'] = [] - - all_schema['properties'] = OrderedDict() - for sch in schema_['allOf']: - if '$ref' in sch: - all_schema.update(self.get_schema_from_reference(sch['$ref'])) - elif 'properties' in sch: - for sprop in sch['properties']: - all_schema['properties'][sprop] = sch['properties'][sprop] - all_schema['required'] += sch.get('required', []) - - schema_ = all_schema - - for key_ in schema_.get('properties', []): - if '$ref' in schema_['properties'][key_]: - schema_['properties'][key_] = self.get_schema_from_reference(schema_['properties'][key_]['$ref']) - elif schema_['properties'][key_].get('type') == 'array' and '$ref' in schema_['properties'][key_]['items']: - ref_path = schema_['properties'][key_]['items'].pop('$ref') - ref_schema = self.get_schema_from_reference(ref_path) - schema_['properties'][key_]['properties'] = ref_schema['properties'] - schema_['properties'][key_]['title'] = ref_schema['title'] - schema_['properties'][key_]['description'] = ref_schema.get('description', '') - schema_['properties'][key_]['__schema_name__'] = ref_schema['__schema_name__'] - - if not 'title' in schema_: - schema_['title'] = p - - schema_['__schema_name__'] = p - - return schema_ - def get_mime_for_endpoint(self, endpoint, req='requestBody'): for key in endpoint.info[req]['content']: return key @@ -1173,51 +1144,53 @@ def parse_args(self, args, path): return args_dict - def help_for(self, op_name): - schema_path = None - for path_name in cfg_yml['paths']: - for method in cfg_yml['paths'][path_name]: - path = cfg_yml['paths'][path_name][method] - if isinstance(path, dict): - for tag_ in path['tags']: - tag = get_named_tag(tag_) - if tag != op_name: - continue - print('Operation ID:', path['operationId']) - print(' Description:', path['description']) - if path.get('__urlsuffix__'): - print(' url-suffix:', path['__urlsuffix__']) - if 'parameters' in path: - param_names = [] - for param in path['parameters']: - desc = param.get('description', 'No description is provided for this parameter') - param_type = param.get('schema', {}).get('type') - if param_type: - desc += ' [{}]'.format(param_type) - param_names.append((param['name'], desc)) - if param_names: - print(' Parameters:') - for param in param_names: - print(' {}: {}'.format(param[0], param[1])) - - if 'requestBody' in path: - for apptype in path['requestBody'].get('content', {}): - if 'schema' in path['requestBody']['content'][apptype]: - if path['requestBody']['content'][apptype]['schema'].get('type') == 'array': - schema_path = path['requestBody']['content'][apptype]['schema']['items']['$ref'] - print(' Schema: Array of {}'.format(schema_path[1:])) - else: - schema_path = path['requestBody']['content'][apptype]['schema']['$ref'] - print(' Schema: {}'.format(schema_path[1:])) + def help_for(self, op_name): + + schema_path = None + for plugin in cfg_yaml[my_op_mode]: + for path_name in cfg_yaml[my_op_mode][plugin]['paths']: + for method in cfg_yaml[my_op_mode][plugin]['paths'][path_name]: + path = cfg_yaml[my_op_mode][plugin]['paths'][path_name][method] + if isinstance(path, dict): + for tag_ in path['tags']: + tag = get_named_tag(tag_) + if tag == op_name: + title = cfg_yaml[my_op_mode][plugin]['info']['title'] + mode_suffix = plugin+ ':' if plugin else '' + print('Operation ID:', path['operationId']) + print(' Description:', path['description']) + if path.get('__urlsuffix__'): + print(' url-suffix:', path['__urlsuffix__']) + if 'parameters' in path: + param_names = [] + for param in path['parameters']: + desc = param.get('description', 'No description is provided for this parameter') + param_type = param.get('schema', {}).get('type') + if param_type: + desc += ' [{}]'.format(param_type) + param_names.append((param['name'], desc)) + if param_names: + print(' Parameters:') + for param in param_names: + print(' {}: {}'.format(param[0], param[1])) + + if 'requestBody' in path: + for apptype in path['requestBody'].get('content', {}): + if 'schema' in path['requestBody']['content'][apptype]: + if path['requestBody']['content'][apptype]['schema'].get('type') == 'array': + schema_path = path['requestBody']['content'][apptype]['schema']['items']['$ref'] + print(' Schema: Array of {}{}'.format(mode_suffix, os.path.basename(schema_path))) + else: + schema_path = path['requestBody']['content'][apptype]['schema']['$ref'] + print(' Schema: {}{}'.format(mode_suffix, os.path.basename(schema_path))) + break if schema_path: print() - print("To get sample schema type {0} --schema , for example {0} --schema {1}".format(sys.argv[0], - schema_path[ - 1:])) + print("To get sample schema type {0} --schema , for example {0} --schema {2}{1}".format(sys.argv[0], os.path.basename(schema_path), mode_suffix)) def render_json_entry(self, val): if isinstance(val, str) and val.startswith('_file '): @@ -1394,8 +1367,73 @@ def process_command_by_id(self, operation_id, url_suffix, endpoint_args, data_fn return caller_function(path, suffix_param, endpoint_params, data_fn, data=data) - def get_sample_schema(self, ref): - schema = self.get_schema_from_reference('#' + args.schema) + def get_schema_reference_from_name(self, plugin_name, schema_name): + for plugin in cfg_yaml[my_op_mode]: + if plugin_name == get_plugin_name_from_title(title = cfg_yaml[my_op_mode][plugin]['info']['title']): + for schema in cfg_yaml[my_op_mode][plugin]['components']['schemas']: + if schema == schema_name: + return '#/components/schemas/' + schema + + def get_schema_from_reference(self, plugin_name, ref): + + schema_path_list = ref.strip('/#').split('/') + schema = cfg_yaml[my_op_mode][plugin_name][schema_path_list[0]] + + schema_ = schema.copy() + + for p in schema_path_list[1:]: + schema_ = schema_[p] + + if 'allOf' in schema_: + all_schema = OrderedDict() + all_schema['required'] = [] + + all_schema['properties'] = OrderedDict() + for sch in schema_['allOf']: + if '$ref' in sch: + all_schema.update(self.get_schema_from_reference(plugin_name, sch['$ref'])) + elif 'properties' in sch: + for sprop in sch['properties']: + all_schema['properties'][sprop] = sch['properties'][sprop] + all_schema['required'] += sch.get('required', []) + + schema_ = all_schema + + for key_ in schema_.get('properties', []): + if '$ref' in schema_['properties'][key_]: + schema_['properties'][key_] = self.get_schema_from_reference(plugin_name, schema_['properties'][key_]['$ref']) + elif schema_['properties'][key_].get('type') == 'array' and '$ref' in schema_['properties'][key_]['items']: + ref_path = schema_['properties'][key_]['items'].pop('$ref') + ref_schema = self.get_schema_from_reference(plugin_name, ref_path) + schema_['properties'][key_]['properties'] = ref_schema['properties'] + schema_['properties'][key_]['title'] = ref_schema['title'] + schema_['properties'][key_]['description'] = ref_schema.get('description', '') + schema_['properties'][key_]['__schema_name__'] = ref_schema['__schema_name__'] + + if not 'title' in schema_: + schema_['title'] = p + + schema_['__schema_name__'] = p + + return schema_ + + + def get_sample_schema(self, schema_name): + + if ':' in schema_name: + plugin_name, schema_str = schema_name.split(':') + else: + plugin_name, schema_str = '', schema_name + + schema = None + schema_reference = self.get_schema_reference_from_name(plugin_name, schema_str) + if schema_reference: + schema = self.get_schema_from_reference(plugin_name, schema_reference) + + if schema is None: + print(self.colored_text("Schema not found.", error_color)) + return + sample_schema = OrderedDict() for prop_name in schema.get('properties', {}): prop = schema['properties'][prop_name] @@ -1406,7 +1444,7 @@ def get_sample_schema(self, ref): elif 'enum' in prop: sample_schema[prop_name] = random.choice(prop['enum']) elif prop.get('type') == 'object': - sample_schema[prop_name] = {} + sample_schema[prop_name] = prop.get('properties', {}) elif prop.get('type') == 'array': if 'items' in prop: if 'enum' in prop['items']: diff --git a/jans-cli-tui/cli/jca.json b/jans-cli-tui/cli/jca.json deleted file mode 100644 index 17cb2936528..00000000000 --- a/jans-cli-tui/cli/jca.json +++ /dev/null @@ -1,10211 +0,0 @@ -{ - "openapi": "3.0.1", - "info": { - "title": "Jans Config API", - "contact": { - "name": "Gluu Support", - "url": "https://support.gluu.org", - "email": "xxx@gluu.org" - }, - "license": { - "name": "Apache 2.0", - "url": "https://github.com/JanssenProject/jans/blob/main/LICENSE" - }, - "version": "1.0.0" - }, - "servers": [ - { - "url": "https://jans.io/", - "description": "The Jans server", - "variables": {} - } - ], - "tags": [ - { - "name": "Attribute" - }, - { - "name": "Default Authentication Method" - }, - { - "name": "Cache Configuration" - }, - { - "name": "Cache Configuration \u2013 Memcached" - }, - { - "name": "Cache Configuration \u2013 Redis" - }, - { - "name": "Cache Configuration \u2013 in-Memory" - }, - { - "name": "Cache Configuration \u2013 Native-Persistence" - }, - { - "name": "Configuration \u2013 Properties" - }, - { - "name": "Configuration \u2013 SMTP" - }, - { - "name": "Configuration \u2013 Logging" - }, - { - "name": "Configuration \u2013 JWK - JSON Web Key (JWK)" - }, - { - "name": "Custom Scripts" - }, - { - "name": "Database - LDAP configuration" - }, - { - "name": "OAuth - OpenID Connect - Clients" - }, - { - "name": "OAuth - UMA Resources" - }, - { - "name": "OAuth - Scopes" - }, - { - "name": "Configuration \u2013 Agama Flow" - }, - { - "name": "Statistics - User" - }, - { - "name": "Health - Check" - }, - { - "name": "Server Stats" - }, - { - "name": "Auth - Session Management" - }, - { - "name": "Organization Configuration" - }, - { - "name": "Auth Server Health - Check" - }, - { - "name": "Fido2 - Configuration" - }, - { - "name": "Configuration \u2013 User Management" - }, - { - "name": "Admin UI - Role" - }, - { - "name": "Admin UI - Permission" - }, - { - "name": "Admin UI - Role-Permissions Mapping" - }, - { - "name": "Admin UI - License" - }, - { - "name": "SCIM - Config Management" - } - ], - "paths": { - "/api/v1/health": { - "get": { - "tags": [ - "Health - Check" - ], - "summary": "Returns application health status", - "description": "Returns application health status", - "operationId": "get-config-health", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/HealthStatus" - } - } - } - } - }, - "500": { - "description": "InternalServerError" - } - } - } - }, - "/api/v1/health/live": { - "get": { - "tags": [ - "Health - Check" - ], - "summary": "Returns application liveness status", - "description": "Returns application liveness status", - "operationId": "get-config-health-live", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Status" - } - } - } - }, - "500": { - "description": "InternalServerError" - } - } - } - }, - "/api/v1/health/ready": { - "get": { - "tags": [ - "Health - Check" - ], - "summary": "Returns application readiness status", - "description": "Returns application readiness status", - "operationId": "get-config-health-ready", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Status" - } - } - } - }, - "500": { - "description": "InternalServerError" - } - } - } - }, - "/api/v1/health/server-stat": { - "get": { - "tags": [ - "Health - Check" - ], - "summary": "Returns application server status", - "description": "Returns application server status", - "operationId": "get-server-stat", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StatsData" - } - } - } - }, - "500": { - "description": "InternalServerError" - } - } - } - }, - "/api/v1/acrs": { - "get": { - "tags": [ - "Default Authentication Method" - ], - "summary": "Gets default authentication method.", - "description": "Gets default authentication method.", - "operationId": "get-acrs", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationMethod" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"defaultAcr\": \"basic\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/acrs.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Default Authentication Method" - ], - "summary": "Updates default authentication method.", - "description": "Updates default authentication method.", - "operationId": "put-acrs", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationMethod" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"defaultAcr\": \"basic\"\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AuthenticationMethod" - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/acrs.write" - ] - } - ] - } - }, - "/api/v1/agama": { - "get": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Fetches all agama flow.", - "description": "Fetches all agama flow.", - "operationId": "get-agama-flows", - "parameters": [ - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string", - "default": "agFlowQname" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string", - "default": "ascending" - } - }, - { - "name": "includeSource", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Agama Flows", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 1,\n \"entriesCount\": 1,\n \"entries\": [\n {\n \"dn\": \"agFlowQname=test,ou=flows,ou=agama,o=jans\",\n \"qname\": \"test\",\n \"revision\": -1,\n \"enabled\": false,\n \"metadata\": {\n \"timestamp\": 1666786067495\n },\n \"source\": \"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\",\n \"baseDn\": \"agFlowQname=test,ou=flows,ou=agama,o=jans\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.readonly" - ] - } - ] - }, - "post": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Create a new agama flow", - "description": "Create a new agama flow", - "operationId": "post-agama-flow", - "requestBody": { - "description": "Agama Flow", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Flow" - }, - "examples": { - "Request example": { - "description": "Request example", - "value": "{\n \"enabled\": false,\n \"source\":\"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\",\n \"qname\": \"test\"\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Flow" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"enabled\": false,\n \"source\":\"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\",\n \"qname\": \"test\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.write" - ] - } - ] - } - }, - "/api/v1/agama/{qname}": { - "get": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Gets an agama flow based on Qname.", - "description": "Gets an agama flow based on Qname.", - "operationId": "get-agama-flow", - "parameters": [ - { - "name": "qname", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "includeSource", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Agama Flow", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Flow" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"agFlowQname=test,ou=flows,ou=agama,o=jans\",\n \"qname\": \"test\",\n \"revision\": -1,\n \"enabled\": false,\n \"metadata\": {\n \"timestamp\": 1666786067495\n },\n \"baseDn\": \"agFlowQname=test,ou=flows,ou=agama,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.readonly" - ] - } - ] - }, - "post": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Create a new agama flow from source", - "description": "Create a new agama flow from source.", - "operationId": "post-agama-flow-from-source", - "parameters": [ - { - "name": "qname", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "Agama Flow", - "content": { - "text/plain": { - "schema": { - "type": "string" - }, - "examples": { - "Request example": { - "description": "Request example", - "value": "//This is a comment\nFlow test\n Basepath \"hello\" \n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\"\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Flow" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"enabled\": false,\n \"source\":\"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\",\n \"qname\": \"test\"\n}\n" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.write" - ] - } - ] - }, - "delete": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Deletes an agama flow based on Qname", - "description": "Deletes an agama flow based on Qname", - "operationId": "delete-agama-flow", - "parameters": [ - { - "name": "qname", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Partially modify a Agama Flow", - "description": "Partially modify a Agama Flow", - "operationId": "patch-agama-flow", - "parameters": [ - { - "name": "qname", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch object", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request example": { - "description": "Request example", - "value": "[{ \"op\": \"replace\", \"path\": \"/source\", \"value\": \"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\"}]\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Patched Agama Flow", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Flow" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"enabled\": false,\n \"source\":\"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\",\n \"qname\": \"test\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.write" - ] - } - ] - } - }, - "/api/v1/agama/source/{qname}": { - "put": { - "tags": [ - "Configuration \u2013 Agama Flow" - ], - "summary": "Update agama flow from source file", - "description": "Update agama flow from source file.", - "operationId": "put-agama-flow-from-source", - "parameters": [ - { - "name": "qname", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "String representing patch-document.", - "content": { - "text/plain": { - "schema": { - "type": "string" - }, - "examples": { - "Request example": { - "description": "Request example", - "value": "//This is a comment\nFlow test\n Basepath \"hello\" \n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\"\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Flow" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"enabled\": false,\n \"source\":\"Flow test\\n\\tBasepath \\\"hello\\\"\\n\\nin = { name: \\\"John\\\" }\\nRRF \\\"index.ftlh\\\" in\\n\\nLog \\\"Done!\\\"\\nFinish \\\"john_doe\\\"\",\n \"qname\": \"test\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/agama.write" - ] - } - ] - } - }, - "/api/v1/attributes": { - "get": { - "tags": [ - "Attribute" - ], - "summary": "Gets a list of Gluu attributes.", - "description": "Gets a list of Gluu attributes.", - "operationId": "get-attributes", - "parameters": [ - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "status", - "in": "query", - "schema": { - "type": "string", - "default": "all" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string", - "default": "inum" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string", - "default": "ascending" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 78,\n \"entriesCount\": 2,\n \"entries\": [\n {\n \"dn\": \"inum=08E2,ou=attributes,o=jans\",\n \"selected\": false,\n \"inum\": \"08E2\",\n \"name\": \"departmentNumber\",\n \"displayName\": \"Department\",\n \"description\": \"Organizational Department\",\n \"origin\": \"jansCustomPerson\",\n \"dataType\": \"string\",\n \"editType\": [\n \"admin\"\n ],\n \"viewType\": [\n \"user\",\n \"admin\"\n ],\n \"claimName\": \"department_number\",\n \"status\": \"inactive\",\n \"saml1Uri\": \"urn:mace:dir:attribute-def:departmentNumber\",\n \"saml2Uri\": \"urn:oid:2.16.840.1.113730.3.1.2\",\n \"urn\": \"urn:mace:dir:attribute-def:departmentNumber\",\n \"oxMultiValuedAttribute\": false,\n \"custom\": false,\n \"requred\": false,\n \"whitePagesCanView\": false,\n \"adminCanEdit\": true,\n \"userCanView\": true,\n \"userCanEdit\": false,\n \"adminCanAccess\": true,\n \"adminCanView\": true,\n \"userCanAccess\": true,\n \"baseDn\": \"inum=08E2,ou=attributes,o=jans\"\n },\n {\n \"dn\": \"inum=0C18,ou=attributes,o=jans\",\n \"selected\": false,\n \"inum\": \"0C18\",\n \"name\": \"telephoneNumber\",\n \"displayName\": \"Home Telephone Number\",\n \"description\": \"Home Telephone Number\",\n \"origin\": \"jansCustomPerson\",\n \"dataType\": \"string\",\n \"editType\": [\n \"user\",\n \"admin\"\n ],\n \"viewType\": [\n \"user\",\n \"admin\"\n ],\n \"claimName\": \"phone_number\",\n \"status\": \"inactive\",\n \"saml1Uri\": \"urn:mace:dir:attribute-def:telephoneNumber\",\n \"saml2Uri\": \"urn:oid:2.5.4.20\",\n \"urn\": \"urn:mace:dir:attribute-def:phone_number\",\n \"oxMultiValuedAttribute\": false,\n \"custom\": false,\n \"requred\": false,\n \"whitePagesCanView\": false,\n \"adminCanEdit\": true,\n \"userCanView\": true,\n \"userCanEdit\": true,\n \"adminCanAccess\": true,\n \"adminCanView\": true,\n \"userCanAccess\": true,\n \"baseDn\": \"inum=0C18,ou=attributes,o=jans\"\n }\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/attributes.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Attribute" - ], - "summary": "Updates an existing attribute", - "description": "Updates an existing attribute", - "operationId": "put-attributes", - "requestBody": { - "description": "GluuAttribute object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuAttribute" - }, - "examples": { - "Request example": { - "description": "Request example", - "value": "{\n \"adminCanAccess\": true,\n \"adminCanEdit\": true,\n \"adminCanView\": true,\n \"custom\": false,\n \"dataType\": \"string\",\n \"description\": \"QAAdded Attribute\",\n \"displayName\": \"QAAdded Attribute\",\n \"editType\": [\n \"admin\",\n \"user\"\n ],\n \"name\": \"qaattribute\",\n \"origin\": \"jansPerson\",\n \"jansMultivaluedAttr\": false,\n \"requred\": false,\n \"status\": \"active\",\n \"urn\": \"urn:mace:dir:attribute-def:qaattribute\",\n \"userCanAccess\": true,\n \"userCanEdit\": true,\n \"userCanView\": true,\n \"viewType\": [\n \"admin\",\n \"user\"\n ],\n \"whitePagesCanView\": false\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuAttribute" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"adminCanAccess\": true,\n \"adminCanEdit\": true,\n \"adminCanView\": true,\n \"custom\": false,\n \"dataType\": \"string\",\n \"description\": \"QAAdded Attribute\",\n \"displayName\": \"QAAdded Attribute\",\n \"editType\": [\n \"admin\",\n \"user\"\n ],\n \"name\": \"qaattribute\",\n \"origin\": \"jansPerson\",\n \"jansMultivaluedAttr\": false,\n \"requred\": false,\n \"status\": \"active\",\n \"urn\": \"urn:mace:dir:attribute-def:qaattribute\",\n \"userCanAccess\": true,\n \"userCanEdit\": true,\n \"userCanView\": true,\n \"viewType\": [\n \"admin\",\n \"user\"\n ],\n \"whitePagesCanView\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/attributes.write" - ] - } - ] - }, - "post": { - "tags": [ - "Attribute" - ], - "summary": "Adds a new attribute", - "description": "Adds a new attribute", - "operationId": "post-attributes", - "requestBody": { - "description": "GluuAttribute object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuAttribute" - }, - "examples": { - "Request example": { - "description": "Request example", - "value": "{\n \"adminCanAccess\": true,\n \"adminCanEdit\": true,\n \"adminCanView\": true,\n \"custom\": false,\n \"dataType\": \"string\",\n \"description\": \"QAAdded Attribute\",\n \"displayName\": \"QAAdded Attribute\",\n \"editType\": [\n \"admin\",\n \"user\"\n ],\n \"name\": \"qaattribute\",\n \"origin\": \"jansPerson\",\n \"jansMultivaluedAttr\": false,\n \"requred\": false,\n \"status\": \"active\",\n \"urn\": \"urn:mace:dir:attribute-def:qaattribute\",\n \"userCanAccess\": true,\n \"userCanEdit\": true,\n \"userCanView\": true,\n \"viewType\": [\n \"admin\",\n \"user\"\n ],\n \"whitePagesCanView\": false\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuAttribute" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"adminCanAccess\": true,\n \"adminCanEdit\": true,\n \"adminCanView\": true,\n \"custom\": false,\n \"dataType\": \"string\",\n \"description\": \"QAAdded Attribute\",\n \"displayName\": \"QAAdded Attribute\",\n \"editType\": [\n \"admin\",\n \"user\"\n ],\n \"name\": \"qaattribute\",\n \"origin\": \"jansPerson\",\n \"jansMultivaluedAttr\": false,\n \"requred\": false,\n \"status\": \"active\",\n \"urn\": \"urn:mace:dir:attribute-def:qaattribute\",\n \"userCanAccess\": true,\n \"userCanEdit\": true,\n \"userCanView\": true,\n \"viewType\": [\n \"admin\",\n \"user\"\n ],\n \"whitePagesCanView\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/attributes.write" - ] - } - ] - } - }, - "/api/v1/attributes/{inum}": { - "get": { - "tags": [ - "Attribute" - ], - "summary": "Gets an attribute based on inum", - "description": "Gets an attribute based on inum", - "operationId": "get-attributes-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuAttribute" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"dn\": \"inum=08E2,ou=attributes,o=jans\",\n \"selected\": false,\n \"inum\": \"08E2\",\n \"name\": \"departmentNumber\",\n \"displayName\": \"Department\",\n \"description\": \"Organizational Department\",\n \"origin\": \"jansCustomPerson\",\n \"dataType\": \"string\",\n \"editType\": [\n \"admin\"\n ],\n \"viewType\": [\n \"user\",\n \"admin\"\n ],\n \"claimName\": \"department_number\",\n \"status\": \"inactive\",\n \"saml1Uri\": \"urn:mace:dir:attribute-def:departmentNumber\",\n \"saml2Uri\": \"urn:oid:2.16.840.1.113730.3.1.2\",\n \"urn\": \"urn:mace:dir:attribute-def:departmentNumber\",\n \"oxMultiValuedAttribute\": false,\n \"custom\": false,\n \"requred\": false,\n \"whitePagesCanView\": false,\n \"adminCanEdit\": true,\n \"userCanView\": true,\n \"userCanEdit\": false,\n \"adminCanAccess\": true,\n \"adminCanView\": true,\n \"userCanAccess\": true,\n \"baseDn\": \"inum=08E2,ou=attributes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/attributes.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Attribute" - ], - "summary": "Deletes an attribute based on inum", - "description": "Deletes an attribute based on inum", - "operationId": "delete-attributes-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/attributes.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "Attribute" - ], - "summary": "Partially modify a GluuAttribute", - "description": "Partially modify a GluuAttribute", - "operationId": "patch-attributes-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PatchRequest" - } - }, - "examples": { - "Patch request example": { - "description": "Patch request example", - "value": "[ {op:replace, path: displayName, value: \"CustomAttribute\" } ]\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Updated GluuAttribute", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuAttribute" - }, - "examples": { - "Response example": { - "description": "Response example", - "value": "{\n \"adminCanAccess\": true,\n \"adminCanEdit\": true,\n \"adminCanView\": true,\n \"custom\": false,\n \"dataType\": \"string\",\n \"description\": \"QAAdded Attribute\",\n \"displayName\": \"QAAdded Attribute\",\n \"editType\": [\n \"admin\",\n \"user\"\n ],\n \"name\": \"qaattribute\",\n \"origin\": \"jansPerson\",\n \"jansMultivaluedAttr\": false,\n \"requred\": false,\n \"status\": \"active\",\n \"urn\": \"urn:mace:dir:attribute-def:qaattribute\",\n \"userCanAccess\": true,\n \"userCanEdit\": true,\n \"userCanView\": true,\n \"viewType\": [\n \"admin\",\n \"user\"\n ],\n \"whitePagesCanView\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/attributes.write" - ] - } - ] - } - }, - "/api/v1/config/cache": { - "get": { - "tags": [ - "Cache Configuration" - ], - "summary": "Returns cache configuration.", - "description": "Returns cache configuration.", - "operationId": "get-config-cache", - "responses": { - "200": { - "description": "Cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CacheConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"cacheProviderType\": \"NATIVE_PERSISTENCE\",\n \"memcachedConfiguration\": {\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\": 60,\n \"connectionFactoryType\": \"DEFAULT\"\n },\n \"inMemoryConfiguration\": {\n \"defaultPutExpiration\": 60\n },\n \"redisConfiguration\": {\n \"redisProviderType\": \"STANDALONE\",\n \"servers\": \"localhost:6379\",\n \"defaultPutExpiration\": 60,\n \"useSSL\": false,\n \"maxIdleConnections\": 10,\n \"maxTotalConnections\": 500,\n \"connectionTimeout\": 3000,\n \"soTimeout\": 3000,\n \"maxRetryAttempts\": 5\n },\n \"nativePersistenceConfiguration\": {\n \"defaultPutExpiration\": 60,\n \"defaultCleanupBatchSize\": 10000,\n \"deleteExpiredOnGetRequest\": false,\n \"disableAttemptUpdateBeforeInsert\": false\n }\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.readonly" - ] - } - ] - }, - "patch": { - "tags": [ - "Cache Configuration" - ], - "summary": "Patch cache configuration.", - "description": "Patch cache configuration", - "operationId": "patch-config-cache", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/memcachedConfiguration\", \"value\": {\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\":80,\n \"connectionFactoryType\": \"DEFAULT\"\n }}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CacheConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"cacheProviderType\": \"NATIVE_PERSISTENCE\",\n \"memcachedConfiguration\": {\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\": 60,\n \"connectionFactoryType\": \"DEFAULT\"\n },\n \"inMemoryConfiguration\": {\n \"defaultPutExpiration\": 60\n },\n \"redisConfiguration\": {\n \"redisProviderType\": \"STANDALONE\",\n \"servers\": \"localhost:6379\",\n \"defaultPutExpiration\": 60,\n \"useSSL\": false,\n \"maxIdleConnections\": 10,\n \"maxTotalConnections\": 500,\n \"connectionTimeout\": 3000,\n \"soTimeout\": 3000,\n \"maxRetryAttempts\": 5\n },\n \"nativePersistenceConfiguration\": {\n \"defaultPutExpiration\": 60,\n \"defaultCleanupBatchSize\": 10000,\n \"deleteExpiredOnGetRequest\": false,\n \"disableAttemptUpdateBeforeInsert\": false\n }\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - } - }, - "/api/v1/config/cache/in-memory": { - "get": { - "tags": [ - "Cache Configuration \u2013 in-Memory" - ], - "summary": "Returns in-Memory cache configuration.", - "description": "Returns in-Memory cache configuration.", - "operationId": "get-config-cache-in-memory", - "responses": { - "200": { - "description": "In-Memory configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InMemoryConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"defaultPutExpiration\": 60\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Cache Configuration \u2013 in-Memory" - ], - "summary": "Updates in-Memory cache configuration.", - "description": "Updates in-Memory cache configuration", - "operationId": "put-config-cache-in-memory", - "requestBody": { - "description": "inMemoryConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InMemoryConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"defaultPutExpiration\": 60\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "In-Memory cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InMemoryConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"defaultPutExpiration\": 60\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - }, - "patch": { - "tags": [ - "Cache Configuration \u2013 in-Memory" - ], - "summary": "Patch In-Memory cache configuration.", - "description": "Patch In-Memory cache configuration", - "operationId": "patch-config-cache-in-memory", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/defaultPutExpiration\", \"value\":80}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "In-Memory cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InMemoryConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"defaultPutExpiration\": 60\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - } - }, - "/api/v1/config/cache/memcached": { - "get": { - "tags": [ - "Cache Configuration \u2013 Memcached" - ], - "summary": "Returns memcached cache configuration.", - "description": "Returns memcached cache configuration.", - "operationId": "get-config-cache-memcached", - "responses": { - "200": { - "description": "Memcached configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MemcachedConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\": 80,\n \"connectionFactoryType\": \"DEFAULT\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Cache Configuration \u2013 Memcached" - ], - "summary": "Updates memcached cache configuration.", - "description": "Updates memcached cache configuration", - "operationId": "put-config-cache-memcached", - "requestBody": { - "description": "Memcached Configuration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MemcachedConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\": 80,\n \"connectionFactoryType\": \"DEFAULT\"\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Native persistence cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MemcachedConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\": 80,\n \"connectionFactoryType\": \"DEFAULT\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - }, - "patch": { - "tags": [ - "Cache Configuration \u2013 Memcached" - ], - "summary": "Patch memcached cache configuration.", - "description": "Patch memcached cache configuration", - "operationId": "patch-config-cache-memcached", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/maxOperationQueueLength\", \"value\":10001}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Memcached cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MemcachedConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"servers\": \"localhost:11211\",\n \"maxOperationQueueLength\": 100000,\n \"bufferSize\": 32768,\n \"defaultPutExpiration\": 80,\n \"connectionFactoryType\": \"DEFAULT\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - } - }, - "/api/v1/config/cache/native-persistence": { - "get": { - "tags": [ - "Cache Configuration \u2013 Native-Persistence" - ], - "summary": "Returns native persistence cache configuration.", - "description": "Returns native persistence cache configuration.", - "operationId": "get-config-cache-native-persistence", - "responses": { - "200": { - "description": "Native persistence configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NativePersistenceConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"defaultPutExpiration\": 60,\n \"defaultCleanupBatchSize\": 10000,\n \"deleteExpiredOnGetRequest\": false,\n \"disableAttemptUpdateBeforeInsert\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Cache Configuration \u2013 Native-Persistence" - ], - "summary": "Updates native persistence cache configuration.", - "description": "Updates native persistence cache configuration", - "operationId": "put-config-cache-native-persistence", - "requestBody": { - "description": "NativePersistenceConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NativePersistenceConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"defaultPutExpiration\": 60,\n \"defaultCleanupBatchSize\": 10000,\n \"deleteExpiredOnGetRequest\": false,\n \"disableAttemptUpdateBeforeInsert\": false\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Native persistence cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NativePersistenceConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"defaultPutExpiration\": 60,\n \"defaultCleanupBatchSize\": 10000,\n \"deleteExpiredOnGetRequest\": false,\n \"disableAttemptUpdateBeforeInsert\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - }, - "patch": { - "tags": [ - "Cache Configuration \u2013 Native-Persistence" - ], - "summary": "Patch native persistence cache configuration.", - "description": "Patch native persistence cache configuration", - "operationId": "patch-config-cache-native-persistence", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/defaultCleanupBatchSize\", \"value\":10001}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Native persistence cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NativePersistenceConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"defaultPutExpiration\": 60,\n \"defaultCleanupBatchSize\": 10000,\n \"deleteExpiredOnGetRequest\": false,\n \"disableAttemptUpdateBeforeInsert\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - } - }, - "/api/v1/config/cache/redis": { - "get": { - "tags": [ - "Cache Configuration \u2013 Redis" - ], - "summary": "Returns Redis cache configuration.", - "description": "Returns Redis cache configuration", - "operationId": "get-config-cache-redis", - "responses": { - "200": { - "description": "Redis cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RedisConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"redisProviderType\": \"STANDALONE\",\n \"servers\": \"localhost:6379\",\n \"defaultPutExpiration\": 60,\n \"useSSL\": false,\n \"maxIdleConnections\": 10,\n \"maxTotalConnections\": 500,\n \"connectionTimeout\": 3000,\n \"soTimeout\": 3000,\n \"maxRetryAttempts\": 5\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Cache Configuration \u2013 Redis" - ], - "summary": "Updates Redis cache configuration.", - "description": "Updates Redis cache configuration", - "operationId": "put-config-cache-redis", - "requestBody": { - "description": "RedisConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RedisConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"redisProviderType\": \"STANDALONE\",\n \"servers\": \"localhost:6379\",\n \"defaultPutExpiration\": 60,\n \"useSSL\": false,\n \"maxIdleConnections\": 10,\n \"maxTotalConnections\": 500,\n \"connectionTimeout\": 3000,\n \"soTimeout\": 3000,\n \"maxRetryAttempts\": 5\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Redis cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RedisConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"redisProviderType\": \"STANDALONE\",\n \"servers\": \"localhost:6379\",\n \"defaultPutExpiration\": 60,\n \"useSSL\": false,\n \"maxIdleConnections\": 10,\n \"maxTotalConnections\": 500,\n \"connectionTimeout\": 3000,\n \"soTimeout\": 3000,\n \"maxRetryAttempts\": 5\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - }, - "patch": { - "tags": [ - "Cache Configuration \u2013 Redis" - ], - "summary": "Patch Redis cache configuration.", - "description": "Patch Redis cache configuration", - "operationId": "patch-config-cache-redis", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/defaultPutExpiration\", \"value\":80}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Redis cache configuration details", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RedisConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"redisProviderType\": \"STANDALONE\",\n \"servers\": \"localhost:6379\",\n \"defaultPutExpiration\": 60,\n \"useSSL\": false,\n \"maxIdleConnections\": 10,\n \"maxTotalConnections\": 500,\n \"connectionTimeout\": 3000,\n \"soTimeout\": 3000,\n \"maxRetryAttempts\": 5\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/cache.write" - ] - } - ] - } - }, - "/api/v1/openid/clients": { - "get": { - "tags": [ - "OAuth - OpenID Connect - Clients" - ], - "summary": "Gets list of OpenID Connect clients", - "description": "Gets list of OpenID Connect clients", - "operationId": "get-oauth-openid-clients", - "parameters": [ - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 9,\n \"entriesCount\": 9,\n \"entries\": [\n {\n \"dn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"vA2TTjAOTfQY\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Config Api Client\"\n },\n \"value\": \"Jans Config Api Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=1200.487800,ou=scopes,o=jans\",\n \"inum=1200.9CEE5C,ou=scopes,o=jans\",\n \"inum=1800.FFE5C0,ou=scopes,o=jans\",\n \"inum=1800.472951,ou=scopes,o=jans\",\n \"inum=1800.556F45,ou=scopes,o=jans\",\n \"inum=1800.77FB4F,ou=scopes,o=jans\",\n \"inum=1800.AA8DFE,ou=scopes,o=jans\",\n \"inum=1800.CD5B72,ou=scopes,o=jans\",\n \"inum=1800.CBCF52,ou=scopes,o=jans\",\n \"inum=1800.12284F,ou=scopes,o=jans\",\n \"inum=1800.141B26,ou=scopes,o=jans\",\n \"inum=1800.A018AC,ou=scopes,o=jans\",\n \"inum=1800.6E4456,ou=scopes,o=jans\",\n \"inum=1800.55499D,ou=scopes,o=jans\",\n \"inum=1800.E730AA,ou=scopes,o=jans\",\n \"inum=1800.097318,ou=scopes,o=jans\",\n \"inum=1800.04CF24,ou=scopes,o=jans\",\n \"inum=1800.F963F9,ou=scopes,o=jans\",\n \"inum=1800.31F580,ou=scopes,o=jans\",\n \"inum=1800.E512E3,ou=scopes,o=jans\",\n \"inum=1800.E65DC6,ou=scopes,o=jans\",\n \"inum=1800.3C1F46,ou=scopes,o=jans\",\n \"inum=1800.20D48C,ou=scopes,o=jans\",\n \"inum=1800.4601AA,ou=scopes,o=jans\",\n \"inum=1800.A9B842,ou=scopes,o=jans\",\n \"inum=1800.864485,ou=scopes,o=jans\",\n \"inum=1800.F0B654,ou=scopes,o=jans\",\n \"inum=1800.45F1D7,ou=scopes,o=jans\",\n \"inum=1800.B78FA5,ou=scopes,o=jans\",\n \"inum=1800.E3D7E0,ou=scopes,o=jans\",\n \"inum=1800.E212DC,ou=scopes,o=jans\",\n \"inum=1800.94F80F,ou=scopes,o=jans\",\n \"inum=1800.9F96F3,ou=scopes,o=jans\",\n \"inum=1800.CB50EC,ou=scopes,o=jans\",\n \"inum=1800.1CA946,ou=scopes,o=jans\",\n \"inum=1800.18231E,ou=scopes,o=jans\",\n \"inum=1800.C25D78,ou=scopes,o=jans\",\n \"inum=1800.12B340,ou=scopes,o=jans\",\n \"inum=1800.7A78C3,ou=scopes,o=jans\",\n \"inum=1800.ECB839,ou=scopes,o=jans\",\n \"inum=1800.62579C,ou=scopes,o=jans\",\n \"inum=1800.29B156,ou=scopes,o=jans\",\n \"inum=1800.9DC774,ou=scopes,o=jans\",\n \"inum=1800.71BA21,ou=scopes,o=jans\",\n \"inum=1800.FC35D2,ou=scopes,o=jans\",\n \"inum=1800.F8CA5F,ou=scopes,o=jans\",\n \"inum=1800.D92553,ou=scopes,o=jans\",\n \"inum=1800.08CB80,ou=scopes,o=jans\",\n \"inum=1800.DF434B,ou=scopes,o=jans\",\n \"inum=1800.127954,ou=scopes,o=jans\",\n \"inum=1800.E7CB8C,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Config Api Client\"\n ],\n \"value\": \"Jans Config Api Client\",\n \"displayValue\": \"Jans Config Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Config Api Client\",\n \"baseDn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum\": \"1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6\"\n },\n {\n \"dn\": \"inum=1802.db19d013-bb63-42c4-8ce9-79a4aa58aa7b,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"dpus42KsYjda\",\n \"frontChannelLogoutSessionRequired\": false,\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"client_credentials\",\n \"refresh_token\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Config Api Client\"\n },\n \"value\": \"Jans Config Api Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=1800.FFE5C0,ou=scopes,o=jans\",\n \"inum=1800.472951,ou=scopes,o=jans\",\n \"inum=1800.556F45,ou=scopes,o=jans\",\n \"inum=1800.77FB4F,ou=scopes,o=jans\",\n \"inum=1800.AA8DFE,ou=scopes,o=jans\",\n \"inum=1800.CD5B72,ou=scopes,o=jans\",\n \"inum=1800.CBCF52,ou=scopes,o=jans\",\n \"inum=1800.12284F,ou=scopes,o=jans\",\n \"inum=1800.141B26,ou=scopes,o=jans\",\n \"inum=1800.A018AC,ou=scopes,o=jans\",\n \"inum=1800.6E4456,ou=scopes,o=jans\",\n \"inum=1800.55499D,ou=scopes,o=jans\",\n \"inum=1800.E730AA,ou=scopes,o=jans\",\n \"inum=1800.097318,ou=scopes,o=jans\",\n \"inum=1800.04CF24,ou=scopes,o=jans\",\n \"inum=1800.F963F9,ou=scopes,o=jans\",\n \"inum=1800.31F580,ou=scopes,o=jans\",\n \"inum=1800.E512E3,ou=scopes,o=jans\",\n \"inum=1800.E65DC6,ou=scopes,o=jans\",\n \"inum=1800.3C1F46,ou=scopes,o=jans\",\n \"inum=1800.20D48C,ou=scopes,o=jans\",\n \"inum=1800.4601AA,ou=scopes,o=jans\",\n \"inum=1800.A9B842,ou=scopes,o=jans\",\n \"inum=1800.864485,ou=scopes,o=jans\",\n \"inum=1800.F0B654,ou=scopes,o=jans\",\n \"inum=1800.45F1D7,ou=scopes,o=jans\",\n \"inum=1800.B78FA5,ou=scopes,o=jans\",\n \"inum=1800.E3D7E0,ou=scopes,o=jans\",\n \"inum=1800.E212DC,ou=scopes,o=jans\",\n \"inum=1800.94F80F,ou=scopes,o=jans\",\n \"inum=1800.9F96F3,ou=scopes,o=jans\",\n \"inum=1800.CB50EC,ou=scopes,o=jans\",\n \"inum=1800.1CA946,ou=scopes,o=jans\",\n \"inum=1800.18231E,ou=scopes,o=jans\",\n \"inum=1800.C25D78,ou=scopes,o=jans\",\n \"inum=1800.12B340,ou=scopes,o=jans\",\n \"inum=1800.7A78C3,ou=scopes,o=jans\",\n \"inum=1800.ECB839,ou=scopes,o=jans\",\n \"inum=1800.62579C,ou=scopes,o=jans\",\n \"inum=1800.29B156,ou=scopes,o=jans\",\n \"inum=1800.9DC774,ou=scopes,o=jans\",\n \"inum=1800.71BA21,ou=scopes,o=jans\",\n \"inum=1800.FC35D2,ou=scopes,o=jans\",\n \"inum=1800.F8CA5F,ou=scopes,o=jans\",\n \"inum=1800.D92553,ou=scopes,o=jans\",\n \"inum=1800.08CB80,ou=scopes,o=jans\",\n \"inum=1800.DF434B,ou=scopes,o=jans\",\n \"inum=1800.127954,ou=scopes,o=jans\",\n \"inum=1800.E7CB8C,ou=scopes,o=jans\",\n \"inum=C4F7,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Config Api Client\"\n ],\n \"value\": \"Jans Config Api Client\",\n \"displayValue\": \"Jans Config Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Config Api Client\",\n \"baseDn\": \"inum=1802.db19d013-bb63-42c4-8ce9-79a4aa58aa7b,ou=clients,o=jans\",\n \"inum\": \"1802.db19d013-bb63-42c4-8ce9-79a4aa58aa7b\"\n },\n {\n \"dn\": \"inum=1201.1d010784-b5bf-4813-8f49-cfea00f50498,ou=clients,o=jans\",\n \"clientSecret\": \"3r2aX1TUEEyX\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/.well-known/scim-configuration\"\n ],\n \"grantTypes\": [\n \"client_credentials\"\n ],\n \"applicationType\": \"native\",\n \"clientName\": {\n \"values\": {\n \"\": \"SCIM client\"\n },\n \"value\": \"SCIM client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=1200.487800,ou=scopes,o=jans\",\n \"inum=1200.9CEE5C,ou=scopes,o=jans\",\n \"inum=1200.B6AE14,ou=scopes,o=jans\",\n \"inum=1200.2F4765,ou=scopes,o=jans\",\n \"inum=1200.5BFEE9,ou=scopes,o=jans\",\n \"inum=1200.E05ED3,ou=scopes,o=jans\",\n \"inum=1200.37F617,ou=scopes,o=jans\",\n \"inum=1200.585BE3,ou=scopes,o=jans\",\n \"inum=1200.CFB1B5,ou=scopes,o=jans\",\n \"inum=1200.B29D76,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"SCIM client\"\n ],\n \"value\": \"SCIM client\",\n \"displayValue\": \"SCIM client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"SCIM client\",\n \"baseDn\": \"inum=1201.1d010784-b5bf-4813-8f49-cfea00f50498,ou=clients,o=jans\",\n \"inum\": \"1201.1d010784-b5bf-4813-8f49-cfea00f50498\"\n },\n {\n \"dn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"M7plxxzCRxDN\",\n \"frontChannelLogoutUri\": \"http://localhost:4100/logout\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\",\n \"urn:ietf:params:oauth:grant-type:device_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Role Based Client\"\n },\n \"value\": \"Jans Role Based Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"userInfoSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"postLogoutRedirectUris\": [\n \"http://localhost:4100\",\n \"https://jans.server2/admin\"\n ],\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=C4F6,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=F0C4,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"accessTokenLifetime\": 2592000,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Role Based Client\"\n ],\n \"value\": \"Jans Role Based Client\",\n \"displayValue\": \"Jans Role Based Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": true,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": true,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"introspectionScripts\": [\n \"inum=A44E-4F3D,ou=scripts,o=jans\"\n ],\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Role Based Client\",\n \"baseDn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"inum\": \"2000.7810d591-69d3-458c-9309-4268085fe71c\"\n },\n {\n \"dn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"clientSecret\": \"FF81-2D39-jans\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/jans-auth-rp/home.htm\",\n \"https://client.example.com/cb\",\n \"https://client.example.com/cb1\",\n \"https://client.example.com/cb2\"\n ],\n \"claimRedirectUris\": [\n \"https://jans.server2/jans-auth/restv1/uma/gather_claims\"\n ],\n \"responseTypes\": [\n \"token\",\n \"code\",\n \"id_token\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Test Client (don't remove)\"\n },\n \"value\": \"Jans Test Client (don't remove)\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=F0C4,ou=scopes,o=jans\",\n \"inum=10B2,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=341A,ou=scopes,o=jans\",\n \"inum=6D99,ou=scopes,o=jans\"\n ],\n \"trustedClient\": true,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Test Client (don't remove)\"\n ],\n \"value\": \"Jans Test Client (don't remove)\",\n \"displayValue\": \"Jans Test Client (don't remove)\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Test Client (don't remove)\",\n \"baseDn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"inum\": \"FF81-2D39\"\n },\n {\n \"dn\": \"inum=AB77-1A2B,ou=clients,o=jans\",\n \"clientSecret\": \"AB77-1A2B-jans\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://client.example.com/cb\"\n ],\n \"claimRedirectUris\": [\n \"https://jans.server2/jans-auth/restv1/uma/gather_claims\"\n ],\n \"responseTypes\": [\n \"code\",\n \"id_token\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Test Resource Server Client (don't remove)\"\n },\n \"value\": \"Jans Test Resource Server Client (don't remove)\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=6D99,ou=scopes,o=jans\",\n \"inum=7D90,ou=scopes,o=jans\"\n ],\n \"trustedClient\": true,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Test Resource Server Client (don't remove)\"\n ],\n \"value\": \"Jans Test Resource Server Client (don't remove)\",\n \"displayValue\": \"Jans Test Resource Server Client (don't remove)\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Test Resource Server Client (don't remove)\",\n \"baseDn\": \"inum=AB77-1A2B,ou=clients,o=jans\",\n \"inum\": \"AB77-1A2B\"\n },\n {\n \"dn\": \"inum=3E20,ou=clients,o=jans\",\n \"clientSecret\": \"3E20-jans\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://client.example.com/cb\"\n ],\n \"responseTypes\": [\n \"code\",\n \"id_token\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Test Requesting Party Client (don't remove)\"\n },\n \"value\": \"Jans Test Requesting Party Client (don't remove)\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"trustedClient\": true,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Test Requesting Party Client (don't remove)\"\n ],\n \"value\": \"Jans Test Requesting Party Client (don't remove)\",\n \"displayValue\": \"Jans Test Requesting Party Client (don't remove)\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Test Requesting Party Client (don't remove)\",\n \"baseDn\": \"inum=3E20,ou=clients,o=jans\",\n \"inum\": \"3E20\"\n },\n {\n \"dn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"be8af842-28c7-4894-b942-15df1325bc9b\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test1234\"\n },\n \"value\": \"test1234\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test1234\"\n ],\n \"value\": \"test1234\",\n \"displayValue\": \"test1234\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test1234\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test1234\",\n \"baseDn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"inum\": \"b3c1d295-42e5-425e-b021-7b2fd3206437\"\n },\n {\n \"dn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"745950bb-4e07-4d3b-ae7d-82d03ee070cd\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test12345\"\n },\n \"value\": \"test12345\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test12345\"\n ],\n \"value\": \"test12345\",\n \"displayValue\": \"test12345\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test12345\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test12345\",\n \"baseDn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"inum\": \"1bb91a73-6899-440f-ac27-c04429671522\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/openid/clients.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "OAuth - OpenID Connect - Clients" - ], - "summary": "Update OpenId Connect client", - "description": "Update OpenId Connect client", - "operationId": "put-oauth-openid-client", - "requestBody": { - "description": "OpenID Connect Client object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"dn\": \"inum=f8c1a111-0919-47e8-a4d4-f7c18f73a644,ou=clients,o=jans\",\n \"baseDn\": \"inum=f8c1a111-0919-47e8-a4d4-f7c18f73a644,ou=clients,o=jans\",\n \"inum\": \"f8c1a111-0919-47e8-a4d4-f7c18f73a644\",\n \"deletable\": false,\n \"clientSecret\": \"test1234\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": \"\",\n \"logoUri\": \"\",\n \"clientUri\": \"\",\n \"policyUri\":\"\",\n \"tosUri\": \"\",\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Api Client\"\n ],\n \"value\": \"Api Client\",\n \"displayValue\": \"Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Api Client\"\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"WZMK8thDpvw1xtE0N+SbXA==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Config Api Client\"\n },\n \"value\": \"Jans Config Api Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=1200.487800,ou=scopes,o=jans\",\n \"inum=1200.9CEE5C,ou=scopes,o=jans\",\n \"inum=1800.FFE5C0,ou=scopes,o=jans\",\n \"inum=1800.472951,ou=scopes,o=jans\",\n \"inum=1800.556F45,ou=scopes,o=jans\",\n \"inum=1800.77FB4F,ou=scopes,o=jans\",\n \"inum=1800.AA8DFE,ou=scopes,o=jans\",\n \"inum=1800.CD5B72,ou=scopes,o=jans\",\n \"inum=1800.CBCF52,ou=scopes,o=jans\",\n \"inum=1800.12284F,ou=scopes,o=jans\",\n \"inum=1800.141B26,ou=scopes,o=jans\",\n \"inum=1800.A018AC,ou=scopes,o=jans\",\n \"inum=1800.6E4456,ou=scopes,o=jans\",\n \"inum=1800.55499D,ou=scopes,o=jans\",\n \"inum=1800.E730AA,ou=scopes,o=jans\",\n \"inum=1800.097318,ou=scopes,o=jans\",\n \"inum=1800.04CF24,ou=scopes,o=jans\",\n \"inum=1800.F963F9,ou=scopes,o=jans\",\n \"inum=1800.31F580,ou=scopes,o=jans\",\n \"inum=1800.E512E3,ou=scopes,o=jans\",\n \"inum=1800.E65DC6,ou=scopes,o=jans\",\n \"inum=1800.3C1F46,ou=scopes,o=jans\",\n \"inum=1800.20D48C,ou=scopes,o=jans\",\n \"inum=1800.4601AA,ou=scopes,o=jans\",\n \"inum=1800.A9B842,ou=scopes,o=jans\",\n \"inum=1800.864485,ou=scopes,o=jans\",\n \"inum=1800.F0B654,ou=scopes,o=jans\",\n \"inum=1800.45F1D7,ou=scopes,o=jans\",\n \"inum=1800.B78FA5,ou=scopes,o=jans\",\n \"inum=1800.E3D7E0,ou=scopes,o=jans\",\n \"inum=1800.E212DC,ou=scopes,o=jans\",\n \"inum=1800.94F80F,ou=scopes,o=jans\",\n \"inum=1800.9F96F3,ou=scopes,o=jans\",\n \"inum=1800.CB50EC,ou=scopes,o=jans\",\n \"inum=1800.1CA946,ou=scopes,o=jans\",\n \"inum=1800.18231E,ou=scopes,o=jans\",\n \"inum=1800.C25D78,ou=scopes,o=jans\",\n \"inum=1800.12B340,ou=scopes,o=jans\",\n \"inum=1800.7A78C3,ou=scopes,o=jans\",\n \"inum=1800.ECB839,ou=scopes,o=jans\",\n \"inum=1800.62579C,ou=scopes,o=jans\",\n \"inum=1800.29B156,ou=scopes,o=jans\",\n \"inum=1800.9DC774,ou=scopes,o=jans\",\n \"inum=1800.71BA21,ou=scopes,o=jans\",\n \"inum=1800.FC35D2,ou=scopes,o=jans\",\n \"inum=1800.F8CA5F,ou=scopes,o=jans\",\n \"inum=1800.D92553,ou=scopes,o=jans\",\n \"inum=1800.08CB80,ou=scopes,o=jans\",\n \"inum=1800.DF434B,ou=scopes,o=jans\",\n \"inum=1800.127954,ou=scopes,o=jans\",\n \"inum=1800.E7CB8C,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Config Api Client\"\n ],\n \"value\": \"Jans Config Api Client\",\n \"displayValue\": \"Jans Config Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Config Api Client\",\n \"baseDn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum\": \"1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/openid/clients.write" - ] - } - ] - }, - "post": { - "tags": [ - "OAuth - OpenID Connect - Clients" - ], - "summary": "Create new OpenId Connect client", - "description": "Create new OpenId Connect client", - "operationId": "post-oauth-openid-client", - "requestBody": { - "description": "OpenID Connect Client object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"deletable\": false,\n \"clientSecret\": \"test1234\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": \"\",\n \"logoUri\": \"\",\n \"clientUri\": \"\",\n \"policyUri\":\"\",\n \"tosUri\": \"\",\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Api Client\"\n ],\n \"value\": \"Api Client\",\n \"displayValue\": \"Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Api Client\"\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"WZMK8thDpvw1xtE0N+SbXA==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Config Api Client\"\n },\n \"value\": \"Jans Config Api Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=1200.487800,ou=scopes,o=jans\",\n \"inum=1200.9CEE5C,ou=scopes,o=jans\",\n \"inum=1800.FFE5C0,ou=scopes,o=jans\",\n \"inum=1800.472951,ou=scopes,o=jans\",\n \"inum=1800.556F45,ou=scopes,o=jans\",\n \"inum=1800.77FB4F,ou=scopes,o=jans\",\n \"inum=1800.AA8DFE,ou=scopes,o=jans\",\n \"inum=1800.CD5B72,ou=scopes,o=jans\",\n \"inum=1800.CBCF52,ou=scopes,o=jans\",\n \"inum=1800.12284F,ou=scopes,o=jans\",\n \"inum=1800.141B26,ou=scopes,o=jans\",\n \"inum=1800.A018AC,ou=scopes,o=jans\",\n \"inum=1800.6E4456,ou=scopes,o=jans\",\n \"inum=1800.55499D,ou=scopes,o=jans\",\n \"inum=1800.E730AA,ou=scopes,o=jans\",\n \"inum=1800.097318,ou=scopes,o=jans\",\n \"inum=1800.04CF24,ou=scopes,o=jans\",\n \"inum=1800.F963F9,ou=scopes,o=jans\",\n \"inum=1800.31F580,ou=scopes,o=jans\",\n \"inum=1800.E512E3,ou=scopes,o=jans\",\n \"inum=1800.E65DC6,ou=scopes,o=jans\",\n \"inum=1800.3C1F46,ou=scopes,o=jans\",\n \"inum=1800.20D48C,ou=scopes,o=jans\",\n \"inum=1800.4601AA,ou=scopes,o=jans\",\n \"inum=1800.A9B842,ou=scopes,o=jans\",\n \"inum=1800.864485,ou=scopes,o=jans\",\n \"inum=1800.F0B654,ou=scopes,o=jans\",\n \"inum=1800.45F1D7,ou=scopes,o=jans\",\n \"inum=1800.B78FA5,ou=scopes,o=jans\",\n \"inum=1800.E3D7E0,ou=scopes,o=jans\",\n \"inum=1800.E212DC,ou=scopes,o=jans\",\n \"inum=1800.94F80F,ou=scopes,o=jans\",\n \"inum=1800.9F96F3,ou=scopes,o=jans\",\n \"inum=1800.CB50EC,ou=scopes,o=jans\",\n \"inum=1800.1CA946,ou=scopes,o=jans\",\n \"inum=1800.18231E,ou=scopes,o=jans\",\n \"inum=1800.C25D78,ou=scopes,o=jans\",\n \"inum=1800.12B340,ou=scopes,o=jans\",\n \"inum=1800.7A78C3,ou=scopes,o=jans\",\n \"inum=1800.ECB839,ou=scopes,o=jans\",\n \"inum=1800.62579C,ou=scopes,o=jans\",\n \"inum=1800.29B156,ou=scopes,o=jans\",\n \"inum=1800.9DC774,ou=scopes,o=jans\",\n \"inum=1800.71BA21,ou=scopes,o=jans\",\n \"inum=1800.FC35D2,ou=scopes,o=jans\",\n \"inum=1800.F8CA5F,ou=scopes,o=jans\",\n \"inum=1800.D92553,ou=scopes,o=jans\",\n \"inum=1800.08CB80,ou=scopes,o=jans\",\n \"inum=1800.DF434B,ou=scopes,o=jans\",\n \"inum=1800.127954,ou=scopes,o=jans\",\n \"inum=1800.E7CB8C,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Config Api Client\"\n ],\n \"value\": \"Jans Config Api Client\",\n \"displayValue\": \"Jans Config Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Config Api Client\",\n \"baseDn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum\": \"1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/openid/clients.write" - ] - } - ] - } - }, - "/api/v1/openid/clients/{inum}": { - "get": { - "tags": [ - "OAuth - OpenID Connect - Clients" - ], - "summary": "Get OpenId Connect Client by Inum", - "description": "Get OpenId Connect Client by Inum", - "operationId": "get-oauth-openid-clients-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"WZMK8thDpvw1xtE0N+SbXA==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Config Api Client\"\n },\n \"value\": \"Jans Config Api Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=1200.487800,ou=scopes,o=jans\",\n \"inum=1200.9CEE5C,ou=scopes,o=jans\",\n \"inum=1800.FFE5C0,ou=scopes,o=jans\",\n \"inum=1800.472951,ou=scopes,o=jans\",\n \"inum=1800.556F45,ou=scopes,o=jans\",\n \"inum=1800.77FB4F,ou=scopes,o=jans\",\n \"inum=1800.AA8DFE,ou=scopes,o=jans\",\n \"inum=1800.CD5B72,ou=scopes,o=jans\",\n \"inum=1800.CBCF52,ou=scopes,o=jans\",\n \"inum=1800.12284F,ou=scopes,o=jans\",\n \"inum=1800.141B26,ou=scopes,o=jans\",\n \"inum=1800.A018AC,ou=scopes,o=jans\",\n \"inum=1800.6E4456,ou=scopes,o=jans\",\n \"inum=1800.55499D,ou=scopes,o=jans\",\n \"inum=1800.E730AA,ou=scopes,o=jans\",\n \"inum=1800.097318,ou=scopes,o=jans\",\n \"inum=1800.04CF24,ou=scopes,o=jans\",\n \"inum=1800.F963F9,ou=scopes,o=jans\",\n \"inum=1800.31F580,ou=scopes,o=jans\",\n \"inum=1800.E512E3,ou=scopes,o=jans\",\n \"inum=1800.E65DC6,ou=scopes,o=jans\",\n \"inum=1800.3C1F46,ou=scopes,o=jans\",\n \"inum=1800.20D48C,ou=scopes,o=jans\",\n \"inum=1800.4601AA,ou=scopes,o=jans\",\n \"inum=1800.A9B842,ou=scopes,o=jans\",\n \"inum=1800.864485,ou=scopes,o=jans\",\n \"inum=1800.F0B654,ou=scopes,o=jans\",\n \"inum=1800.45F1D7,ou=scopes,o=jans\",\n \"inum=1800.B78FA5,ou=scopes,o=jans\",\n \"inum=1800.E3D7E0,ou=scopes,o=jans\",\n \"inum=1800.E212DC,ou=scopes,o=jans\",\n \"inum=1800.94F80F,ou=scopes,o=jans\",\n \"inum=1800.9F96F3,ou=scopes,o=jans\",\n \"inum=1800.CB50EC,ou=scopes,o=jans\",\n \"inum=1800.1CA946,ou=scopes,o=jans\",\n \"inum=1800.18231E,ou=scopes,o=jans\",\n \"inum=1800.C25D78,ou=scopes,o=jans\",\n \"inum=1800.12B340,ou=scopes,o=jans\",\n \"inum=1800.7A78C3,ou=scopes,o=jans\",\n \"inum=1800.ECB839,ou=scopes,o=jans\",\n \"inum=1800.62579C,ou=scopes,o=jans\",\n \"inum=1800.29B156,ou=scopes,o=jans\",\n \"inum=1800.9DC774,ou=scopes,o=jans\",\n \"inum=1800.71BA21,ou=scopes,o=jans\",\n \"inum=1800.FC35D2,ou=scopes,o=jans\",\n \"inum=1800.F8CA5F,ou=scopes,o=jans\",\n \"inum=1800.D92553,ou=scopes,o=jans\",\n \"inum=1800.08CB80,ou=scopes,o=jans\",\n \"inum=1800.DF434B,ou=scopes,o=jans\",\n \"inum=1800.127954,ou=scopes,o=jans\",\n \"inum=1800.E7CB8C,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Config Api Client\"\n ],\n \"value\": \"Jans Config Api Client\",\n \"displayValue\": \"Jans Config Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Config Api Client\",\n \"baseDn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum\": \"1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/openid/clients.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "OAuth - OpenID Connect - Clients" - ], - "summary": "Delete OpenId Connect client", - "description": "Delete OpenId Connect client", - "operationId": "delete-oauth-openid-client-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/openid/clients.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "OAuth - OpenID Connect - Clients" - ], - "summary": "Patch OpenId Connect client", - "description": "Patch OpenId Connect client", - "operationId": "patch-oauth-openid-client-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/responseTypes\", \"value\":[\"code\",\"token\"]}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Client" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"WZMK8thDpvw1xtE0N+SbXA==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin-ui\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Config Api Client\"\n },\n \"value\": \"Jans Config Api Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=1200.487800,ou=scopes,o=jans\",\n \"inum=1200.9CEE5C,ou=scopes,o=jans\",\n \"inum=1800.FFE5C0,ou=scopes,o=jans\",\n \"inum=1800.472951,ou=scopes,o=jans\",\n \"inum=1800.556F45,ou=scopes,o=jans\",\n \"inum=1800.77FB4F,ou=scopes,o=jans\",\n \"inum=1800.AA8DFE,ou=scopes,o=jans\",\n \"inum=1800.CD5B72,ou=scopes,o=jans\",\n \"inum=1800.CBCF52,ou=scopes,o=jans\",\n \"inum=1800.12284F,ou=scopes,o=jans\",\n \"inum=1800.141B26,ou=scopes,o=jans\",\n \"inum=1800.A018AC,ou=scopes,o=jans\",\n \"inum=1800.6E4456,ou=scopes,o=jans\",\n \"inum=1800.55499D,ou=scopes,o=jans\",\n \"inum=1800.E730AA,ou=scopes,o=jans\",\n \"inum=1800.097318,ou=scopes,o=jans\",\n \"inum=1800.04CF24,ou=scopes,o=jans\",\n \"inum=1800.F963F9,ou=scopes,o=jans\",\n \"inum=1800.31F580,ou=scopes,o=jans\",\n \"inum=1800.E512E3,ou=scopes,o=jans\",\n \"inum=1800.E65DC6,ou=scopes,o=jans\",\n \"inum=1800.3C1F46,ou=scopes,o=jans\",\n \"inum=1800.20D48C,ou=scopes,o=jans\",\n \"inum=1800.4601AA,ou=scopes,o=jans\",\n \"inum=1800.A9B842,ou=scopes,o=jans\",\n \"inum=1800.864485,ou=scopes,o=jans\",\n \"inum=1800.F0B654,ou=scopes,o=jans\",\n \"inum=1800.45F1D7,ou=scopes,o=jans\",\n \"inum=1800.B78FA5,ou=scopes,o=jans\",\n \"inum=1800.E3D7E0,ou=scopes,o=jans\",\n \"inum=1800.E212DC,ou=scopes,o=jans\",\n \"inum=1800.94F80F,ou=scopes,o=jans\",\n \"inum=1800.9F96F3,ou=scopes,o=jans\",\n \"inum=1800.CB50EC,ou=scopes,o=jans\",\n \"inum=1800.1CA946,ou=scopes,o=jans\",\n \"inum=1800.18231E,ou=scopes,o=jans\",\n \"inum=1800.C25D78,ou=scopes,o=jans\",\n \"inum=1800.12B340,ou=scopes,o=jans\",\n \"inum=1800.7A78C3,ou=scopes,o=jans\",\n \"inum=1800.ECB839,ou=scopes,o=jans\",\n \"inum=1800.62579C,ou=scopes,o=jans\",\n \"inum=1800.29B156,ou=scopes,o=jans\",\n \"inum=1800.9DC774,ou=scopes,o=jans\",\n \"inum=1800.71BA21,ou=scopes,o=jans\",\n \"inum=1800.FC35D2,ou=scopes,o=jans\",\n \"inum=1800.F8CA5F,ou=scopes,o=jans\",\n \"inum=1800.D92553,ou=scopes,o=jans\",\n \"inum=1800.08CB80,ou=scopes,o=jans\",\n \"inum=1800.DF434B,ou=scopes,o=jans\",\n \"inum=1800.127954,ou=scopes,o=jans\",\n \"inum=1800.E7CB8C,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Config Api Client\"\n ],\n \"value\": \"Jans Config Api Client\",\n \"displayValue\": \"Jans Config Api Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Config Api Client\",\n \"baseDn\": \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum\": \"1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/openid/clients.write" - ] - } - ] - } - }, - "/api/v1/jans-auth-server/config": { - "get": { - "tags": [ - "Configuration \u2013 Properties" - ], - "summary": "Gets all Jans authorization server configuration properties.", - "description": "Gets all Jans authorization server configuration properties.", - "operationId": "get-properties", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppConfiguration" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/properties.readonly" - ] - } - ] - }, - "patch": { - "tags": [ - "Configuration \u2013 Properties" - ], - "summary": "Partially modifies Jans authorization server Application configuration properties.", - "description": "Partially modifies Jans authorization server AppConfiguration properties.", - "operationId": "patch-properties", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[\n{\"op\":\"add\",\"path\":\"/authenticationFilters\",\"value\":[{}]},\n{\"op\":\"replace\",\"path\":\"/useNestedJwtDuringEncryption\",\"value\":\"true\"},\n{\"op\":\"add\",\"path\":\"/loggingLevel\",\"value\":\"TRACE\"}\n]\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppConfiguration" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/properties.write" - ] - } - ] - } - }, - "/api/v1/jans-auth-server/config/persistence": { - "get": { - "tags": [ - "Configuration \u2013 Properties" - ], - "summary": "Returns persistence type configured for Jans authorization server.", - "description": "Returns persistence type configured for Jans authorization server.", - "operationId": "get-properties-persistence", - "responses": { - "200": { - "description": "Jans Authorization Server persistence type", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PersistenceConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"persistenceType\": \"ldap\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/properties.readonly" - ] - } - ] - } - }, - "/api/v1/config/smtp": { - "get": { - "tags": [ - "Configuration \u2013 SMTP" - ], - "summary": "Returns SMTP server configuration", - "description": "Returns SMTP server configuration", - "operationId": "get-config-smtp", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SmtpConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"valid\": false,\n \"port\": 0,\n \"requires_ssl\": false,\n \"trust_host\": false,\n \"requires_authentication\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/smtp.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Configuration \u2013 SMTP" - ], - "summary": "Updates SMTP server configuration", - "description": "Updates SMTP server configuration", - "operationId": "put-config-smtp", - "requestBody": { - "description": "SmtpConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SmtpConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"valid\": true,\n \"host\": \"localhost\",\n \"port\": 260,\n \"requires_ssl\": true,\n \"trust_host\": true,\n \"from_name\": \"John\",\n \"from_email_address\": \"john@grow.org\",\n \"requires_authentication\": true,\n \"user_name\": \"smtp_user\",\n \"password\": \"password\"\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SmtpConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"valid\": false,\n \"port\": 0,\n \"requires_ssl\": false,\n \"trust_host\": false,\n \"requires_authentication\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/smtp.write" - ] - } - ] - }, - "post": { - "tags": [ - "Configuration \u2013 SMTP" - ], - "summary": "Adds SMTP server configuration", - "description": "Adds SMTP server configuration", - "operationId": "post-config-smtp", - "requestBody": { - "description": "SmtpConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SmtpConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"valid\": true,\n \"host\": \"localhost\",\n \"port\": 260,\n \"requires_ssl\": true,\n \"trust_host\": true,\n \"from_name\": \"John\",\n \"from_email_address\": \"john@grow.org\",\n \"requires_authentication\": true,\n \"user_name\": \"smtp_user\",\n \"password\": \"password\"\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SmtpConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"valid\": false,\n \"port\": 0,\n \"requires_ssl\": false,\n \"trust_host\": false,\n \"requires_authentication\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/smtp.write" - ] - } - ] - }, - "delete": { - "tags": [ - "Configuration \u2013 SMTP" - ], - "summary": "Deletes SMTP server configuration", - "description": "Deletes SMTP server configuration", - "operationId": "delete-config-smtp", - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/smtp.delete" - ] - } - ] - } - }, - "/api/v1/config/smtp/test": { - "post": { - "tags": [ - "Configuration \u2013 SMTP" - ], - "summary": "Test SMTP server configuration", - "description": "Test SMTP server configuration", - "operationId": "test-config-smtp", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "boolean", - "description": "boolean value true if successful" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/smtp.readonly" - ] - } - ] - } - }, - "/api/v1/config/scripts": { - "get": { - "tags": [ - "Custom Scripts" - ], - "summary": "Fetch custom script by name", - "description": "Gets a list of custom scripts", - "operationId": "get-config-scripts", - "parameters": [ - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string", - "default": "inum" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string", - "default": "ascending" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 37,\n \"entriesCount\": 2,\n \"entries\": [\n {\n \"dn\": \"inum=0300-BA90,ou=scripts,o=jans\",\n \"inum\": \"0300-BA90\",\n \"name\": \"discovery_java_params\",\n \"description\": \"Java Custom Sample Script\",\n \"script\": \"/* Copyright (c) 2022, Gluu\\n Author: Yuriy Z\\n */\\n\\nimport io.jans.model.SimpleCustomProperty;\\nimport io.jans.model.custom.script.model.CustomScript;\\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\\nimport io.jans.service.custom.script.CustomScriptManager;\\nimport org.slf4j.Logger;\\nimport org.slf4j.LoggerFactory;\\nimport org.json.JSONObject;\\n\\nimport java.util.Map;\\n\\npublic class Discovery implements DiscoveryType {\\n\\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\\n\\n @Override\\n public boolean init(Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean init(CustomScript customScript, Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean destroy(Map configurationAttributes) {\\n log.info(\\\"Destroy of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public int getApiVersion() {\\n log.info(\\\"getApiVersion Discovery Java custom script: 11\\\");\\n return 11;\\n }\\n\\n @Override\\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\\n scriptLogger.info(\\\"write to script logger\\\");\\n JSONObject response = (JSONObject) responseAsJsonObject;\\n response.accumulate(\\\"key_from_java\\\", \\\"value_from_script_on_java\\\");\\n return true;\\n }\\n}\\n\",\n \"scriptType\": \"discovery\",\n \"programmingLanguage\": \"java\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 1,\n \"revision\": 11,\n \"enabled\": true,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=0300-BA90,ou=scripts,o=jans\"\n },\n {\n \"dn\": \"inum=031C-4A65,ou=scripts,o=jans\",\n \"inum\": \"031C-4A65\",\n \"name\": \"id_generator\",\n \"description\": \"Sample Id Generator script\",\n \"script\": \"# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\\n# Copyright (c) 2016, Janssen\\n#\\n# Author: Yuriy Movchan\\n#\\n\\nfrom io.jans.model.custom.script.type.id import IdGeneratorType\\nfrom io.jans.util import StringHelper, ArrayHelper\\nfrom java.util import Arrays, ArrayList\\n\\nimport java\\n\\nclass IdGenerator(IdGeneratorType):\\n def __init__(self, currentTimeMillis):\\n self.currentTimeMillis = currentTimeMillis\\n\\n def init(self, customScript, configurationAttributes):\\n print \\\"Id generator. Initialization\\\"\\n print \\\"Id generator. Initialized successfully\\\"\\n\\n return True \\n\\n def destroy(self, configurationAttributes):\\n print \\\"Id generator. Destroy\\\"\\n print \\\"Id generator. Destroyed successfully\\\"\\n return True \\n\\n def getApiVersion(self):\\n return 11\\n\\n # Id generator init method\\n # appId is application Id\\n # idType is Id Type\\n # idPrefix is Id Prefix\\n # user is io.jans.oxtrust.model.JanssenCustomPerson\\n # configurationAttributes is java.util.Map\\n def generateId(self, appId, idType, idPrefix, configurationAttributes):\\n print \\\"Id generator. Generate Id\\\"\\n print \\\"Id generator. Generate Id. AppId: '\\\", appId, \\\"', IdType: '\\\", idType, \\\"', IdPrefix: '\\\", idPrefix, \\\"'\\\"\\n\\n # Return None or empty string to trigger default Id generation method\\n return None\\n\",\n \"scriptType\": \"id_generator\",\n \"programmingLanguage\": \"python\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 100,\n \"revision\": 1,\n \"enabled\": false,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=031C-4A65,ou=scripts,o=jans\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Custom Scripts" - ], - "summary": "Updates a custom script", - "description": "Updates a custom script", - "operationId": "put-config-scripts", - "requestBody": { - "description": "CustomScript object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"name\": \"test_application_session_test\",\n \"description\": \"Sample Application Session script\",\n \"script\": \"# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\\n# Copyright (c) 2016, Janssen\\n#\\n# Author: Yuriy Movchan\\n#\\n\\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\\nfrom io.jans.service.cdi.util import CdiUtil\\nfrom io.jans.persist import PersistenceEntryManager\\nfrom io.jans.as.model.config import StaticConfiguration\\nfrom io.jans.as.model.ldap import TokenEntity\\nfrom jakarta.faces.application import FacesMessage\\nfrom io.jans.jsf2.message import FacesMessages\\nfrom io.jans.util import StringHelper, ArrayHelper\\nfrom io.jans.as.model.config import Constants\\nfrom java.util import Arrays, ArrayList\\nfrom io.jans.as.service.external.session import SessionEventType\\n\\nimport java\\n\\nclass ApplicationSession(ApplicationSessionType):\\n def __init__(self, currentTimeMillis):\\n self.currentTimeMillis = currentTimeMillis\\n\\n def init(self, customScript, configurationAttributes):\\n print \\\"Application session. Initialization\\\"\\n\\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\\n\\n print \\\"Application session. Initialized successfully\\\"\\n\\n return True \\n\\n def destroy(self, configurationAttributes):\\n print \\\"Application session. Destroy\\\"\\n print \\\"Application session. Destroyed successfully\\\"\\n return True \\n\\n def getApiVersion(self):\\n return 11\\n\\n # Called each time specific session event occurs\\n # event is io.jans.as.service.external.session.SessionEvent\\n def onEvent(self, event):\\n if event.getType() == SessionEventType.AUTHENTICATED:\\n print \\\"Session is authenticated, session: \\\" + event.getSessionId().getId()\\n return\\n\\n # Application calls it at start session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def startSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session\\\"\\n\\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\\n\\n first_session = self.isFirstSession(user_name)\\n if not first_session:\\n facesMessages = CdiUtil.bean(FacesMessages)\\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \\\"Please, end active session first!\\\")\\n return False\\n\\n print \\\"Application session. External session started successfully\\\"\\n return True\\n\\n # Application calls it at end session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def endSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session end\\\"\\n\\n print \\\"Application session. External session ended successfully\\\"\\n return True\\n\\n # Application calls it during /session/active endpoint call to modify response if needed\\n # jsonArray is org.json.JSONArray\\n # context is io.jans.as.server.model.common.ExecutionContext\\n def modifyActiveSessionsResponse(self, jsonArray, context):\\n return False\\n\\n def isFirstSession(self, user_name):\\n tokenLdap = TokenEntity()\\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\\n tokenLdap.setUserId(user_name)\\n\\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\\n print \\\"Application session. isFirstSession. Get result: '%s'\\\" % tokenLdapList\\n\\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\\n print \\\"Application session. isFirstSession: False\\\"\\n return False\\n\\n print \\\"Application session. isFirstSession: True\\\"\\n return True\\n\",\n \"scriptType\": \"application_session\",\n \"programmingLanguage\": \"python\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 800,\n \"revision\": 8,\n \"enabled\": false,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\"\n }\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=4144edf6-af99-451d-be29-f3eb5c0e9143,ou=scripts,o=jans\",\n \"inum\": \"4144edf6-af99-451d-be29-f3eb5c0e9143\",\n \"name\": \"test_application_session_test\",\n \"description\": \"Sample Application Session script\",\n \"script\": \"# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\\n# Copyright (c) 2016, Janssen\\n#\\n# Author: Yuriy Movchan\\n#\\n\\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\\nfrom io.jans.service.cdi.util import CdiUtil\\nfrom io.jans.persist import PersistenceEntryManager\\nfrom io.jans.as.model.config import StaticConfiguration\\nfrom io.jans.as.model.ldap import TokenEntity\\nfrom jakarta.faces.application import FacesMessage\\nfrom io.jans.jsf2.message import FacesMessages\\nfrom io.jans.util import StringHelper, ArrayHelper\\nfrom io.jans.as.model.config import Constants\\nfrom java.util import Arrays, ArrayList\\nfrom io.jans.as.service.external.session import SessionEventType\\n\\nimport java\\n\\nclass ApplicationSession(ApplicationSessionType):\\n def __init__(self, currentTimeMillis):\\n self.currentTimeMillis = currentTimeMillis\\n\\n def init(self, customScript, configurationAttributes):\\n print \\\"Application session. Initialization\\\"\\n\\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\\n\\n print \\\"Application session. Initialized successfully\\\"\\n\\n return True \\n\\n def destroy(self, configurationAttributes):\\n print \\\"Application session. Destroy\\\"\\n print \\\"Application session. Destroyed successfully\\\"\\n return True \\n\\n def getApiVersion(self):\\n return 11\\n\\n # Called each time specific session event occurs\\n # event is io.jans.as.service.external.session.SessionEvent\\n def onEvent(self, event):\\n if event.getType() == SessionEventType.AUTHENTICATED:\\n print \\\"Session is authenticated, session: \\\" + event.getSessionId().getId()\\n return\\n\\n # Application calls it at start session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def startSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session\\\"\\n\\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\\n\\n first_session = self.isFirstSession(user_name)\\n if not first_session:\\n facesMessages = CdiUtil.bean(FacesMessages)\\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \\\"Please, end active session first!\\\")\\n return False\\n\\n print \\\"Application session. External session started successfully\\\"\\n return True\\n\\n # Application calls it at end session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def endSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session end\\\"\\n\\n print \\\"Application session. External session ended successfully\\\"\\n return True\\n\\n # Application calls it during /session/active endpoint call to modify response if needed\\n # jsonArray is org.json.JSONArray\\n # context is io.jans.as.server.model.common.ExecutionContext\\n def modifyActiveSessionsResponse(self, jsonArray, context):\\n return False\\n\\n def isFirstSession(self, user_name):\\n tokenLdap = TokenEntity()\\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\\n tokenLdap.setUserId(user_name)\\n\\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\\n print \\\"Application session. isFirstSession. Get result: '%s'\\\" % tokenLdapList\\n\\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\\n print \\\"Application session. isFirstSession: False\\\"\\n return False\\n\\n print \\\"Application session. isFirstSession: True\\\"\\n return True\\n\",\n \"scriptType\": \"application_session\",\n \"programmingLanguage\": \"python\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 800,\n \"revision\": 8,\n \"enabled\": false,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=4144edf6-af99-451d-be29-f3eb5c0e9143,ou=scripts,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.write" - ] - } - ] - }, - "post": { - "tags": [ - "Custom Scripts" - ], - "summary": "Adds a new custom script", - "description": "Adds a new custom script", - "operationId": "post-config-scripts", - "requestBody": { - "description": "CustomScript object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"name\": \"test_application_session_test\",\n \"description\": \"Sample Application Session script\",\n \"script\": \"# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\\n# Copyright (c) 2016, Janssen\\n#\\n# Author: Yuriy Movchan\\n#\\n\\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\\nfrom io.jans.service.cdi.util import CdiUtil\\nfrom io.jans.persist import PersistenceEntryManager\\nfrom io.jans.as.model.config import StaticConfiguration\\nfrom io.jans.as.model.ldap import TokenEntity\\nfrom jakarta.faces.application import FacesMessage\\nfrom io.jans.jsf2.message import FacesMessages\\nfrom io.jans.util import StringHelper, ArrayHelper\\nfrom io.jans.as.model.config import Constants\\nfrom java.util import Arrays, ArrayList\\nfrom io.jans.as.service.external.session import SessionEventType\\n\\nimport java\\n\\nclass ApplicationSession(ApplicationSessionType):\\n def __init__(self, currentTimeMillis):\\n self.currentTimeMillis = currentTimeMillis\\n\\n def init(self, customScript, configurationAttributes):\\n print \\\"Application session. Initialization\\\"\\n\\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\\n\\n print \\\"Application session. Initialized successfully\\\"\\n\\n return True \\n\\n def destroy(self, configurationAttributes):\\n print \\\"Application session. Destroy\\\"\\n print \\\"Application session. Destroyed successfully\\\"\\n return True \\n\\n def getApiVersion(self):\\n return 11\\n\\n # Called each time specific session event occurs\\n # event is io.jans.as.service.external.session.SessionEvent\\n def onEvent(self, event):\\n if event.getType() == SessionEventType.AUTHENTICATED:\\n print \\\"Session is authenticated, session: \\\" + event.getSessionId().getId()\\n return\\n\\n # Application calls it at start session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def startSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session\\\"\\n\\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\\n\\n first_session = self.isFirstSession(user_name)\\n if not first_session:\\n facesMessages = CdiUtil.bean(FacesMessages)\\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \\\"Please, end active session first!\\\")\\n return False\\n\\n print \\\"Application session. External session started successfully\\\"\\n return True\\n\\n # Application calls it at end session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def endSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session end\\\"\\n\\n print \\\"Application session. External session ended successfully\\\"\\n return True\\n\\n # Application calls it during /session/active endpoint call to modify response if needed\\n # jsonArray is org.json.JSONArray\\n # context is io.jans.as.server.model.common.ExecutionContext\\n def modifyActiveSessionsResponse(self, jsonArray, context):\\n return False\\n\\n def isFirstSession(self, user_name):\\n tokenLdap = TokenEntity()\\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\\n tokenLdap.setUserId(user_name)\\n\\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\\n print \\\"Application session. isFirstSession. Get result: '%s'\\\" % tokenLdapList\\n\\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\\n print \\\"Application session. isFirstSession: False\\\"\\n return False\\n\\n print \\\"Application session. isFirstSession: True\\\"\\n return True\\n\",\n \"scriptType\": \"application_session\",\n \"programmingLanguage\": \"python\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 800,\n \"revision\": 8,\n \"enabled\": false,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\"\n }\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=4144edf6-af99-451d-be29-f3eb5c0e9143,ou=scripts,o=jans\",\n \"inum\": \"4144edf6-af99-451d-be29-f3eb5c0e9143\",\n \"name\": \"test_application_session_test\",\n \"description\": \"Sample Application Session script\",\n \"script\": \"# oxAuth is available under the MIT License (2008). See http://opensource.org/licenses/MIT for full text.\\n# Copyright (c) 2016, Janssen\\n#\\n# Author: Yuriy Movchan\\n#\\n\\nfrom io.jans.model.custom.script.type.session import ApplicationSessionType\\nfrom io.jans.service.cdi.util import CdiUtil\\nfrom io.jans.persist import PersistenceEntryManager\\nfrom io.jans.as.model.config import StaticConfiguration\\nfrom io.jans.as.model.ldap import TokenEntity\\nfrom jakarta.faces.application import FacesMessage\\nfrom io.jans.jsf2.message import FacesMessages\\nfrom io.jans.util import StringHelper, ArrayHelper\\nfrom io.jans.as.model.config import Constants\\nfrom java.util import Arrays, ArrayList\\nfrom io.jans.as.service.external.session import SessionEventType\\n\\nimport java\\n\\nclass ApplicationSession(ApplicationSessionType):\\n def __init__(self, currentTimeMillis):\\n self.currentTimeMillis = currentTimeMillis\\n\\n def init(self, customScript, configurationAttributes):\\n print \\\"Application session. Initialization\\\"\\n\\n self.entryManager = CdiUtil.bean(PersistenceEntryManager)\\n self.staticConfiguration = CdiUtil.bean(StaticConfiguration)\\n\\n print \\\"Application session. Initialized successfully\\\"\\n\\n return True \\n\\n def destroy(self, configurationAttributes):\\n print \\\"Application session. Destroy\\\"\\n print \\\"Application session. Destroyed successfully\\\"\\n return True \\n\\n def getApiVersion(self):\\n return 11\\n\\n # Called each time specific session event occurs\\n # event is io.jans.as.service.external.session.SessionEvent\\n def onEvent(self, event):\\n if event.getType() == SessionEventType.AUTHENTICATED:\\n print \\\"Session is authenticated, session: \\\" + event.getSessionId().getId()\\n return\\n\\n # Application calls it at start session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def startSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session\\\"\\n\\n user_name = sessionId.getSessionAttributes().get(Constants.AUTHENTICATED_USER)\\n\\n first_session = self.isFirstSession(user_name)\\n if not first_session:\\n facesMessages = CdiUtil.bean(FacesMessages)\\n facesMessages.add(FacesMessage.SEVERITY_ERROR, \\\"Please, end active session first!\\\")\\n return False\\n\\n print \\\"Application session. External session started successfully\\\"\\n return True\\n\\n # Application calls it at end session request to allow notify 3rd part systems\\n # httpRequest is jakarta.servlet.http.HttpServletRequest\\n # sessionId is io.jans.as.model.common.SessionId\\n # configurationAttributes is java.util.Map\\n def endSession(self, httpRequest, sessionId, configurationAttributes):\\n print \\\"Application session. Starting external session end\\\"\\n\\n print \\\"Application session. External session ended successfully\\\"\\n return True\\n\\n # Application calls it during /session/active endpoint call to modify response if needed\\n # jsonArray is org.json.JSONArray\\n # context is io.jans.as.server.model.common.ExecutionContext\\n def modifyActiveSessionsResponse(self, jsonArray, context):\\n return False\\n\\n def isFirstSession(self, user_name):\\n tokenLdap = TokenEntity()\\n tokenLdap.setDn(self.staticConfiguration.getBaseDn().getClients())\\n tokenLdap.setUserId(user_name)\\n\\n tokenLdapList = self.entryManager.findEntries(tokenLdap, 1)\\n print \\\"Application session. isFirstSession. Get result: '%s'\\\" % tokenLdapList\\n\\n if (tokenLdapList != None) and (tokenLdapList.size() > 0):\\n print \\\"Application session. isFirstSession: False\\\"\\n return False\\n\\n print \\\"Application session. isFirstSession: True\\\"\\n return True\\n\",\n \"scriptType\": \"application_session\",\n \"programmingLanguage\": \"python\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 800,\n \"revision\": 8,\n \"enabled\": false,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=4144edf6-af99-451d-be29-f3eb5c0e9143,ou=scripts,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.write" - ] - } - ] - } - }, - "/api/v1/config/scripts/{inum}": { - "delete": { - "tags": [ - "Custom Scripts" - ], - "summary": "Deletes a custom script", - "description": "Deletes a custom script", - "operationId": "delete-config-scripts-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "Custom Scripts" - ], - "summary": "Patches a custom script", - "description": "Patches a custom script", - "operationId": "patch-config-scripts-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch object", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/enabled\", \"value\":false},{ \"op\": \"replace\", \"path\": \"/revision\", \"value\":2}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.write" - ] - } - ] - } - }, - "/api/v1/config/scripts/inum/{inum}": { - "get": { - "tags": [ - "Custom Scripts" - ], - "summary": "Gets a script by Inum", - "description": "Gets a script by Inum", - "operationId": "get-config-scripts-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=0300-BA90,ou=scripts,o=jans\",\n \"inum\": \"0300-BA90\",\n \"name\": \"discovery_java_params\",\n \"description\": \"Java Custom Sample Script\",\n \"script\": \"/* Copyright (c) 2022, Gluu\\n Author: Yuriy Z\\n */\\n\\nimport io.jans.model.SimpleCustomProperty;\\nimport io.jans.model.custom.script.model.CustomScript;\\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\\nimport io.jans.service.custom.script.CustomScriptManager;\\nimport org.slf4j.Logger;\\nimport org.slf4j.LoggerFactory;\\nimport org.json.JSONObject;\\n\\nimport java.util.Map;\\n\\npublic class Discovery implements DiscoveryType {\\n\\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\\n\\n @Override\\n public boolean init(Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean init(CustomScript customScript, Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean destroy(Map configurationAttributes) {\\n log.info(\\\"Destroy of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public int getApiVersion() {\\n log.info(\\\"getApiVersion Discovery Java custom script: 11\\\");\\n return 11;\\n }\\n\\n @Override\\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\\n scriptLogger.info(\\\"write to script logger\\\");\\n JSONObject response = (JSONObject) responseAsJsonObject;\\n response.accumulate(\\\"key_from_java\\\", \\\"value_from_script_on_java\\\");\\n return true;\\n }\\n}\\n\",\n \"scriptType\": \"discovery\",\n \"programmingLanguage\": \"java\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 1,\n \"revision\": 11,\n \"enabled\": true,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=0300-BA90,ou=scripts,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.readonly" - ] - } - ] - } - }, - "/api/v1/config/scripts/name/{name}": { - "get": { - "tags": [ - "Custom Scripts" - ], - "summary": "Fetch custom script by name", - "description": "Fetch custom script by name", - "operationId": "get-custom-script-by-name", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "CustomScript", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScript" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=0300-BA90,ou=scripts,o=jans\",\n \"inum\": \"0300-BA90\",\n \"name\": \"discovery_java_params\",\n \"description\": \"Java Custom Sample Script\",\n \"script\": \"/* Copyright (c) 2022, Gluu\\n Author: Yuriy Z\\n */\\n\\nimport io.jans.model.SimpleCustomProperty;\\nimport io.jans.model.custom.script.model.CustomScript;\\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\\nimport io.jans.service.custom.script.CustomScriptManager;\\nimport org.slf4j.Logger;\\nimport org.slf4j.LoggerFactory;\\nimport org.json.JSONObject;\\n\\nimport java.util.Map;\\n\\npublic class Discovery implements DiscoveryType {\\n\\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\\n\\n @Override\\n public boolean init(Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean init(CustomScript customScript, Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean destroy(Map configurationAttributes) {\\n log.info(\\\"Destroy of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public int getApiVersion() {\\n log.info(\\\"getApiVersion Discovery Java custom script: 11\\\");\\n return 11;\\n }\\n\\n @Override\\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\\n scriptLogger.info(\\\"write to script logger\\\");\\n JSONObject response = (JSONObject) responseAsJsonObject;\\n response.accumulate(\\\"key_from_java\\\", \\\"value_from_script_on_java\\\");\\n return true;\\n }\\n}\\n\",\n \"scriptType\": \"discovery\",\n \"programmingLanguage\": \"java\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 1,\n \"revision\": 11,\n \"enabled\": true,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=0300-BA90,ou=scripts,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.readonly" - ] - } - ] - } - }, - "/api/v1/config/scripts/type/{type}": { - "get": { - "tags": [ - "Custom Scripts" - ], - "summary": "Gets list of scripts by type", - "description": "Gets list of scripts by type", - "operationId": "get-config-scripts-by-type", - "parameters": [ - { - "name": "type", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string", - "default": "inum" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string", - "default": "ascending" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 1,\n \"entriesCount\": 1,\n \"entries\": [\n {\n \"dn\": \"inum=0300-BA90,ou=scripts,o=jans\",\n \"inum\": \"0300-BA90\",\n \"name\": \"discovery_java_params\",\n \"description\": \"Java Custom Sample Script\",\n \"script\": \"/* Copyright (c) 2022, Gluu\\n Author: Yuriy Z\\n */\\n\\nimport io.jans.model.SimpleCustomProperty;\\nimport io.jans.model.custom.script.model.CustomScript;\\nimport io.jans.model.custom.script.type.discovery.DiscoveryType;\\nimport io.jans.service.custom.script.CustomScriptManager;\\nimport org.slf4j.Logger;\\nimport org.slf4j.LoggerFactory;\\nimport org.json.JSONObject;\\n\\nimport java.util.Map;\\n\\npublic class Discovery implements DiscoveryType {\\n\\n private static final Logger log = LoggerFactory.getLogger(Discovery.class);\\n private static final Logger scriptLogger = LoggerFactory.getLogger(CustomScriptManager.class);\\n\\n @Override\\n public boolean init(Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean init(CustomScript customScript, Map configurationAttributes) {\\n log.info(\\\"Init of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public boolean destroy(Map configurationAttributes) {\\n log.info(\\\"Destroy of Discovery Java custom script\\\");\\n return true;\\n }\\n\\n @Override\\n public int getApiVersion() {\\n log.info(\\\"getApiVersion Discovery Java custom script: 11\\\");\\n return 11;\\n }\\n\\n @Override\\n public boolean modifyResponse(Object responseAsJsonObject, Object context) {\\n scriptLogger.info(\\\"write to script logger\\\");\\n JSONObject response = (JSONObject) responseAsJsonObject;\\n response.accumulate(\\\"key_from_java\\\", \\\"value_from_script_on_java\\\");\\n return true;\\n }\\n}\\n\",\n \"scriptType\": \"discovery\",\n \"programmingLanguage\": \"java\",\n \"moduleProperties\": [\n {\n \"value1\": \"location_type\",\n \"value2\": \"ldap\"\n }\n ],\n \"level\": 1,\n \"revision\": 11,\n \"enabled\": true,\n \"modified\": false,\n \"internal\": false,\n \"locationType\": \"ldap\",\n \"baseDn\": \"inum=0300-BA90,ou=scripts,o=jans\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scripts.readonly" - ] - } - ] - } - }, - "/api/v1/jans-auth-server/health": { - "get": { - "tags": [ - "Auth Server Health - Check" - ], - "summary": "Returns auth server health status", - "description": "Returns auth server health status", - "operationId": "get-auth-server-health", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JsonNode" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"status\": \"running\",\n \"db_status\": \"online\"\n}\n" - } - } - } - } - }, - "500": { - "description": "InternalServerError" - } - } - } - }, - "/api/v1/config/jwks/{kid}": { - "get": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Get a JSON Web Key based on kid", - "description": "Get a JSON Web Key based on kid", - "operationId": "get-jwk-by-kid", - "parameters": [ - { - "name": "kid", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JSONWebKey" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"kid\": \"1230bfb-276a-44aa-a97d-667b57587108_sig_rs256\",\n \"kty\": \"RSA\",\n \"use\": \"sig\",\n \"alg\": \"RS256\",\n \"exp\": 1599751946863,\n \"x5c\": [\n \"A0GCSqGSIb3DQEBCwUAMCExHzAdBgNVBAMMFm94QXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjAwOTA4MTUzMjE3WhcNMjAwOTEwMTUzMjI2WjAhMR8wHQYDVQQDDBZveEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzj1NEHyGk/ywG25py2s/zVVrRggzRO0jE6VOUvqUzsEJwt1aszQ4onFu6vgtjNwq2ZmEFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN/d+tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW/e+/Wags/ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm/GpCASAk9ZD8Ebnmy9RM71zDCgmvq/hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr/DLR3SVyCYbKBbRQIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwDQYJKoZIhvcNAQELBQADggEBADaqrfVH1FX0FLp99TG9fHOiOMD12vsIPANb9QbIADineFrSvUI3zIX56PpvMT+EApaLPcIYSwG1YziWT1oGDGkfyinofSRGl4JcC63slChUBfjlBZlXTIlc7CJA7CfzO6BW3SvO0GPF0NStCUD9Ou4oOVaIc3XrPzhIAp71cF9iLFnQUK1hiD9NhQUm5v2Nq+sQdjAxSlqigXnc+rB9+V8snCkr9x9q1cysq1ZyCRT55psa53Irqtc50T2PHA6kyzEVW51+yFaZa8z+WMoofr6ndx2DFI7n5+8jFGs9WoP+/zV8E/XK61iy+EdXVjXQYVcArjEzeIahn8QOd/hUcfo=\"\n ],\n \"n\": \"EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ\",\n \"e\": \"AQAB\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Delete a JSON Web Key based on kid", - "description": "Delete a JSON Web Key based on kid", - "operationId": "delete-config-jwk-kid", - "parameters": [ - { - "name": "kid", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "406": { - "description": "Not Acceptable" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Patch a specific JSON Web Key based on kid", - "description": "Patch a specific JSON Web Key based on kid", - "operationId": "patch-config-jwk-kid", - "parameters": [ - { - "name": "kid", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch object", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[\n { \"op\": \"replace\", \"path\": \"/use\", \"value\":\"enc\"},\n { \"op\": \"replace\", \"path\": \"/e\", \"value\":\"Updated_XYZ\"}\n] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JSONWebKey" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"kid\": \"1230bfb-276a-44aa-a97d-667b57587108_sig_rs256\",\n \"kty\": \"RSA\",\n \"use\": \"enc\",\n \"alg\": \"RS256\",\n \"exp\": 1599751946863,\n \"x5c\": [\n \"A0GCSqGSIb3DQEBCwUAMCExHzAdBgNVBAMMFm94QXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjAwOTA4MTUzMjE3WhcNMjAwOTEwMTUzMjI2WjAhMR8wHQYDVQQDDBZveEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzj1NEHyGk/ywG25py2s/zVVrRggzRO0jE6VOUvqUzsEJwt1aszQ4onFu6vgtjNwq2ZmEFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN/d+tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW/e+/Wags/ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm/GpCASAk9ZD8Ebnmy9RM71zDCgmvq/hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr/DLR3SVyCYbKBbRQIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwDQYJKoZIhvcNAQELBQADggEBADaqrfVH1FX0FLp99TG9fHOiOMD12vsIPANb9QbIADineFrSvUI3zIX56PpvMT+EApaLPcIYSwG1YziWT1oGDGkfyinofSRGl4JcC63slChUBfjlBZlXTIlc7CJA7CfzO6BW3SvO0GPF0NStCUD9Ou4oOVaIc3XrPzhIAp71cF9iLFnQUK1hiD9NhQUm5v2Nq+sQdjAxSlqigXnc+rB9+V8snCkr9x9q1cysq1ZyCRT55psa53Irqtc50T2PHA6kyzEVW51+yFaZa8z+WMoofr6ndx2DFI7n5+8jFGs9WoP+/zV8E/XK61iy+EdXVjXQYVcArjEzeIahn8QOd/hUcfo=\"\n ],\n \"n\": \"EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ\",\n \"e\": \"Updated_XYZ\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.write" - ] - } - ] - } - }, - "/api/v1/config/jwks": { - "get": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Gets list of JSON Web Key (JWK) used by server", - "description": "Gets list of JSON Web Key (JWK) used by server", - "operationId": "get-config-jwks", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebKeysConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"keys\": [\n {\n \"descr\": \"Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256\",\n \"kty\": \"RSA\",\n \"e\": \"AQAB\",\n \"use\": \"sig\",\n \"kid\": \"abc3a91b-dd1b-47b0-b7e7-aaf2ec3b9d5e_sig_rs256\",\n \"x5c\": [\n \"E3+Z7Ie9FVpDIqeBo/xI8/q7CCDxCHTtiTQjGS5j/XV4VcPt7i9mrQsajbndCAmynVw==\"\n ],\n \"name\": \"id_token RS256 Sign Key\",\n \"exp\": 1666775666429,\n \"alg\": \"RS256\",\n \"n\": \"qzu2jRl6UoTnnUJS6zg7ghavupiUQ3Ux4fAH6H7DCXF-cuOgelBjUj_GLPqz5FeOCnQ\"\n },\n\t\t{\n \"descr\": \"Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF\",\n \"kty\": \"EC\",\n \"use\": \"enc\",\n \"crv\": \"P-256\",\n \"kid\": \"0870a2b9-1200-42a2-9b12-e2fa89ce3bd0_enc_ecdh-es\",\n \"x5c\": [\n \"tE24Ofz3eFhtBAIhAINgdWN86TOOEAUXUr2ijmaAPBgn7mGoeg4c7FfyZTxn\"\n ],\n \"name\": \"id_token ECDH-ES Encryption Key\",\n \"x\": \"NBJAtpZ-jWGjaXDFYgt38\",\n \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\": 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Replaces JSON Web Keys", - "description": "Replaces JSON Web Keys", - "operationId": "put-config-jwks", - "requestBody": { - "description": "JSON Web Keys object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebKeysConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"keys\": [\n {\n \"descr\": \"Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256\",\n \"kty\": \"RSA\",\n \"e\": \"AQAB\",\n \"use\": \"sig\",\n \"kid\": \"abc3a91b-dd1b-47b0-b7e7-aaf2ec3b9d5e_sig_rs256\",\n \"x5c\": [\n \"E3+Z7Ie9FVpDIqeBo/xI8/q7CCDxCHTtiTQjGS5j/XV4VcPt7i9mrQsajbndCAmynVw==\"\n ],\n \"name\": \"id_token RS256 Sign Key\",\n \"exp\": 1666775666429,\n \"alg\": \"RS256\",\n \"n\": \"qzu2jRl6UoTnnUJS6zg7ghavupiUQ3Ux4fAH6H7DCXF-cuOgelBjUj_GLPqz5FeOCnQ\"\n },\n\t\t{\n \"descr\": \"Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF\",\n \"kty\": \"EC\",\n \"use\": \"enc\",\n \"crv\": \"P-256\",\n \"kid\": \"0870a2b9-1200-42a2-9b12-e2fa89ce3bd0_enc_ecdh-es\",\n \"x5c\": [\n \"tE24Ofz3eFhtBAIhAINgdWN86TOOEAUXUr2ijmaAPBgn7mGoeg4c7FfyZTxn\"\n ],\n \"name\": \"id_token ECDH-ES Encryption Key\",\n \"x\": \"NBJAtpZ-jWGjaXDFYgt38\",\n \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\": 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n ]\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebKeysConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"keys\": [\n {\n \"descr\": \"Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256\",\n \"kty\": \"RSA\",\n \"e\": \"AQAB\",\n \"use\": \"sig\",\n \"kid\": \"abc3a91b-dd1b-47b0-b7e7-aaf2ec3b9d5e_sig_rs256\",\n \"x5c\": [\n \"E3+Z7Ie9FVpDIqeBo/xI8/q7CCDxCHTtiTQjGS5j/XV4VcPt7i9mrQsajbndCAmynVw==\"\n ],\n \"name\": \"id_token RS256 Sign Key\",\n \"exp\": 1666775666429,\n \"alg\": \"RS256\",\n \"n\": \"qzu2jRl6UoTnnUJS6zg7ghavupiUQ3Ux4fAH6H7DCXF-cuOgelBjUj_GLPqz5FeOCnQ\"\n },\n\t\t{\n \"descr\": \"Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF\",\n \"kty\": \"EC\",\n \"use\": \"enc\",\n \"crv\": \"P-256\",\n \"kid\": \"0870a2b9-1200-42a2-9b12-e2fa89ce3bd0_enc_ecdh-es\",\n \"x5c\": [\n \"tE24Ofz3eFhtBAIhAINgdWN86TOOEAUXUr2ijmaAPBgn7mGoeg4c7FfyZTxn\"\n ],\n \"name\": \"id_token ECDH-ES Encryption Key\",\n \"x\": \"NBJAtpZ-jWGjaXDFYgt38\",\n \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\": 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.write" - ] - } - ] - }, - "patch": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Patches JSON Web Keys", - "description": "Patches JSON Web Keys", - "operationId": "patch-config-jwks", - "requestBody": { - "description": "JsonPatch object", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[\n\t{ \"op\": \"add\", \"path\": \"/keys/1\", \"value\":{\n \"descr\": \"Test Key\",\n \"kty\": \"EC\",\n \"use\": \"enc\",\n \"crv\": \"P-256\",\n \"kid\": \"1234a2b9-1200-42a2-9b12-e2fa89ce3bd0_enc_ecdh-es\",\n \"x5c\": [\n \"tE24Ofz3eFhtBAIhAINgdWN86TOOEAUXUr2ijmaAPBgn7mGoeg4c7FfyZTxn\"\n ],\n \"name\": \"test-key\",\n \"x\": \"NBJAtpZ-jWGjaXDFYgt38\",\n \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\": 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n\t}\n] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebKeysConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"keys\": [\n {\n \"descr\": \"Signature Key: RSA RSASSA-PKCS1-v1_5 using SHA-256\",\n \"kty\": \"RSA\",\n \"e\": \"AQAB\",\n \"use\": \"sig\",\n \"kid\": \"abc3a91b-dd1b-47b0-b7e7-aaf2ec3b9d5e_sig_rs256\",\n \"x5c\": [\n \"E3+Z7Ie9FVpDIqeBo/xI8/q7CCDxCHTtiTQjGS5j/XV4VcPt7i9mrQsajbndCAmynVw==\"\n ],\n \"name\": \"id_token RS256 Sign Key\",\n \"exp\": 1666775666429,\n \"alg\": \"RS256\",\n \"n\": \"qzu2jRl6UoTnnUJS6zg7ghavupiUQ3Ux4fAH6H7DCXF-cuOgelBjUj_GLPqz5FeOCnQ\"\n },\n\t\t{\n \"descr\": \"Encryption Key: Elliptic Curve Diffie-Hellman Ephemeral Static key agreement using Concat KDF\",\n \"kty\": \"EC\",\n \"use\": \"enc\",\n \"crv\": \"P-256\",\n \"kid\": \"0870a2b9-1200-42a2-9b12-e2fa89ce3bd0_enc_ecdh-es\",\n \"x5c\": [\n \"tE24Ofz3eFhtBAIhAINgdWN86TOOEAUXUr2ijmaAPBgn7mGoeg4c7FfyZTxn\"\n ],\n \"name\": \"id_token ECDH-ES Encryption Key\",\n \"x\": \"NBJAtpZ-jWGjaXDFYgt38\",\n \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\": 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.write" - ] - } - ] - } - }, - "/api/v1/config/jwks/key": { - "post": { - "tags": [ - "Configuration \u2013 JWK - JSON Web Key (JWK)" - ], - "summary": "Configuration \u2013 JWK - JSON Web Key (JWK)", - "description": "Configuration \u2013 JWK - JSON Web Key (JWK)", - "operationId": "post-config-jwks-key", - "requestBody": { - "description": "JSONWebKey object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JSONWebKey" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"kty\": \"RSA\",\n \"e\": \"AQAB\",\n \"use\": \"sig\",\n \"crv\": \"\",\n \"kid\": \"1230bfb-276a-44aa-a97d-667b57587108_sig_rs256\",\n \"x5c\": [\n \"A0GCSqGSIb3DQEBCwUAMCExHzAdBgNVBAMMFm94QXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjAwOTA4MTUzMjE3WhcNMjAwOTEwMTUzMjI2WjAhMR8wHQYDVQQDDBZveEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzj1NEHyGk/ywG25py2s/zVVrRggzRO0jE6VOUvqUzsEJwt1aszQ4onFu6vgtjNwq2ZmEFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN/d+tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW/e+/Wags/ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm/GpCASAk9ZD8Ebnmy9RM71zDCgmvq/hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr/DLR3SVyCYbKBbRQIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwDQYJKoZIhvcNAQELBQADggEBADaqrfVH1FX0FLp99TG9fHOiOMD12vsIPANb9QbIADineFrSvUI3zIX56PpvMT+EApaLPcIYSwG1YziWT1oGDGkfyinofSRGl4JcC63slChUBfjlBZlXTIlc7CJA7CfzO6BW3SvO0GPF0NStCUD9Ou4oOVaIc3XrPzhIAp71cF9iLFnQUK1hiD9NhQUm5v2Nq+sQdjAxSlqigXnc+rB9+V8snCkr9x9q1cysq1ZyCRT55psa53Irqtc50T2PHA6kyzEVW51+yFaZa8z+WMoofr6ndx2DFI7n5+8jFGs9WoP+/zV8E/XK61iy+EdXVjXQYVcArjEzeIahn8QOd/hUcfo=\"\n ],\n \"exp\": 1599751946863,\n \"alg\": \"RS256\",\n \"n\": \"EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ\"\n }\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/JSONWebKey" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"kid\": \"1230bfb-276a-44aa-a97d-667b57587108_sig_rs256\",\n \"kty\": \"RSA\",\n \"use\": \"sig\",\n \"alg\": \"RS256\",\n \"exp\": 1599751946863,\n \"x5c\": [\n \"A0GCSqGSIb3DQEBCwUAMCExHzAdBgNVBAMMFm94QXV0aCBDQSBDZXJ0aWZpY2F0ZXMwHhcNMjAwOTA4MTUzMjE3WhcNMjAwOTEwMTUzMjI2WjAhMR8wHQYDVQQDDBZveEF1dGggQ0EgQ2VydGlmaWNhdGVzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzj1NEHyGk/ywG25py2s/zVVrRggzRO0jE6VOUvqUzsEJwt1aszQ4onFu6vgtjNwq2ZmEFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN/d+tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW/e+/Wags/ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm/GpCASAk9ZD8Ebnmy9RM71zDCgmvq/hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr/DLR3SVyCYbKBbRQIDAQABoycwJTAjBgNVHSUEHDAaBggrBgEFBQcDAQYIKwYBBQUHAwIGBFUdJQAwDQYJKoZIhvcNAQELBQADggEBADaqrfVH1FX0FLp99TG9fHOiOMD12vsIPANb9QbIADineFrSvUI3zIX56PpvMT+EApaLPcIYSwG1YziWT1oGDGkfyinofSRGl4JcC63slChUBfjlBZlXTIlc7CJA7CfzO6BW3SvO0GPF0NStCUD9Ou4oOVaIc3XrPzhIAp71cF9iLFnQUK1hiD9NhQUm5v2Nq+sQdjAxSlqigXnc+rB9+V8snCkr9x9q1cysq1ZyCRT55psa53Irqtc50T2PHA6kyzEVW51+yFaZa8z+WMoofr6ndx2DFI7n5+8jFGs9WoP+/zV8E/XK61iy+EdXVjXQYVcArjEzeIahn8QOd/hUcfo=\"\n ],\n \"n\": \"EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ\",\n \"e\": \"AQAB\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "406": { - "description": "Not Acceptable" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/jwks.write" - ] - } - ] - } - }, - "/api/v1/config/database/ldap": { - "get": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Gets list of existing LDAP configurations.", - "description": "Gets list of existing LDAP configurations.", - "operationId": "get-config-database-ldap", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - } - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "[\n {\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"password==\",\n \"servers\": [\n \"jans.server:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n }\n]\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Updates LDAP configuration", - "description": "Updates LDAP configuration", - "operationId": "put-config-database-ldap", - "requestBody": { - "description": "GluuLdapConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"axby+nlegh9DhpQ==\",\n \"servers\": [\n \"jans.server2:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"axby+nlegh9DhpQ==\",\n \"servers\": [\n \"jans.server2:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.write" - ] - } - ] - }, - "post": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Adds a new LDAP configuration", - "description": "Adds a new LDAP configuration", - "operationId": "post-config-database-ldap", - "requestBody": { - "description": "GluuLdapConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"axby+nlegh9DhpQ==\",\n \"servers\": [\n \"jans.server2:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"axby+nlegh9DhpQ==\",\n \"servers\": [\n \"jans.server2:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "406": { - "description": "Not Acceptable" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.write" - ] - } - ] - } - }, - "/api/v1/config/database/ldap/{name}": { - "get": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Gets an LDAP configuration by name.", - "description": "Gets an LDAP configuration by name.", - "operationId": "get-config-database-ldap-by-name", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"axby+nlegh9DhpQ==\",\n \"servers\": [\n \"jans.server2:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Deletes an LDAP configuration", - "description": "Deletes an LDAP configuration", - "operationId": "delete-config-database-ldap-by-name", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Patches a LDAP configuration by name", - "description": "Patches a LDAP configuration by name", - "operationId": "patch-config-database-ldap-by-name", - "parameters": [ - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "JsonPatch object", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "example/auth/database/ldap/ldap-patch" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"configId\": \"auth_ldap_server\",\n \"bindDN\": \"cn=directory manager\",\n \"bindPassword\": \"axby+nlegh9DhpQ==\",\n \"servers\": [\n \"jans.server2:1636\"\n ],\n \"maxConnections\": 1000,\n \"useSSL\": true,\n \"baseDNs\": [\n \"ou=people,o=jans\"\n ],\n \"primaryKey\": \"uid\",\n \"localPrimaryKey\": \"uid\",\n \"useAnonymousBind\": false,\n \"enabled\": false,\n \"version\": 0,\n \"level\": 0\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.write" - ] - } - ] - } - }, - "/api/v1/config/database/ldap/test": { - "post": { - "tags": [ - "Database - LDAP configuration" - ], - "summary": "Tests an LDAP configuration", - "description": "Tests an LDAP configuration", - "operationId": "post-config-database-ldap-test", - "requestBody": { - "description": "GluuLdapConfiguration object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuLdapConfiguration" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[{ \"op\": \"replace\", \"path\": \"/maxConnections\", \"value\":800}] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "boolean", - "description": "boolean value true if successful" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/database/ldap.readonly" - ] - } - ] - } - }, - "/api/v1/logging": { - "get": { - "tags": [ - "Configuration \u2013 Logging" - ], - "summary": "Returns Jans Authorization Server logging settings", - "description": "Returns Jans Authorization Server logging settings", - "operationId": "get-config-logging", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Logging" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"loggingLevel\": \"TRACE\",\n \"loggingLayout\": \"text\",\n \"httpLoggingEnabled\": false,\n \"disableJdkLogger\": true,\n \"enabledOAuthAuditLogging\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/logging.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Configuration \u2013 Logging" - ], - "summary": "Updates Jans Authorization Server logging settings", - "description": "Updates Jans Authorization Server logging settings", - "operationId": "put-config-logging", - "requestBody": { - "description": "Logging object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Logging" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"loggingLevel\": \"TRACE\",\n \"loggingLayout\": \"text\",\n \"httpLoggingEnabled\": false,\n \"disableJdkLogger\": true,\n \"enabledOAuthAuditLogging\": false\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Logging" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"loggingLevel\": \"TRACE\",\n \"loggingLayout\": \"text\",\n \"httpLoggingEnabled\": false,\n \"disableJdkLogger\": true,\n \"enabledOAuthAuditLogging\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/logging.write" - ] - } - ] - } - }, - "/api/v1/org": { - "get": { - "tags": [ - "Organization Configuration" - ], - "summary": "Retrieves organization configuration", - "description": "Retrieves organization configuration", - "operationId": "get-organization-config", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuOrganization" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"o=jans\",\n \"displayName\": \"Jans Server\",\n \"description\": \"Welcome to oxTrust!\",\n \"organization\": \"jans\",\n \"managerGroup\": \"inum=60B7,ou=groups,o=jans\",\n \"themeColor\": \"166309\",\n \"shortName\": \"Jans Server\",\n \"organizationTitle\": \"Gluu\",\n \"baseDn\": \"o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/organization.readonly" - ] - } - ] - }, - "patch": { - "tags": [ - "Organization Configuration" - ], - "summary": "Patch organization configuration", - "description": "Patch organization configuration", - "operationId": "patch-organization-config", - "requestBody": { - "description": "String representing JsonPatch request.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "[\n { \"op\": \"add\", \"path\": \"/customMessages\", \"value\": [\"customMessages1\",\"customMessages2\"] },\n { \"op\": \"add\", \"path\": \"/jsFaviconPath\", \"value\": \"/opt/jans/jetty/jans-auth/custom/static\" }\n] \n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GluuOrganization" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"o=jans\",\n \"displayName\": \"Jans Server\",\n \"description\": \"Welcome to oxTrust!\",\n \"organization\": \"jans\",\n \"managerGroup\": \"inum=60B7,ou=groups,o=jans\",\n \"themeColor\": \"166309\",\n \"shortName\": \"Jans Server\",\n \"customMessages\": [\n \"customMessages1\",\n \"customMessages2\"\n ],\n \"jsFaviconPath\": \"/opt/jans/jetty/jans-auth/custom/static\",\n \"organizationTitle\": \"Gluu\",\n \"baseDn\": \"o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/organization.write" - ] - } - ] - } - }, - "/api/v1/scopes": { - "get": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Gets list of Scopes", - "description": "Gets list of Scopes", - "operationId": "get-oauth-scopes", - "parameters": [ - { - "name": "type", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "withAssociatedClients", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 79,\n \"entriesCount\": 2,\n \"entries\": [\n {\n \"dn\": \"inum=F0C4,ou=scopes,o=jans\",\n \"inum\": \"F0C4\",\n \"displayName\": \"authenticate_openid_connect\",\n \"id\": \"openid\",\n \"description\": \"Authenticate using OpenID Connect.\",\n \"scopeType\": \"openid\",\n \"defaultScope\": true,\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creationDate\": \"2022-10-27T20:51:17\",\n \"umaType\": false,\n \"baseDn\": \"inum=F0C4,ou=scopes,o=jans\"\n },\n {\n \"dn\": \"inum=43F1,ou=scopes,o=jans\",\n \"inum\": \"43F1\",\n \"displayName\": \"view_profile\",\n \"id\": \"profile\",\n \"description\": \"View your basic profile info.\",\n \"scopeType\": \"openid\",\n \"claims\": [\n \"inum=2B29,ou=attributes,o=jans\",\n \"inum=0C85,ou=attributes,o=jans\",\n \"inum=B4B0,ou=attributes,o=jans\",\n \"inum=A0E8,ou=attributes,o=jans\",\n \"inum=5EC6,ou=attributes,o=jans\",\n \"inum=B52A,ou=attributes,o=jans\",\n \"inum=64A0,ou=attributes,o=jans\",\n \"inum=EC3A,ou=attributes,o=jans\",\n \"inum=3B47,ou=attributes,o=jans\",\n \"inum=3692,ou=attributes,o=jans\",\n \"inum=98FC,ou=attributes,o=jans\",\n \"inum=A901,ou=attributes,o=jans\",\n \"inum=36D9,ou=attributes,o=jans\",\n \"inum=BE64,ou=attributes,o=jans\",\n \"inum=6493,ou=attributes,o=jans\",\n \"inum=4CF1,ou=attributes,o=jans\",\n \"inum=29DA,ou=attributes,o=jans\"\n ],\n \"defaultScope\": true,\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creationDate\": \"2022-10-27T20:51:17\",\n \"umaType\": false,\n \"baseDn\": \"inum=43F1,ou=scopes,o=jans\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Update Scope", - "description": "Update Scope", - "operationId": "put-oauth-scopes", - "requestBody": { - "description": "Scope object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Scope" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"dn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\",\n \"inum\": \"9c4c6027-86b8-4afc-a68f-6b50579e6d21\",\n \"displayName\": \"Test Display Scope 5\",\n \"id\": \"Scope5\",\n \"iconUrl\": \"http://google.com\",\n \"description\": \"TEST Description for Scope 5\",\n \"scopeType\": \"spontaneous\",\n \"defaultScope\": false,\n \"umaAuthorizationPolicies\": [\n \"inum=2DAF-F9A5,ou=scripts,o=jans\",\n \"inum=2DAF-F995,ou=scripts,o=jans\"\n ],\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creatorId\": \"2000.99b53b02-dfa1-42cd-aaef-b940d58bb03f\",\n \"creatorType\": \"user\",\n \"creationDate\": \"2022-10-27T21:09:45\",\n \"umaType\": false,\n \"baseDn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Scope" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\",\n \"inum\": \"9c4c6027-86b8-4afc-a68f-6b50579e6d21\",\n \"displayName\": \"Test Display Scope 5\",\n \"id\": \"Scope5\",\n \"iconUrl\": \"http://google.com\",\n \"description\": \"TEST Description for Scope 5\",\n \"scopeType\": \"spontaneous\",\n \"defaultScope\": false,\n \"umaAuthorizationPolicies\": [\n \"inum=2DAF-F9A5,ou=scripts,o=jans\",\n \"inum=2DAF-F995,ou=scripts,o=jans\"\n ],\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creatorId\": \"2000.99b53b02-dfa1-42cd-aaef-b940d58bb03f\",\n \"creatorType\": \"user\",\n \"creationDate\": \"2022-10-27T21:09:45\",\n \"umaType\": false,\n \"baseDn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.write" - ] - } - ] - }, - "post": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Create Scope", - "description": "Create Scope", - "operationId": "post-oauth-scopes", - "requestBody": { - "description": "Scope object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Scope" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"claims\": [],\n \"dynamicScopeScripts\": [],\n \"defaultScope\": false,\n \"attributes\": {\n \"spontaneousClientScopes\": [],\n \"showInConfigurationEndpoint\": true\n },\n \"id\": \"Scope5\",\n \"displayName\": \"Test Display Scope 5\",\n \"description\": \"TEST Description for Scope 5\",\n \"scopeType\": \"spontaneous\",\n \"iconUrl\": \"http://google.com\",\n \"umaAuthorizationPolicies\": [\n \"inum=2DAF-F9A5,ou=scripts,o=jans\",\n \"inum=2DAF-F995,ou=scripts,o=jans\"\n ],\n \"creatorType\": \"user\",\n \"creatorId\": \"2000.99b53b02-dfa1-42cd-aaef-b940d58bb03f\"\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Scope" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\",\n \"inum\": \"9c4c6027-86b8-4afc-a68f-6b50579e6d21\",\n \"displayName\": \"Test Display Scope 5\",\n \"id\": \"Scope5\",\n \"iconUrl\": \"http://google.com\",\n \"description\": \"TEST Description for Scope 5\",\n \"scopeType\": \"spontaneous\",\n \"defaultScope\": false,\n \"umaAuthorizationPolicies\": [\n \"inum=2DAF-F9A5,ou=scripts,o=jans\",\n \"inum=2DAF-F995,ou=scripts,o=jans\"\n ],\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creatorId\": \"2000.99b53b02-dfa1-42cd-aaef-b940d58bb03f\",\n \"creatorType\": \"user\",\n \"creationDate\": \"2022-10-27T21:09:45\",\n \"umaType\": false,\n \"baseDn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.write" - ] - } - ] - } - }, - "/api/v1/scopes/{inum}": { - "get": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Get Scope by Inum", - "description": "Get Scope by Inum", - "operationId": "get-oauth-scopes-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "withAssociatedClients", - "in": "query", - "schema": { - "type": "boolean", - "default": false - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomScope" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=764C,ou=scopes,o=jans\",\n \"inum\": \"764C\",\n \"displayName\": \"view_email_address\",\n \"id\": \"email\",\n \"description\": \"View your email address.\",\n \"scopeType\": \"openid\",\n \"claims\": [\n \"inum=8F88,ou=attributes,o=jans\",\n \"inum=CAE3,ou=attributes,o=jans\"\n ],\n \"defaultScope\": true,\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creationDate\": \"2022-10-27T20:58:29\",\n \"clients\": [\n {\n \"dn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"ec0mQbx1udmSEs6flUXquA==\",\n \"frontChannelLogoutUri\": \"http://localhost:4100/logout\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\",\n \"urn:ietf:params:oauth:grant-type:device_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Role Based Client\"\n },\n \"value\": \"Jans Role Based Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"userInfoSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"postLogoutRedirectUris\": [\n \"http://localhost:4100\",\n \"https://jans.server2/admin\"\n ],\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=C4F6,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=F0C4,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"accessTokenLifetime\": 2592000,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Role Based Client\"\n ],\n \"value\": \"Jans Role Based Client\",\n \"displayValue\": \"Jans Role Based Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": true,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": true,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"introspectionScripts\": [\n \"inum=A44E-4F3D,ou=scripts,o=jans\"\n ],\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Role Based Client\",\n \"baseDn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"inum\": \"2000.7810d591-69d3-458c-9309-4268085fe71c\"\n },\n {\n \"dn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"clientSecret\": \"n7/ZG1jOL6RMR/USOmTAsg==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/jans-auth-rp/home.htm\",\n \"https://client.example.com/cb\",\n \"https://client.example.com/cb1\",\n \"https://client.example.com/cb2\"\n ],\n \"claimRedirectUris\": [\n \"https://jans.server2/jans-auth/restv1/uma/gather_claims\"\n ],\n \"responseTypes\": [\n \"token\",\n \"code\",\n \"id_token\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Test Client (don't remove)\"\n },\n \"value\": \"Jans Test Client (don't remove)\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=F0C4,ou=scopes,o=jans\",\n \"inum=10B2,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=341A,ou=scopes,o=jans\",\n \"inum=6D99,ou=scopes,o=jans\"\n ],\n \"trustedClient\": true,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Test Client (don't remove)\"\n ],\n \"value\": \"Jans Test Client (don't remove)\",\n \"displayValue\": \"Jans Test Client (don't remove)\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Test Client (don't remove)\",\n \"baseDn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"inum\": \"FF81-2D39\"\n },\n {\n \"dn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"5LIyGKo7kTLfWxBi0wSVAbxpB98Q70/Fr2NWMHnpEOiWHLFAQXwqNQ==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test1234\"\n },\n \"value\": \"test1234\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test1234\"\n ],\n \"value\": \"test1234\",\n \"displayValue\": \"test1234\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test1234\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test1234\",\n \"baseDn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"inum\": \"b3c1d295-42e5-425e-b021-7b2fd3206437\"\n },\n {\n \"dn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"Xi1+z0Ey8UDbtxsRYL3HAeneTCIEndWVeWEzS4dB2Is0iyupSjXr1w==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test12345\"\n },\n \"value\": \"test12345\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test12345\"\n ],\n \"value\": \"test12345\",\n \"displayValue\": \"test12345\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test12345\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test12345\",\n \"baseDn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"inum\": \"1bb91a73-6899-440f-ac27-c04429671522\"\n }\n ],\n \"umaType\": false,\n \"baseDn\": \"inum=764C,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Delete Scope", - "description": "Delete Scope", - "operationId": "delete-oauth-scopes-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Patch Scope", - "description": "Patch Scope", - "operationId": "patch-oauth-scopes-by-id", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "\n[{ \"op\": \"replace\", \"path\": \"/umaAuthorizationPolicies\", \"value\": [\"inum=2DAF-F995,ou=scripts,o=jans\"] }]\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Scope" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\",\n \"inum\": \"9c4c6027-86b8-4afc-a68f-6b50579e6d21\",\n \"displayName\": \"Test Display Scope 5\",\n \"id\": \"Scope5\",\n \"iconUrl\": \"http://google.com\",\n \"description\": \"TEST Description for Scope 5\",\n \"scopeType\": \"spontaneous\",\n \"defaultScope\": false,\n \"umaAuthorizationPolicies\": [\n \"inum=2DAF-F9A5,ou=scripts,o=jans\",\n \"inum=2DAF-F995,ou=scripts,o=jans\"\n ],\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creatorId\": \"2000.99b53b02-dfa1-42cd-aaef-b940d58bb03f\",\n \"creatorType\": \"user\",\n \"creationDate\": \"2022-10-27T21:09:45\",\n \"umaType\": false,\n \"baseDn\": \"inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.write" - ] - } - ] - } - }, - "/api/v1/scopes/creator/{creatorId}": { - "get": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Get Scope by creatorId", - "description": "Get Scope by creatorId", - "operationId": "get-scope-by-creator", - "parameters": [ - { - "name": "creatorId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomScope" - } - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=764C,ou=scopes,o=jans\",\n \"inum\": \"764C\",\n \"displayName\": \"view_email_address\",\n \"id\": \"email\",\n \"description\": \"View your email address.\",\n \"scopeType\": \"openid\",\n \"claims\": [\n \"inum=8F88,ou=attributes,o=jans\",\n \"inum=CAE3,ou=attributes,o=jans\"\n ],\n \"defaultScope\": true,\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creationDate\": \"2022-10-27T20:58:29\",\n \"clients\": [\n {\n \"dn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"ec0mQbx1udmSEs6flUXquA==\",\n \"frontChannelLogoutUri\": \"http://localhost:4100/logout\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\",\n \"urn:ietf:params:oauth:grant-type:device_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Role Based Client\"\n },\n \"value\": \"Jans Role Based Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"userInfoSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"postLogoutRedirectUris\": [\n \"http://localhost:4100\",\n \"https://jans.server2/admin\"\n ],\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=C4F6,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=F0C4,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"accessTokenLifetime\": 2592000,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Role Based Client\"\n ],\n \"value\": \"Jans Role Based Client\",\n \"displayValue\": \"Jans Role Based Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": true,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": true,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"introspectionScripts\": [\n \"inum=A44E-4F3D,ou=scripts,o=jans\"\n ],\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Role Based Client\",\n \"baseDn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"inum\": \"2000.7810d591-69d3-458c-9309-4268085fe71c\"\n },\n {\n \"dn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"clientSecret\": \"n7/ZG1jOL6RMR/USOmTAsg==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/jans-auth-rp/home.htm\",\n \"https://client.example.com/cb\",\n \"https://client.example.com/cb1\",\n \"https://client.example.com/cb2\"\n ],\n \"claimRedirectUris\": [\n \"https://jans.server2/jans-auth/restv1/uma/gather_claims\"\n ],\n \"responseTypes\": [\n \"token\",\n \"code\",\n \"id_token\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Test Client (don't remove)\"\n },\n \"value\": \"Jans Test Client (don't remove)\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=F0C4,ou=scopes,o=jans\",\n \"inum=10B2,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=341A,ou=scopes,o=jans\",\n \"inum=6D99,ou=scopes,o=jans\"\n ],\n \"trustedClient\": true,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Test Client (don't remove)\"\n ],\n \"value\": \"Jans Test Client (don't remove)\",\n \"displayValue\": \"Jans Test Client (don't remove)\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Test Client (don't remove)\",\n \"baseDn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"inum\": \"FF81-2D39\"\n },\n {\n \"dn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"5LIyGKo7kTLfWxBi0wSVAbxpB98Q70/Fr2NWMHnpEOiWHLFAQXwqNQ==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test1234\"\n },\n \"value\": \"test1234\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test1234\"\n ],\n \"value\": \"test1234\",\n \"displayValue\": \"test1234\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test1234\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test1234\",\n \"baseDn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"inum\": \"b3c1d295-42e5-425e-b021-7b2fd3206437\"\n },\n {\n \"dn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"Xi1+z0Ey8UDbtxsRYL3HAeneTCIEndWVeWEzS4dB2Is0iyupSjXr1w==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test12345\"\n },\n \"value\": \"test12345\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test12345\"\n ],\n \"value\": \"test12345\",\n \"displayValue\": \"test12345\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test12345\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test12345\",\n \"baseDn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"inum\": \"1bb91a73-6899-440f-ac27-c04429671522\"\n }\n ],\n \"umaType\": false,\n \"baseDn\": \"inum=764C,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.readonly" - ] - } - ] - } - }, - "/api/v1/scopes/type/{type}": { - "get": { - "tags": [ - "OAuth - Scopes" - ], - "summary": "Get Scope by type", - "description": "Get Scope by type", - "operationId": "get-scope-by-type", - "parameters": [ - { - "name": "type", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomScope" - } - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=764C,ou=scopes,o=jans\",\n \"inum\": \"764C\",\n \"displayName\": \"view_email_address\",\n \"id\": \"email\",\n \"description\": \"View your email address.\",\n \"scopeType\": \"openid\",\n \"claims\": [\n \"inum=8F88,ou=attributes,o=jans\",\n \"inum=CAE3,ou=attributes,o=jans\"\n ],\n \"defaultScope\": true,\n \"attributes\": {\n \"showInConfigurationEndpoint\": true\n },\n \"creationDate\": \"2022-10-27T20:58:29\",\n \"clients\": [\n {\n \"dn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"ec0mQbx1udmSEs6flUXquA==\",\n \"frontChannelLogoutUri\": \"http://localhost:4100/logout\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/admin\",\n \"http://localhost:4100\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"refresh_token\",\n \"client_credentials\",\n \"urn:ietf:params:oauth:grant-type:device_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Role Based Client\"\n },\n \"value\": \"Jans Role Based Client\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"pairwise\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"userInfoSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"postLogoutRedirectUris\": [\n \"http://localhost:4100\",\n \"https://jans.server2/admin\"\n ],\n \"scopes\": [\n \"inum=C4F7,ou=scopes,o=jans\",\n \"inum=C4F6,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=F0C4,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": true,\n \"includeClaimsInIdToken\": false,\n \"accessTokenLifetime\": 2592000,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Role Based Client\"\n ],\n \"value\": \"Jans Role Based Client\",\n \"displayValue\": \"Jans Role Based Client\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": true,\n \"accessTokenSigningAlg\": \"RS256\",\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": true,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"introspectionScripts\": [\n \"inum=A44E-4F3D,ou=scripts,o=jans\"\n ],\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Role Based Client\",\n \"baseDn\": \"inum=2000.7810d591-69d3-458c-9309-4268085fe71c,ou=clients,o=jans\",\n \"inum\": \"2000.7810d591-69d3-458c-9309-4268085fe71c\"\n },\n {\n \"dn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"clientSecret\": \"n7/ZG1jOL6RMR/USOmTAsg==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://jans.server2/jans-auth-rp/home.htm\",\n \"https://client.example.com/cb\",\n \"https://client.example.com/cb1\",\n \"https://client.example.com/cb2\"\n ],\n \"claimRedirectUris\": [\n \"https://jans.server2/jans-auth/restv1/uma/gather_claims\"\n ],\n \"responseTypes\": [\n \"token\",\n \"code\",\n \"id_token\"\n ],\n \"grantTypes\": [\n \"authorization_code\",\n \"implicit\",\n \"refresh_token\",\n \"client_credentials\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"Jans Test Client (don't remove)\"\n },\n \"value\": \"Jans Test Client (don't remove)\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"idTokenSignedResponseAlg\": \"RS256\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=F0C4,ou=scopes,o=jans\",\n \"inum=10B2,ou=scopes,o=jans\",\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=341A,ou=scopes,o=jans\",\n \"inum=6D99,ou=scopes,o=jans\"\n ],\n \"trustedClient\": true,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"Jans Test Client (don't remove)\"\n ],\n \"value\": \"Jans Test Client (don't remove)\",\n \"displayValue\": \"Jans Test Client (don't remove)\"\n }\n ],\n \"customObjectClasses\": [\n \"top\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"Jans Test Client (don't remove)\",\n \"baseDn\": \"inum=FF81-2D39,ou=clients,o=jans\",\n \"inum\": \"FF81-2D39\"\n },\n {\n \"dn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"5LIyGKo7kTLfWxBi0wSVAbxpB98Q70/Fr2NWMHnpEOiWHLFAQXwqNQ==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test1234\"\n },\n \"value\": \"test1234\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test1234\"\n ],\n \"value\": \"test1234\",\n \"displayValue\": \"test1234\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test1234\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test1234\",\n \"baseDn\": \"inum=b3c1d295-42e5-425e-b021-7b2fd3206437,ou=clients,o=jans\",\n \"inum\": \"b3c1d295-42e5-425e-b021-7b2fd3206437\"\n },\n {\n \"dn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"deletable\": false,\n \"clientSecret\": \"Xi1+z0Ey8UDbtxsRYL3HAeneTCIEndWVeWEzS4dB2Is0iyupSjXr1w==\",\n \"frontChannelLogoutSessionRequired\": false,\n \"redirectUris\": [\n \"https://abc,com\"\n ],\n \"responseTypes\": [\n \"code\"\n ],\n \"grantTypes\": [\n \"refresh_token\",\n \"authorization_code\"\n ],\n \"applicationType\": \"web\",\n \"clientName\": {\n \"values\": {\n \"\": \"test12345\"\n },\n \"value\": \"test12345\",\n \"languageTags\": [\n \"\"\n ]\n },\n \"logoUri\": {},\n \"clientUri\": {},\n \"policyUri\": {},\n \"tosUri\": {},\n \"subjectType\": \"public\",\n \"tokenEndpointAuthMethod\": \"client_secret_basic\",\n \"scopes\": [\n \"inum=764C,ou=scopes,o=jans\",\n \"inum=43F1,ou=scopes,o=jans\",\n \"inum=C17A,ou=scopes,o=jans\"\n ],\n \"trustedClient\": false,\n \"persistClientAuthorizations\": false,\n \"includeClaimsInIdToken\": false,\n \"customAttributes\": [\n {\n \"name\": \"displayName\",\n \"multiValued\": false,\n \"values\": [\n \"test12345\"\n ],\n \"value\": \"test12345\",\n \"displayValue\": \"test12345\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansClntCustomAttributes\"\n ],\n \"rptAsJwt\": false,\n \"accessTokenAsJwt\": false,\n \"disabled\": false,\n \"attributes\": {\n \"runIntrospectionScriptBeforeJwtCreation\": false,\n \"keepClientAuthorizationAfterExpiration\": false,\n \"allowSpontaneousScopes\": false,\n \"backchannelLogoutSessionRequired\": false,\n \"parLifetime\": 600,\n \"requirePar\": false,\n \"jansDefaultPromptLogin\": false\n },\n \"backchannelUserCodeParameter\": false,\n \"description\": \"test12345\",\n \"tokenBindingSupported\": false,\n \"authenticationMethod\": \"client_secret_basic\",\n \"displayName\": \"test12345\",\n \"baseDn\": \"inum=1bb91a73-6899-440f-ac27-c04429671522,ou=clients,o=jans\",\n \"inum\": \"1bb91a73-6899-440f-ac27-c04429671522\"\n }\n ],\n \"umaType\": false,\n \"baseDn\": \"inum=764C,ou=scopes,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/scopes.readonly" - ] - } - ] - } - }, - "/api/v1/jans-auth-server/session": { - "get": { - "tags": [ - "Auth - Session Management" - ], - "summary": "Returns current session", - "description": "Returns current session", - "operationId": "get-sessions", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SessionId" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/session.readonly", - "revoke_session" - ] - } - ] - } - }, - "/api/v1/jans-auth-server/session/{userDn}": { - "post": { - "tags": [ - "Auth - Session Management" - ], - "summary": "Revoke all sessions by userDn", - "description": "Revoke all sessions by userDn", - "operationId": "revoke-user-session", - "parameters": [ - { - "name": "userDn", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/session.delete", - "revoke_session" - ] - } - ] - } - }, - "/api/v1/stat": { - "get": { - "tags": [ - "Statistics - User" - ], - "summary": "Provides server with basic statistic", - "description": "Provides server with basic statistic", - "operationId": "get-stat", - "parameters": [ - { - "name": "Authorization", - "in": "header", - "schema": { - "type": "string" - } - }, - { - "name": "month", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "start_month", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "end_month", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "format", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Stats", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonNode" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/stats.readonly", - "jans_stat" - ] - } - ] - } - }, - "/api/v1/uma/resources": { - "get": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Gets list of UMA resources", - "description": "Gets list of UMA resources", - "operationId": "get-oauth-uma-resources", - "parameters": [ - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 3,\n \"entriesCount\": 3,\n \"entries\": [\n {\n \"dn\": \"jansId=55d70ecd-8572-43dd-895f-ecfaf09bf513,ou=resources,ou=uma,o=jans\",\n \"id\": \"55d70ecd-8572-43dd-895f-ecfaf09bf513\",\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n },\n {\n \"dn\": \"jansId=4754f784-e80f-4a36-a014-173bd3e6fb6f,ou=resources,ou=uma,o=jans\",\n \"id\": \"4754f784-e80f-4a36-a014-173bd3e6fb6f\",\n \"name\": \"uma-resource-1\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum=1201.1d010784-b5bf-4813-8f49-cfea00f50498,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource one\",\n \"deletable\": false\n },\n {\n \"dn\": \"jansId=b0e7e1d7-ab67-45ec-be16-4466da70e63b,ou=resources,ou=uma,o=jans\",\n \"id\": \"b0e7e1d7-ab67-45ec-be16-4466da70e63b\",\n \"name\": \"uma-resource-2\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum=1201.1d010784-b5bf-4813-8f49-cfea00f50498,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource two\",\n \"deletable\": false\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Updates an UMA resource", - "description": "Updates an UMA resource", - "operationId": "put-oauth-uma-resources", - "requestBody": { - "description": "UmaResource object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UmaResource" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"dn\": \"jansId=55d70ecd-8572-43dd-895f-ecfaf09bf513,ou=resources,ou=uma,o=jans\",\n \"id\": \"55d70ecd-8572-43dd-895f-ecfaf09bf513\",\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "UmaResource", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UmaResource" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"jansId=55d70ecd-8572-43dd-895f-ecfaf09bf513,ou=resources,ou=uma,o=jans\",\n \"id\": \"55d70ecd-8572-43dd-895f-ecfaf09bf513\",\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.write" - ] - } - ] - }, - "post": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Creates an UMA resource", - "description": "Creates an UMA resource", - "operationId": "post-oauth-uma-resources", - "requestBody": { - "description": "UmaResource object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UmaResource" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": " {\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"scopes\":[\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n }\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UmaResource" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"jansId=55d70ecd-8572-43dd-895f-ecfaf09bf513,ou=resources,ou=uma,o=jans\",\n \"id\": \"55d70ecd-8572-43dd-895f-ecfaf09bf513\",\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.write" - ] - } - ] - } - }, - "/api/v1/uma/resources/{id}": { - "get": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Gets an UMA resource by ID", - "description": "Gets an UMA resource by ID", - "operationId": "get-oauth-uma-resources-by-id", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UmaResource" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"jansId=55d70ecd-8572-43dd-895f-ecfaf09bf513,ou=resources,ou=uma,o=jans\",\n \"id\": \"55d70ecd-8572-43dd-895f-ecfaf09bf513\",\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Deletes an UMA resource", - "description": "Deletes an UMA resource", - "operationId": "delete-oauth-uma-resources-by-id", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Patch UMA resource", - "description": "Patch UMA resource", - "operationId": "patch-oauth-uma-resources-by-id", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "example/uma/resources/uma-resources-patch" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UmaResource" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"jansId=55d70ecd-8572-43dd-895f-ecfaf09bf513,ou=resources,ou=uma,o=jans\",\n \"id\": \"55d70ecd-8572-43dd-895f-ecfaf09bf513\",\n \"name\": \"config-api-resource\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.e9131b86-f39f-421c-9dde-b7f90c21a2fe,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource config api\",\n \"deletable\": false\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.write" - ] - } - ] - } - }, - "/api/v1/uma/resources/clientId/{clientId}": { - "get": { - "tags": [ - "OAuth - UMA Resources" - ], - "summary": "Fetch uma resources by client id", - "description": "Fetch uma resources by client id", - "operationId": "get-oauth-uma-resources-by-clientid", - "parameters": [ - { - "name": "clientId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/UmaResource" - } - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "[\n {\n \"dn\": \"jansId=b0e7e1d7-ab67-45ec-be16-4466da70e63b,ou=resources,ou=uma,o=jans\",\n \"id\": \"b0e7e1d7-ab67-45ec-be16-4466da70e63b\",\n \"name\": \"uma-resource-2\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum=1201.1d010784-b5bf-4813-8f49-cfea00f50498,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource two\",\n \"deletable\": false\n },\n {\n \"dn\": \"jansId=4754f784-e80f-4a36-a014-173bd3e6fb6f,ou=resources,ou=uma,o=jans\",\n \"id\": \"4754f784-e80f-4a36-a014-173bd3e6fb6f\",\n \"name\": \"uma-resource-1\",\n \"iconUri\": \"https://config-api.com\",\n \"scopes\": [\n \"inum=ab47c599-d188-44b6-a32a-91e6b173856a,ou=scopes,o=jans\"\n ],\n \"clients\": [\n \"inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans\",\n \"inum=1201.1d010784-b5bf-4813-8f49-cfea00f50498,ou=clients,o=jans\"\n ],\n \"description\": \"Uma resource one\",\n \"deletable\": false\n }\n]\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/uma/resources.readonly" - ] - } - ] - } - }, - "/fido2/config": { - "get": { - "tags": [ - "Fido2 - Configuration" - ], - "summary": "Gets Jans Authorization Server Fido2 configuration properties", - "description": "Gets Jans Authorization Server Fido2 configuration properties", - "operationId": "get-properties-fido2", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbApplicationConfiguration" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/fido2.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Fido2 - Configuration" - ], - "summary": "Updates Fido2 configuration properties", - "description": "Updates Fido2 configuration properties", - "operationId": "put-properties-fido2", - "requestBody": { - "description": "Fido2Config", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DbApplicationConfiguration" - } - } - } - }, - "responses": { - "200": { - "description": "Fido2Config", - "content": { - "application/json": { - "schema": { - "type": "string" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/fido2.write" - ] - } - ] - } - }, - "/fido2/registration/entries/{username}": { - "get": { - "tags": [ - "Fido2 - Registration" - ], - "summary": "Get details of connected FIDO2 devices registered to user", - "description": "Get details of connected FIDO2 devices registered to user", - "operationId": "get-registration-entries-fido2", - "parameters": [ - { - "name": "username", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Fido2RegistrationEntry" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/fido2.readonly" - ] - } - ] - } - }, - "/mgt/configuser": { - "get": { - "tags": [ - "Configuration \u2013 User Management" - ], - "summary": "Gets list of users", - "description": "Gets list of users", - "operationId": "get-user", - "parameters": [ - { - "name": "limit", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 50 - } - }, - { - "name": "pattern", - "in": "query", - "schema": { - "type": "string", - "default": "" - } - }, - { - "name": "startIndex", - "in": "query", - "schema": { - "type": "integer", - "format": "int32", - "default": 1 - } - }, - { - "name": "sortBy", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "sortOrder", - "in": "query", - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserPagedResult" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"start\": 0,\n \"totalEntriesCount\": 23,\n \"entriesCount\": 2,\n \"entries\": [\n {\n \"dn\": \"inum=XXXX.DDDD-4444,ou=people,o=jans\",\n \"userId\": \"dddd4444\",\n \"customAttributes\": [\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"FilterTest\"\n ],\n \"value\": \"FilterTest\",\n \"displayValue\": \"FilterTest\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"XXXX.DDDD-4444\",\n \"displayName\": \"Test Dddd 4444\",\n \"jansStatus\": \"active\",\n \"givenName\": \"(special chars\\\\)/*\",\n \"baseDn\": \"inum=XXXX.DDDD-4444,ou=people,o=jans\"\n },\n {\n \"dn\": \"inum=XXXX.EEEE-1111,ou=people,o=jans\",\n \"userId\": \"eeee1111\",\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"XXXX.EEEE-1111\",\n \"jansStatus\": \"active\",\n \"baseDn\": \"inum=XXXX.EEEE-1111,ou=people,o=jans\"\n }\n ]\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/user.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Configuration \u2013 User Management" - ], - "summary": "Update User", - "description": "Update User", - "operationId": "put-user", - "requestBody": { - "description": "User object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomUser" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"dn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\",\n \"userId\": \"testUser1\",\n \"createdAt\": \"2022-10-27T22:45:48\",\n \"customAttributes\": [\n {\n \"name\": \"birthdate\",\n \"multiValued\": false,\n \"values\": [\n \"20001231041508.553Z\"\n ],\n \"value\": \"20001231041508.553Z\",\n \"displayValue\": \"20001231041508.553Z\"\n },\n {\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n {\n \"name\": \"jansAdminUIRole\",\n \"multiValued\": false,\n \"values\": [\n \"api-admin\"\n ],\n \"value\": \"api-admin\",\n \"displayValue\": \"api-admin\"\n },\n {\n \"name\": \"memberOf\",\n \"multiValued\": false,\n \"values\": [\n \"inum=60B7,ou=groups,o=jans\"\n ],\n \"value\": \"inum=60B7,ou=groups,o=jans\",\n \"displayValue\": \"inum=60B7,ou=groups,o=jans\"\n },\n {\n \"name\": \"middleName\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"nickname\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"User3\"\n ],\n \"value\": \"User3\",\n \"displayValue\": \"User3\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"559a7e26-7a33-4e11-9d42-13266d33261e\",\n \"mail\": \"test3@jans.server\",\n \"displayName\": \"Default Test User 32\",\n \"jansStatus\": \"active\",\n \"givenName\": \"Test3\",\n \"baseDn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\"\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomUser" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\",\n \"userId\": \"testUser1\",\n \"createdAt\": \"2022-10-27T22:45:48\",\n \"customAttributes\": [\n {\n \"name\": \"birthdate\",\n \"multiValued\": false,\n \"values\": [\n \"20001231041508.553Z\"\n ],\n \"value\": \"20001231041508.553Z\",\n \"displayValue\": \"20001231041508.553Z\"\n },\n {\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n {\n \"name\": \"jansAdminUIRole\",\n \"multiValued\": false,\n \"values\": [\n \"api-admin\"\n ],\n \"value\": \"api-admin\",\n \"displayValue\": \"api-admin\"\n },\n {\n \"name\": \"memberOf\",\n \"multiValued\": false,\n \"values\": [\n \"inum=60B7,ou=groups,o=jans\"\n ],\n \"value\": \"inum=60B7,ou=groups,o=jans\",\n \"displayValue\": \"inum=60B7,ou=groups,o=jans\"\n },\n {\n \"name\": \"middleName\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"nickname\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"User3\"\n ],\n \"value\": \"User3\",\n \"displayValue\": \"User3\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"559a7e26-7a33-4e11-9d42-13266d33261e\",\n \"mail\": \"test3@jans.server\",\n \"displayName\": \"Default Test User 32\",\n \"jansStatus\": \"active\",\n \"givenName\": \"Test3\",\n \"baseDn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/user.write" - ] - } - ] - }, - "post": { - "tags": [ - "Configuration \u2013 User Management" - ], - "summary": "Create new User", - "description": "Create new User", - "operationId": "post-user", - "requestBody": { - "description": "User object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomUser" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"userId\": \"testUser1\",\n \"createdAt\": \"2022-05-30T20:06:57\",\n \"customAttributes\": [\n {\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n {\n \"name\": \"jansAdminUIRole\",\n \"multiValued\": false,\n \"values\": [\n \"api-admin\"\n ],\n \"value\": \"api-admin\",\n \"displayValue\": \"api-admin\"\n },\n {\n \"name\": \"memberOf\",\n \"multiValued\": false,\n \"values\": [\n \"inum=60B7,ou=groups,o=jans\"\n ],\n \"value\": \"inum=60B7,ou=groups,o=jans\",\n \"displayValue\": \"inum=60B7,ou=groups,o=jans\"\n },\n {\n \"name\": \"middleName\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"nickname\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"User3\"\n ],\n \"value\": \"User3\",\n \"displayValue\": \"User3\"\n },{\n \"name\": \"birthdate\",\n \"multiValued\": false,\n \"values\": [\n \"20001231041508.553Z\"\n ],\n \"value\": \"20001231041508.553Z\",\n \"displayValue\": \"20001231041508.553Z\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"mail\": \"test3@jans.server\",\n \"displayName\": \"Default Test User 32\",\n \"jansStatus\": \"active\",\n \"givenName\": \"Test3\",\n \"userPassword\": \"test123\"\n}\n" - } - } - } - } - }, - "responses": { - "201": { - "description": "Created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomUser" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\",\n \"userId\": \"testUser1\",\n \"createdAt\": \"2022-10-27T22:45:48\",\n \"customAttributes\": [\n {\n \"name\": \"birthdate\",\n \"multiValued\": false,\n \"values\": [\n \"20001231041508.553Z\"\n ],\n \"value\": \"20001231041508.553Z\",\n \"displayValue\": \"20001231041508.553Z\"\n },\n {\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n {\n \"name\": \"jansAdminUIRole\",\n \"multiValued\": false,\n \"values\": [\n \"api-admin\"\n ],\n \"value\": \"api-admin\",\n \"displayValue\": \"api-admin\"\n },\n {\n \"name\": \"memberOf\",\n \"multiValued\": false,\n \"values\": [\n \"inum=60B7,ou=groups,o=jans\"\n ],\n \"value\": \"inum=60B7,ou=groups,o=jans\",\n \"displayValue\": \"inum=60B7,ou=groups,o=jans\"\n },\n {\n \"name\": \"middleName\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"nickname\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"User3\"\n ],\n \"value\": \"User3\",\n \"displayValue\": \"User3\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"559a7e26-7a33-4e11-9d42-13266d33261e\",\n \"mail\": \"test3@jans.server\",\n \"displayName\": \"Default Test User 32\",\n \"jansStatus\": \"active\",\n \"givenName\": \"Test3\",\n \"baseDn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/user.write" - ] - } - ] - } - }, - "/mgt/configuser/{inum}": { - "get": { - "tags": [ - "Configuration \u2013 User Management" - ], - "summary": "Get User by Inum", - "description": "Get User by Inum", - "operationId": "get-user-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomUser" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\",\n \"userId\": \"testUser1\",\n \"createdAt\": \"2022-10-27T22:45:48\",\n \"customAttributes\": [\n {\n \"name\": \"birthdate\",\n \"multiValued\": false,\n \"values\": [\n \"20001231041508.553Z\"\n ],\n \"value\": \"20001231041508.553Z\",\n \"displayValue\": \"20001231041508.553Z\"\n },\n {\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n {\n \"name\": \"jansAdminUIRole\",\n \"multiValued\": false,\n \"values\": [\n \"api-admin\"\n ],\n \"value\": \"api-admin\",\n \"displayValue\": \"api-admin\"\n },\n {\n \"name\": \"memberOf\",\n \"multiValued\": false,\n \"values\": [\n \"inum=60B7,ou=groups,o=jans\"\n ],\n \"value\": \"inum=60B7,ou=groups,o=jans\",\n \"displayValue\": \"inum=60B7,ou=groups,o=jans\"\n },\n {\n \"name\": \"middleName\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"nickname\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"User3\"\n ],\n \"value\": \"User3\",\n \"displayValue\": \"User3\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"559a7e26-7a33-4e11-9d42-13266d33261e\",\n \"mail\": \"test3@jans.server\",\n \"displayName\": \"Default Test User 32\",\n \"jansStatus\": \"active\",\n \"givenName\": \"Test3\",\n \"baseDn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/user.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Configuration \u2013 User Management" - ], - "summary": "Delete User", - "description": "Delete User", - "operationId": "delete-user", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/user.delete" - ] - } - ] - }, - "patch": { - "tags": [ - "Configuration \u2013 User Management" - ], - "summary": "Patch user properties by Inum", - "description": "Patch user properties by Inum", - "operationId": "patch-user-by-inum", - "parameters": [ - { - "name": "inum", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "UserPatchRequest", - "content": { - "application/json-patch+json": { - "schema": { - "$ref": "#/components/schemas/UserPatchRequest" - }, - "examples": { - "Request json example": { - "description": "Request json example", - "value": "{\n \"jsonPatchString\": \"[ {\\\"op\\\":\\\"add\\\", \\\"path\\\": \\\"/userId\\\", \\\"value\\\":\\\"config_test_user_100_final_patch\\\" } ]\",\n \"customAttributes\": [{\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n\t\t{\n \"name\": \"secretAnswer\",\n \"multiValued\": false,\n \"values\": [\n \"james-bond@123\"\n ],\n \"value\": \"james-bond@123\",\n \"displayValue\": \"james-bond@123\"\n },\n {\n \"name\": \"jansImsValue\",\n \"multiValued\": true,\n \"values\": [{\n\t\t\t \"value\": \"123456\",\n\t\t\t \"display\": \"Home phone\",\n\t\t\t \"type\": \"home\",\n\t\t\t \"primary\": true\t\t\t\n\t\t\t},\n\t\t\t{\n\t\t\t \"value\": \"9821789\",\n\t\t\t \"display\": \"Work phone\",\n\t\t\t \"type\": \"work\",\n\t\t\t \"primary\": false\t\t\t\n\t\t\t}\n \n ]\n }\n ]\n}\n" - } - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomUser" - }, - "examples": { - "Response json example": { - "description": "Response json example", - "value": "{\n \"dn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\",\n \"userId\": \"testUser1\",\n \"createdAt\": \"2022-10-27T22:45:48\",\n \"customAttributes\": [\n {\n \"name\": \"birthdate\",\n \"multiValued\": false,\n \"values\": [\n \"20001231041508.553Z\"\n ],\n \"value\": \"20001231041508.553Z\",\n \"displayValue\": \"20001231041508.553Z\"\n },\n {\n \"name\": \"emailVerified\",\n \"multiValued\": false,\n \"values\": [\n \"TRUE\"\n ],\n \"value\": \"TRUE\",\n \"displayValue\": \"TRUE\"\n },\n {\n \"name\": \"jansAdminUIRole\",\n \"multiValued\": false,\n \"values\": [\n \"api-admin\"\n ],\n \"value\": \"api-admin\",\n \"displayValue\": \"api-admin\"\n },\n {\n \"name\": \"memberOf\",\n \"multiValued\": false,\n \"values\": [\n \"inum=60B7,ou=groups,o=jans\"\n ],\n \"value\": \"inum=60B7,ou=groups,o=jans\",\n \"displayValue\": \"inum=60B7,ou=groups,o=jans\"\n },\n {\n \"name\": \"middleName\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"nickname\",\n \"multiValued\": false,\n \"values\": [\n \"Test USer 3\"\n ],\n \"value\": \"Test USer 3\",\n \"displayValue\": \"Test USer 3\"\n },\n {\n \"name\": \"sn\",\n \"multiValued\": false,\n \"values\": [\n \"User3\"\n ],\n \"value\": \"User3\",\n \"displayValue\": \"User3\"\n }\n ],\n \"customObjectClasses\": [\n \"top\",\n \"jansCustomPerson\"\n ],\n \"inum\": \"559a7e26-7a33-4e11-9d42-13266d33261e\",\n \"mail\": \"test3@jans.server\",\n \"displayName\": \"Default Test User 32\",\n \"jansStatus\": \"active\",\n \"givenName\": \"Test3\",\n \"baseDn\": \"inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans\"\n}\n" - } - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "404": { - "description": "Not Found" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/config/user.write" - ] - } - ] - } - }, - "/admin-ui/license/activateLicense": { - "post": { - "tags": [ - "Admin UI - License" - ], - "summary": "Activate license using license-key", - "description": "Activate license using license-key", - "operationId": "activate-adminui-license", - "requestBody": { - "description": "LicenseRequest object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseRequest" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/license.write" - ] - } - ] - } - }, - "/admin-ui/license/licenseDetails": { - "get": { - "tags": [ - "Admin UI - License" - ], - "summary": "Get admin ui license details", - "description": "Get admin ui license details", - "operationId": "get-adminui-license", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseResponse" - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly" - ] - } - ] - } - }, - "/admin-ui/license/isActive": { - "get": { - "tags": [ - "Admin UI - License" - ], - "summary": "Check if admin-ui license is active", - "description": "Check if admin-ui license is active", - "operationId": "is-license-active", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly" - ] - } - ] - } - }, - "/admin-ui/license/saveApiCredentials": { - "post": { - "tags": [ - "Admin UI - License" - ], - "summary": "Save license api credentials", - "description": "Save license api credentials", - "operationId": "save-license-api-credentials", - "requestBody": { - "description": "LicenseSpringCredentials object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseSpringCredentials" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LicenseApiResponse" - } - } - } - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/license.write" - ] - } - ] - } - }, - "/admin-ui/adminUIPermissions": { - "get": { - "tags": [ - "Admin UI - Permission" - ], - "summary": "Get all admin ui permissions", - "description": "Get all admin ui permissions", - "operationId": "get-all-adminui-permissions", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Admin UI - Permission" - ], - "summary": "Edit admin ui permissions", - "description": "Edit admin ui permissions", - "operationId": "edit-adminui-permission", - "requestBody": { - "description": "AdminPermission object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write" - ] - } - ] - }, - "post": { - "tags": [ - "Admin UI - Permission" - ], - "summary": "Add admin ui permissions", - "description": "Add admin ui permissions", - "operationId": "add-adminui-permission", - "requestBody": { - "description": "AdminPermission object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write" - ] - } - ] - } - }, - "/admin-ui/adminUIRolePermissionsMapping": { - "get": { - "tags": [ - "Admin UI - Role-Permissions Mapping" - ], - "summary": "Get all admin ui role-permissions mapping", - "description": "Get all admin ui role-permissions mapping", - "operationId": "get-all-adminui-role-permissions", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Admin UI - Role-Permissions Mapping" - ], - "summary": "Map permissions to role", - "description": "Map permissions to role", - "operationId": "map-permissions-to-role", - "requestBody": { - "description": "RolePermissionMapping object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write" - ] - } - ] - }, - "post": { - "tags": [ - "Admin UI - Role-Permissions Mapping" - ], - "summary": "Add role-permissions mapping", - "description": "Add role-permissions mapping", - "operationId": "add-role-permissions-mapping", - "requestBody": { - "description": "RolePermissionMapping object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write" - ] - } - ] - } - }, - "/admin-ui/adminUIRoles": { - "get": { - "tags": [ - "Admin UI - Role" - ], - "summary": "Get all admin ui roles", - "description": "Get all admin ui roles", - "operationId": "get-all-adminui-roles", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.readonly" - ] - } - ] - }, - "put": { - "tags": [ - "Admin UI - Role" - ], - "summary": "Edit admin ui role", - "description": "Edit admin ui role", - "operationId": "edit-adminui-role", - "requestBody": { - "description": "AdminRole object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write" - ] - } - ] - }, - "post": { - "tags": [ - "Admin UI - Role" - ], - "summary": "Add admin ui role", - "description": "Add admin ui role", - "operationId": "add-adminui-role", - "requestBody": { - "description": "AdminRole object", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write" - ] - } - ] - } - }, - "/admin-ui/adminUIPermissions/{adminUIPermission}": { - "get": { - "tags": [ - "Admin UI - Permission" - ], - "summary": "Get admin ui permission by permission-name", - "description": "Get admin ui permission by permission-name", - "operationId": "get-adminui-permission", - "parameters": [ - { - "name": "adminUIPermission", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Admin UI - Permission" - ], - "summary": "Delete admin ui permission by permission-name", - "description": "Delete admin ui permission by permission-name", - "operationId": "delete-adminui-permission", - "parameters": [ - { - "name": "adminUIPermission", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminPermission" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write" - ] - } - ] - } - }, - "/admin-ui/adminUIRoles/{adminUIRole}": { - "get": { - "tags": [ - "Admin UI - Role" - ], - "summary": "Get admin ui role details by role-name", - "description": "Get admin ui role details by role-name", - "operationId": "get-adminui-role", - "parameters": [ - { - "name": "adminUIRole", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Admin UI - Role" - ], - "summary": "Delete admin ui role by role-name", - "description": "Delete admin ui role by role-name", - "operationId": "delete-adminui-role", - "parameters": [ - { - "name": "adminUIRole", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AdminRole" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write" - ] - } - ] - } - }, - "/admin-ui/adminUIRolePermissionsMapping/{adminUIRole}": { - "get": { - "tags": [ - "Admin UI - Role-Permissions Mapping" - ], - "summary": "Get admin ui role-permissions mapping by role-name", - "description": "Get admin ui role-permissions mapping by role-name", - "operationId": "get-adminui-role-permissions", - "parameters": [ - { - "name": "adminUIRole", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly" - ] - } - ] - }, - "delete": { - "tags": [ - "Admin UI - Role-Permissions Mapping" - ], - "summary": "Remove role-permissions mapping by role-name", - "description": "Remove role-permissions mapping by role-name", - "operationId": "remove-role-permissions-permission", - "parameters": [ - { - "name": "adminUIRole", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/RolePermissionMapping" - } - } - } - } - }, - "400": { - "description": "Bad Request" - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write" - ] - } - ] - } - }, - "/scim/scim-config": { - "get": { - "tags": [ - "SCIM - Config Management" - ], - "summary": "Retrieves SCIM App configuration", - "description": "Retrieves SCIM App configuration", - "operationId": "get-scim-config", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppConfiguration" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/scim/config.readonly" - ] - } - ] - }, - "patch": { - "tags": [ - "SCIM - Config Management" - ], - "summary": "Patch SCIM App configuration", - "description": "Patch SCIM App configuration", - "operationId": "patch-scim-config", - "requestBody": { - "description": "String representing patch-document.", - "content": { - "application/json-patch+json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JsonPatch" - } - }, - "example": "[ {op:replace, path: loggingLevel, value: DEBUG } ]" - } - } - }, - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppConfiguration" - } - } - } - }, - "401": { - "description": "Unauthorized" - }, - "500": { - "description": "InternalServerError" - } - }, - "security": [ - { - "oauth2": [ - "https://jans.io/scim/config.write" - ] - } - ] - } - } - }, - "components": { - "schemas": { - "HealthStatus": { - "type": "object", - "properties": { - "status": { - "type": "string" - }, - "checks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Status" - } - } - } - }, - "Status": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "status": { - "type": "string" - }, - "error": { - "type": "string" - } - } - }, - "FacterData": { - "type": "object", - "properties": { - "memoryfree": { - "type": "string" - }, - "swapfree": { - "type": "string" - }, - "hostname": { - "type": "string" - }, - "ipaddress": { - "type": "string" - }, - "uptime": { - "type": "string" - }, - "free_disk_space": { - "type": "string" - }, - "load_average": { - "type": "string" - } - } - }, - "StatsData": { - "type": "object", - "properties": { - "dbType": { - "type": "string" - }, - "lastUpdate": { - "type": "string", - "format": "date-time" - }, - "facterData": { - "$ref": "#/components/schemas/FacterData" - } - } - }, - "AuthenticationMethod": { - "type": "object", - "properties": { - "defaultAcr": { - "type": "string" - } - } - }, - "Flow": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "qname": { - "type": "string" - }, - "transHash": { - "type": "string" - }, - "revision": { - "type": "integer", - "format": "int32" - }, - "enabled": { - "type": "boolean" - }, - "metadata": { - "$ref": "#/components/schemas/FlowMetadata" - }, - "source": { - "type": "string" - }, - "transpiled": { - "type": "string" - }, - "codeError": { - "type": "string" - }, - "baseDn": { - "type": "string" - } - } - }, - "FlowMetadata": { - "type": "object", - "properties": { - "funcName": { - "type": "string" - }, - "inputs": { - "type": "array", - "items": { - "type": "string" - } - }, - "timeout": { - "type": "integer", - "format": "int32" - }, - "displayName": { - "type": "string" - }, - "author": { - "type": "string" - }, - "timestamp": { - "type": "integer", - "format": "int64" - }, - "description": { - "type": "string" - }, - "properties": { - "type": "object", - "additionalProperties": { - "type": "object" - } - } - } - }, - "PagedResult": { - "type": "object", - "properties": { - "start": { - "type": "integer", - "format": "int32" - }, - "totalEntriesCount": { - "type": "integer", - "format": "int32" - }, - "entriesCount": { - "type": "integer", - "format": "int32" - }, - "entries": { - "type": "array", - "items": { - "type": "object" - } - } - } - }, - "JsonPatch": { - "type": "object" - }, - "AttributeValidation": { - "type": "object", - "properties": { - "minLength": { - "type": "integer", - "format": "int32" - }, - "maxLength": { - "type": "integer", - "format": "int32" - }, - "regexp": { - "type": "string" - } - } - }, - "GluuAttribute": { - "required": [ - "dataType", - "description", - "displayName", - "editType", - "name", - "viewType" - ], - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "selected": { - "type": "boolean" - }, - "inum": { - "type": "string" - }, - "sourceAttribute": { - "type": "string" - }, - "nameIdType": { - "type": "string" - }, - "name": { - "maxLength": 30, - "minLength": 1, - "pattern": "^[a-zA-Z0-9_]+$", - "type": "string" - }, - "displayName": { - "maxLength": 60, - "minLength": 0, - "type": "string" - }, - "description": { - "maxLength": 4000, - "minLength": 0, - "type": "string" - }, - "origin": { - "type": "string" - }, - "dataType": { - "type": "string", - "enum": [ - "string", - "numeric", - "boolean", - "binary", - "certificate", - "generalizedTime", - "json" - ] - }, - "editType": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "admin", - "owner", - "manager", - "user", - "whitePages" - ] - } - }, - "viewType": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "admin", - "owner", - "manager", - "user", - "whitePages" - ] - } - }, - "usageType": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "openid" - ] - } - }, - "claimName": { - "type": "string" - }, - "seeAlso": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "expired", - "register" - ] - }, - "saml1Uri": { - "type": "string" - }, - "saml2Uri": { - "type": "string" - }, - "urn": { - "type": "string" - }, - "scimCustomAttr": { - "type": "boolean" - }, - "oxMultiValuedAttribute": { - "type": "boolean" - }, - "jansHideOnDiscovery": { - "type": "boolean" - }, - "custom": { - "type": "boolean" - }, - "requred": { - "type": "boolean" - }, - "attributeValidation": { - "$ref": "#/components/schemas/AttributeValidation" - }, - "tooltip": { - "type": "string" - }, - "whitePagesCanView": { - "type": "boolean" - }, - "adminCanEdit": { - "type": "boolean" - }, - "adminCanView": { - "type": "boolean" - }, - "userCanView": { - "type": "boolean" - }, - "userCanAccess": { - "type": "boolean" - }, - "adminCanAccess": { - "type": "boolean" - }, - "userCanEdit": { - "type": "boolean" - }, - "baseDn": { - "type": "string" - } - } - }, - "PatchRequest": { - "type": "object", - "properties": { - "op": { - "type": "string" - }, - "path": { - "type": "string" - }, - "value": { - "type": "string" - } - } - }, - "CacheConfiguration": { - "type": "object", - "properties": { - "cacheProviderType": { - "type": "string", - "enum": [ - "IN_MEMORY", - "MEMCACHED", - "REDIS", - "NATIVE_PERSISTENCE" - ] - }, - "memcachedConfiguration": { - "$ref": "#/components/schemas/MemcachedConfiguration" - }, - "inMemoryConfiguration": { - "$ref": "#/components/schemas/InMemoryConfiguration" - }, - "redisConfiguration": { - "$ref": "#/components/schemas/RedisConfiguration" - }, - "nativePersistenceConfiguration": { - "$ref": "#/components/schemas/NativePersistenceConfiguration" - } - } - }, - "InMemoryConfiguration": { - "type": "object", - "properties": { - "defaultPutExpiration": { - "type": "integer", - "format": "int32" - } - } - }, - "MemcachedConfiguration": { - "type": "object", - "properties": { - "servers": { - "type": "string" - }, - "maxOperationQueueLength": { - "type": "integer", - "format": "int32" - }, - "bufferSize": { - "type": "integer", - "format": "int32" - }, - "defaultPutExpiration": { - "type": "integer", - "format": "int32" - }, - "connectionFactoryType": { - "type": "string", - "enum": [ - "DEFAULT", - "BINARY" - ] - } - } - }, - "NativePersistenceConfiguration": { - "type": "object", - "properties": { - "defaultPutExpiration": { - "type": "integer", - "format": "int32" - }, - "defaultCleanupBatchSize": { - "type": "integer", - "format": "int32" - }, - "deleteExpiredOnGetRequest": { - "type": "boolean" - }, - "disableAttemptUpdateBeforeInsert": { - "type": "boolean" - } - } - }, - "RedisConfiguration": { - "type": "object", - "properties": { - "redisProviderType": { - "type": "string", - "enum": [ - "STANDALONE", - "CLUSTER", - "SHARDED", - "SENTINEL" - ] - }, - "servers": { - "type": "string" - }, - "defaultPutExpiration": { - "type": "integer", - "format": "int32" - }, - "sentinelMasterGroupName": { - "type": "string" - }, - "password": { - "type": "string" - }, - "useSSL": { - "type": "boolean" - }, - "sslTrustStoreFilePath": { - "type": "string" - }, - "sslTrustStorePassword": { - "type": "string" - }, - "sslKeyStoreFilePath": { - "type": "string" - }, - "sslKeyStorePassword": { - "type": "string" - }, - "maxIdleConnections": { - "type": "integer", - "format": "int32" - }, - "maxTotalConnections": { - "type": "integer", - "format": "int32" - }, - "connectionTimeout": { - "type": "integer", - "format": "int32" - }, - "soTimeout": { - "type": "integer", - "format": "int32" - }, - "maxRetryAttempts": { - "type": "integer", - "format": "int32" - } - } - }, - "Client": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "expirationDate": { - "type": "string", - "format": "date-time" - }, - "deletable": { - "type": "boolean" - }, - "clientSecret": { - "type": "string" - }, - "frontChannelLogoutUri": { - "type": "string" - }, - "frontChannelLogoutSessionRequired": { - "type": "boolean" - }, - "registrationAccessToken": { - "type": "string" - }, - "clientIdIssuedAt": { - "type": "string", - "format": "date-time" - }, - "clientSecretExpiresAt": { - "type": "string", - "format": "date-time" - }, - "redirectUris": { - "type": "array", - "items": { - "type": "string" - } - }, - "claimRedirectUris": { - "type": "array", - "items": { - "type": "string" - } - }, - "responseTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "code", - "token", - "id_token" - ] - } - }, - "grantTypes": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "none", - "authorization_code", - "implicit", - "password", - "client_credentials", - "refresh_token", - "urn:ietf:params:oauth:grant-type:uma-ticket", - "urn:openid:params:grant-type:ciba", - "urn:ietf:params:oauth:grant-type:device_code" - ] - } - }, - "applicationType": { - "type": "string", - "enum": [ - "native", - "web" - ] - }, - "contacts": { - "type": "array", - "items": { - "type": "string" - } - }, - "idTokenTokenBindingCnf": { - "type": "string" - }, - "clientName": { - "$ref": "#/components/schemas/LocalizedString" - }, - "logoUri": { - "$ref": "#/components/schemas/LocalizedString" - }, - "clientUri": { - "$ref": "#/components/schemas/LocalizedString" - }, - "policyUri": { - "$ref": "#/components/schemas/LocalizedString" - }, - "tosUri": { - "$ref": "#/components/schemas/LocalizedString" - }, - "jwksUri": { - "type": "string" - }, - "jwks": { - "type": "string" - }, - "sectorIdentifierUri": { - "type": "string" - }, - "subjectType": { - "type": "string", - "enum": [ - "pairwise", - "public" - ] - }, - "idTokenSignedResponseAlg": { - "type": "string" - }, - "idTokenEncryptedResponseAlg": { - "type": "string" - }, - "idTokenEncryptedResponseEnc": { - "type": "string" - }, - "userInfoSignedResponseAlg": { - "type": "string" - }, - "userInfoEncryptedResponseAlg": { - "type": "string" - }, - "userInfoEncryptedResponseEnc": { - "type": "string" - }, - "requestObjectSigningAlg": { - "type": "string" - }, - "requestObjectEncryptionAlg": { - "type": "string" - }, - "requestObjectEncryptionEnc": { - "type": "string" - }, - "tokenEndpointAuthMethod": { - "type": "string" - }, - "tokenEndpointAuthSigningAlg": { - "type": "string" - }, - "defaultMaxAge": { - "type": "integer", - "format": "int32" - }, - "defaultAcrValues": { - "type": "array", - "items": { - "type": "string" - } - }, - "initiateLoginUri": { - "type": "string" - }, - "postLogoutRedirectUris": { - "type": "array", - "items": { - "type": "string" - } - }, - "requestUris": { - "type": "array", - "items": { - "type": "string" - } - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "claims": { - "type": "array", - "items": { - "type": "string" - } - }, - "trustedClient": { - "type": "boolean" - }, - "lastAccessTime": { - "type": "string", - "format": "date-time" - }, - "lastLogonTime": { - "type": "string", - "format": "date-time" - }, - "persistClientAuthorizations": { - "type": "boolean" - }, - "includeClaimsInIdToken": { - "type": "boolean" - }, - "refreshTokenLifetime": { - "type": "integer", - "format": "int32" - }, - "accessTokenLifetime": { - "type": "integer", - "format": "int32" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomObjectAttribute" - } - }, - "customObjectClasses": { - "type": "array", - "items": { - "type": "string" - } - }, - "rptAsJwt": { - "type": "boolean" - }, - "accessTokenAsJwt": { - "type": "boolean" - }, - "accessTokenSigningAlg": { - "type": "string" - }, - "disabled": { - "type": "boolean" - }, - "authorizedOrigins": { - "type": "array", - "items": { - "type": "string" - } - }, - "softwareId": { - "type": "string" - }, - "softwareVersion": { - "type": "string" - }, - "softwareStatement": { - "type": "string" - }, - "attributes": { - "$ref": "#/components/schemas/ClientAttributes" - }, - "backchannelTokenDeliveryMode": { - "type": "string", - "enum": [ - "poll", - "ping", - "push" - ] - }, - "backchannelClientNotificationEndpoint": { - "type": "string" - }, - "backchannelAuthenticationRequestSigningAlg": { - "type": "string", - "enum": [ - "RS256", - "RS384", - "RS512", - "ES256", - "ES384", - "ES512", - "PS256", - "PS384", - "PS512" - ] - }, - "backchannelUserCodeParameter": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "organization": { - "type": "string" - }, - "groups": { - "type": "array", - "items": { - "type": "string" - } - }, - "ttl": { - "type": "integer", - "format": "int32" - }, - "displayName": { - "type": "string" - }, - "tokenBindingSupported": { - "type": "boolean" - }, - "authenticationMethod": { - "type": "string", - "enum": [ - "client_secret_basic", - "client_secret_post", - "client_secret_jwt", - "private_key_jwt", - "access_token", - "tls_client_auth", - "self_signed_tls_client_auth", - "none" - ] - }, - "baseDn": { - "type": "string" - }, - "inum": { - "type": "string" - } - } - }, - "ClientAttributes": { - "type": "object", - "properties": { - "tlsClientAuthSubjectDn": { - "type": "string" - }, - "runIntrospectionScriptBeforeJwtCreation": { - "type": "boolean" - }, - "keepClientAuthorizationAfterExpiration": { - "type": "boolean" - }, - "allowSpontaneousScopes": { - "type": "boolean" - }, - "spontaneousScopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "spontaneousScopeScriptDns": { - "type": "array", - "items": { - "type": "string" - } - }, - "updateTokenScriptDns": { - "type": "array", - "items": { - "type": "string" - } - }, - "backchannelLogoutUri": { - "type": "array", - "items": { - "type": "string" - } - }, - "backchannelLogoutSessionRequired": { - "type": "boolean" - }, - "additionalAudience": { - "type": "array", - "items": { - "type": "string" - } - }, - "postAuthnScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "consentGatheringScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "introspectionScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "rptClaimsScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "ropcScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "parLifetime": { - "type": "integer", - "format": "int32" - }, - "requirePar": { - "type": "boolean" - }, - "jansAuthSignedRespAlg": { - "type": "string" - }, - "jansAuthEncRespAlg": { - "type": "string" - }, - "jansAuthEncRespEnc": { - "type": "string" - }, - "jansSubAttr": { - "type": "string" - }, - "redirectUrisRegex": { - "type": "string" - }, - "jansAuthorizedAcr": { - "type": "array", - "items": { - "type": "string" - } - }, - "jansDefaultPromptLogin": { - "type": "boolean" - }, - "idTokenLifetime": { - "type": "integer", - "format": "int32" - } - } - }, - "CustomObjectAttribute": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "multiValued": { - "type": "boolean" - }, - "values": { - "type": "array", - "items": { - "type": "object" - } - }, - "value": { - "type": "object" - }, - "displayValue": { - "type": "string" - } - } - }, - "LocalizedString": { - "type": "object", - "properties": { - "values": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "value": { - "type": "string" - }, - "languageTags": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "AppConfiguration": { - "type": "object", - "properties": { - "issuer": { - "type": "string" - }, - "baseEndpoint": { - "type": "string" - }, - "authorizationEndpoint": { - "type": "string" - }, - "tokenEndpoint": { - "type": "string" - }, - "tokenRevocationEndpoint": { - "type": "string" - }, - "userInfoEndpoint": { - "type": "string" - }, - "clientInfoEndpoint": { - "type": "string" - }, - "checkSessionIFrame": { - "type": "string" - }, - "endSessionEndpoint": { - "type": "string" - }, - "jwksUri": { - "type": "string" - }, - "registrationEndpoint": { - "type": "string" - }, - "openIdDiscoveryEndpoint": { - "type": "string" - }, - "openIdConfigurationEndpoint": { - "type": "string" - }, - "idGenerationEndpoint": { - "type": "string" - }, - "introspectionEndpoint": { - "type": "string" - }, - "parEndpoint": { - "type": "string" - }, - "requirePar": { - "type": "boolean" - }, - "deviceAuthzEndpoint": { - "type": "string" - }, - "mtlsAuthorizationEndpoint": { - "type": "string" - }, - "mtlsTokenEndpoint": { - "type": "string" - }, - "mtlsTokenRevocationEndpoint": { - "type": "string" - }, - "mtlsUserInfoEndpoint": { - "type": "string" - }, - "mtlsClientInfoEndpoint": { - "type": "string" - }, - "mtlsCheckSessionIFrame": { - "type": "string" - }, - "mtlsEndSessionEndpoint": { - "type": "string" - }, - "mtlsJwksUri": { - "type": "string" - }, - "mtlsRegistrationEndpoint": { - "type": "string" - }, - "mtlsIdGenerationEndpoint": { - "type": "string" - }, - "mtlsIntrospectionEndpoint": { - "type": "string" - }, - "mtlsParEndpoint": { - "type": "string" - }, - "mtlsDeviceAuthzEndpoint": { - "type": "string" - }, - "sessionAsJwt": { - "type": "boolean" - }, - "requireRequestObjectEncryption": { - "type": "boolean" - }, - "requirePkce": { - "type": "boolean" - }, - "allowAllValueForRevokeEndpoint": { - "type": "boolean" - }, - "sectorIdentifierCacheLifetimeInMinutes": { - "type": "integer", - "format": "int32" - }, - "umaConfigurationEndpoint": { - "type": "string" - }, - "umaRptAsJwt": { - "type": "boolean" - }, - "umaRptLifetime": { - "type": "integer", - "format": "int32" - }, - "umaTicketLifetime": { - "type": "integer", - "format": "int32" - }, - "umaPctLifetime": { - "type": "integer", - "format": "int32" - }, - "umaResourceLifetime": { - "type": "integer", - "format": "int32" - }, - "umaAddScopesAutomatically": { - "type": "boolean" - }, - "umaValidateClaimToken": { - "type": "boolean" - }, - "umaGrantAccessIfNoPolicies": { - "type": "boolean" - }, - "umaRestrictResourceToAssociatedClient": { - "type": "boolean" - }, - "statTimerIntervalInSeconds": { - "type": "integer", - "format": "int32" - }, - "statAuthorizationScope": { - "type": "string" - }, - "allowSpontaneousScopes": { - "type": "boolean" - }, - "spontaneousScopeLifetime": { - "type": "integer", - "format": "int32" - }, - "openidSubAttribute": { - "type": "string" - }, - "publicSubjectIdentifierPerClientEnabled": { - "type": "boolean" - }, - "subjectIdentifiersPerClientSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "responseTypesSupported": { - "uniqueItems": true, - "type": "array", - "items": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "code", - "token", - "id_token" - ] - } - } - }, - "responseModesSupported": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "query", - "fragment", - "form_post", - "query.jwt", - "fragment.jwt", - "form_post.jwt", - "jwt" - ] - } - }, - "grantTypesSupported": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "none", - "authorization_code", - "implicit", - "password", - "client_credentials", - "refresh_token", - "urn:ietf:params:oauth:grant-type:uma-ticket", - "urn:openid:params:grant-type:ciba", - "urn:ietf:params:oauth:grant-type:device_code" - ] - } - }, - "subjectTypesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "defaultSubjectType": { - "type": "string" - }, - "authorizationSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "authorizationEncryptionAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "authorizationEncryptionEncValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "userInfoSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "userInfoEncryptionAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "userInfoEncryptionEncValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "idTokenSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "idTokenEncryptionAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "idTokenEncryptionEncValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "accessTokenSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "forceSignedRequestObject": { - "type": "boolean" - }, - "requestObjectSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "requestObjectEncryptionAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "requestObjectEncryptionEncValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "tokenEndpointAuthMethodsSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "tokenEndpointAuthSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "dynamicRegistrationCustomAttributes": { - "type": "array", - "items": { - "type": "string" - } - }, - "displayValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "claimTypesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "jwksAlgorithmsSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "serviceDocumentation": { - "type": "string" - }, - "claimsLocalesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "idTokenTokenBindingCnfValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "uiLocalesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "claimsParameterSupported": { - "type": "boolean" - }, - "requestParameterSupported": { - "type": "boolean" - }, - "requestUriParameterSupported": { - "type": "boolean" - }, - "requestUriHashVerificationEnabled": { - "type": "boolean" - }, - "requireRequestUriRegistration": { - "type": "boolean" - }, - "requestUriBlockList": { - "type": "array", - "items": { - "type": "string" - } - }, - "opPolicyUri": { - "type": "string" - }, - "opTosUri": { - "type": "string" - }, - "authorizationCodeLifetime": { - "type": "integer", - "format": "int32" - }, - "refreshTokenLifetime": { - "type": "integer", - "format": "int32" - }, - "idTokenLifetime": { - "type": "integer", - "format": "int32" - }, - "idTokenFilterClaimsBasedOnAccessToken": { - "type": "boolean" - }, - "accessTokenLifetime": { - "type": "integer", - "format": "int32" - }, - "cleanServiceInterval": { - "type": "integer", - "format": "int32" - }, - "cleanServiceBatchChunkSize": { - "type": "integer", - "format": "int32" - }, - "keyRegenerationEnabled": { - "type": "boolean" - }, - "keyRegenerationInterval": { - "type": "integer", - "format": "int32" - }, - "defaultSignatureAlgorithm": { - "type": "string" - }, - "oxOpenIdConnectVersion": { - "type": "string" - }, - "oxId": { - "type": "string" - }, - "dynamicRegistrationExpirationTime": { - "type": "integer", - "format": "int32" - }, - "dynamicRegistrationPersistClientAuthorizations": { - "type": "boolean" - }, - "trustedClientEnabled": { - "type": "boolean" - }, - "skipAuthorizationForOpenIdScopeAndPairwiseId": { - "type": "boolean" - }, - "dynamicRegistrationScopesParamEnabled": { - "type": "boolean" - }, - "dynamicRegistrationPasswordGrantTypeEnabled": { - "type": "boolean" - }, - "dynamicRegistrationAllowedPasswordGrantScopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "dynamicRegistrationCustomObjectClass": { - "type": "string" - }, - "personCustomObjectClassList": { - "type": "array", - "items": { - "type": "string" - } - }, - "persistIdTokenInLdap": { - "type": "boolean" - }, - "persistRefreshTokenInLdap": { - "type": "boolean" - }, - "allowPostLogoutRedirectWithoutValidation": { - "type": "boolean" - }, - "invalidateSessionCookiesAfterAuthorizationFlow": { - "type": "boolean" - }, - "returnClientSecretOnRead": { - "type": "boolean" - }, - "rejectJwtWithNoneAlg": { - "type": "boolean" - }, - "expirationNotificatorEnabled": { - "type": "boolean" - }, - "useNestedJwtDuringEncryption": { - "type": "boolean" - }, - "expirationNotificatorMapSizeLimit": { - "type": "integer", - "format": "int32" - }, - "expirationNotificatorIntervalInSeconds": { - "type": "integer", - "format": "int32" - }, - "redirectUrisRegexEnabled": { - "type": "boolean" - }, - "useHighestLevelScriptIfAcrScriptNotFound": { - "type": "boolean" - }, - "authenticationFiltersEnabled": { - "type": "boolean" - }, - "clientAuthenticationFiltersEnabled": { - "type": "boolean" - }, - "clientRegDefaultToCodeFlowWithRefresh": { - "type": "boolean" - }, - "grantTypesAndResponseTypesAutofixEnabled": { - "type": "boolean" - }, - "authenticationFilters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthenticationFilter" - } - }, - "clientAuthenticationFilters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ClientAuthenticationFilter" - } - }, - "corsConfigurationFilters": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CorsConfigurationFilter" - } - }, - "sessionIdUnusedLifetime": { - "type": "integer", - "format": "int32" - }, - "sessionIdUnauthenticatedUnusedLifetime": { - "type": "integer", - "format": "int32" - }, - "sessionIdPersistOnPromptNone": { - "type": "boolean" - }, - "sessionIdRequestParameterEnabled": { - "type": "boolean" - }, - "changeSessionIdOnAuthentication": { - "type": "boolean" - }, - "sessionIdPersistInCache": { - "type": "boolean" - }, - "includeSidInResponse": { - "type": "boolean" - }, - "sessionIdLifetime": { - "type": "integer", - "format": "int32" - }, - "serverSessionIdLifetime": { - "type": "integer", - "format": "int32" - }, - "activeSessionAuthorizationScope": { - "type": "string" - }, - "configurationUpdateInterval": { - "type": "integer", - "format": "int32" - }, - "enableClientGrantTypeUpdate": { - "type": "boolean" - }, - "dynamicGrantTypeDefault": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "none", - "authorization_code", - "implicit", - "password", - "client_credentials", - "refresh_token", - "urn:ietf:params:oauth:grant-type:uma-ticket", - "urn:openid:params:grant-type:ciba", - "urn:ietf:params:oauth:grant-type:device_code" - ] - } - }, - "cssLocation": { - "type": "string" - }, - "jsLocation": { - "type": "string" - }, - "imgLocation": { - "type": "string" - }, - "metricReporterInterval": { - "type": "integer", - "format": "int32" - }, - "metricReporterKeepDataDays": { - "type": "integer", - "format": "int32" - }, - "pairwiseIdType": { - "type": "string" - }, - "pairwiseCalculationKey": { - "type": "string" - }, - "pairwiseCalculationSalt": { - "type": "string" - }, - "shareSubjectIdBetweenClientsWithSameSectorId": { - "type": "boolean" - }, - "webKeysStorage": { - "type": "string", - "enum": [ - "keystore", - "pkcs11" - ] - }, - "dnName": { - "type": "string" - }, - "keyStoreFile": { - "type": "string" - }, - "keyStoreSecret": { - "type": "string" - }, - "keySelectionStrategy": { - "type": "string", - "enum": [ - "OLDER", - "NEWER", - "FIRST" - ] - }, - "keyAlgsAllowedForGeneration": { - "type": "array", - "items": { - "type": "string" - } - }, - "keySignWithSameKeyButDiffAlg": { - "type": "boolean" - }, - "staticKid": { - "type": "string" - }, - "staticDecryptionKid": { - "type": "string" - }, - "oxElevenTestModeToken": { - "type": "string" - }, - "oxElevenGenerateKeyEndpoint": { - "type": "string" - }, - "oxElevenSignEndpoint": { - "type": "string" - }, - "oxElevenVerifySignatureEndpoint": { - "type": "string" - }, - "oxElevenDeleteKeyEndpoint": { - "type": "string" - }, - "introspectionAccessTokenMustHaveUmaProtectionScope": { - "type": "boolean" - }, - "introspectionSkipAuthorization": { - "type": "boolean" - }, - "endSessionWithAccessToken": { - "type": "boolean" - }, - "cookieDomain": { - "type": "string" - }, - "enabledOAuthAuditLogging": { - "type": "boolean" - }, - "jmsBrokerURISet": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "jmsUserName": { - "type": "string" - }, - "jmsPassword": { - "type": "string" - }, - "clientWhiteList": { - "type": "array", - "items": { - "type": "string" - } - }, - "clientBlackList": { - "type": "array", - "items": { - "type": "string" - } - }, - "legacyIdTokenClaims": { - "type": "boolean" - }, - "customHeadersWithAuthorizationResponse": { - "type": "boolean" - }, - "frontChannelLogoutSessionSupported": { - "type": "boolean" - }, - "loggingLevel": { - "type": "string" - }, - "loggingLayout": { - "type": "string" - }, - "updateUserLastLogonTime": { - "type": "boolean" - }, - "updateClientAccessTime": { - "type": "boolean" - }, - "logClientIdOnClientAuthentication": { - "type": "boolean" - }, - "logClientNameOnClientAuthentication": { - "type": "boolean" - }, - "disableJdkLogger": { - "type": "boolean" - }, - "authorizationRequestCustomAllowedParameters": { - "uniqueItems": true, - "type": "array", - "items": { - "$ref": "#/components/schemas/AuthorizationRequestCustomParameter" - } - }, - "openidScopeBackwardCompatibility": { - "type": "boolean" - }, - "disableU2fEndpoint": { - "type": "boolean" - }, - "dcrSignatureValidationEnabled": { - "type": "boolean" - }, - "dcrSignatureValidationSharedSecret": { - "type": "string" - }, - "dcrSignatureValidationSoftwareStatementJwksURIClaim": { - "type": "string" - }, - "dcrSignatureValidationSoftwareStatementJwksClaim": { - "type": "string" - }, - "dcrSignatureValidationJwks": { - "type": "string" - }, - "dcrSignatureValidationJwksUri": { - "type": "string" - }, - "dcrAuthorizationWithClientCredentials": { - "type": "boolean" - }, - "dcrAuthorizationWithMTLS": { - "type": "boolean" - }, - "dcrIssuers": { - "type": "array", - "items": { - "type": "string" - } - }, - "useLocalCache": { - "type": "boolean" - }, - "fapiCompatibility": { - "type": "boolean" - }, - "forceIdTokenHintPrecense": { - "type": "boolean" - }, - "rejectEndSessionIfIdTokenExpired": { - "type": "boolean" - }, - "allowEndSessionWithUnmatchedSid": { - "type": "boolean" - }, - "forceOfflineAccessScopeToEnableRefreshToken": { - "type": "boolean" - }, - "errorReasonEnabled": { - "type": "boolean" - }, - "removeRefreshTokensForClientOnLogout": { - "type": "boolean" - }, - "skipRefreshTokenDuringRefreshing": { - "type": "boolean" - }, - "refreshTokenExtendLifetimeOnRotation": { - "type": "boolean" - }, - "checkUserPresenceOnRefreshToken": { - "type": "boolean" - }, - "consentGatheringScriptBackwardCompatibility": { - "type": "boolean" - }, - "introspectionScriptBackwardCompatibility": { - "type": "boolean" - }, - "introspectionResponseScopesBackwardCompatibility": { - "type": "boolean" - }, - "softwareStatementValidationType": { - "type": "string" - }, - "softwareStatementValidationClaimName": { - "type": "string" - }, - "authenticationProtectionConfiguration": { - "$ref": "#/components/schemas/AuthenticationProtectionConfiguration" - }, - "errorHandlingMethod": { - "type": "string", - "enum": [ - "internal", - "remote" - ] - }, - "disableAuthnForMaxAgeZero": { - "type": "boolean" - }, - "keepAuthenticatorAttributesOnAcrChange": { - "type": "boolean" - }, - "deviceAuthzRequestExpiresIn": { - "type": "integer", - "format": "int32" - }, - "deviceAuthzTokenPollInterval": { - "type": "integer", - "format": "int32" - }, - "deviceAuthzResponseTypeToProcessAuthz": { - "type": "string" - }, - "backchannelClientId": { - "type": "string" - }, - "backchannelRedirectUri": { - "type": "string" - }, - "backchannelAuthenticationEndpoint": { - "type": "string" - }, - "backchannelDeviceRegistrationEndpoint": { - "type": "string" - }, - "backchannelTokenDeliveryModesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "backchannelAuthenticationRequestSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "backchannelUserCodeParameterSupported": { - "type": "boolean" - }, - "backchannelBindingMessagePattern": { - "type": "string" - }, - "backchannelAuthenticationResponseExpiresIn": { - "type": "integer", - "format": "int32" - }, - "backchannelAuthenticationResponseInterval": { - "type": "integer", - "format": "int32" - }, - "backchannelLoginHintClaims": { - "type": "array", - "items": { - "type": "string" - } - }, - "cibaEndUserNotificationConfig": { - "$ref": "#/components/schemas/CIBAEndUserNotificationConfig" - }, - "backchannelRequestsProcessorJobIntervalSec": { - "type": "integer", - "format": "int32" - }, - "backchannelRequestsProcessorJobChunkSize": { - "type": "integer", - "format": "int32" - }, - "cibaGrantLifeExtraTimeSec": { - "type": "integer", - "format": "int32" - }, - "cibaMaxExpirationTimeAllowedSec": { - "type": "integer", - "format": "int32" - }, - "dpopSigningAlgValuesSupported": { - "type": "array", - "items": { - "type": "string" - } - }, - "dpopTimeframe": { - "type": "integer", - "format": "int32" - }, - "dpopJtiCacheTime": { - "type": "integer", - "format": "int32" - }, - "allowIdTokenWithoutImplicitGrantType": { - "type": "boolean" - }, - "discoveryCacheLifetimeInMinutes": { - "type": "integer", - "format": "int32" - }, - "discoveryAllowedKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "discoveryDenyKeys": { - "type": "array", - "items": { - "type": "string" - } - }, - "featureFlags": { - "type": "array", - "items": { - "type": "string" - } - }, - "httpLoggingEnabled": { - "type": "boolean" - }, - "httpLoggingExcludePaths": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - }, - "externalLoggerConfiguration": { - "type": "string" - }, - "agamaConfiguration": { - "$ref": "#/components/schemas/EngineConfig" - }, - "ssaConfiguration": { - "$ref": "#/components/schemas/SsaConfiguration" - }, - "fapi": { - "type": "boolean" - }, - "allResponseTypesSupported": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "code", - "token", - "id_token" - ] - } - }, - "enabledFeatureFlags": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "UNKNOWN", - "HEALTH_CHECK", - "USERINFO", - "CLIENTINFO", - "ID_GENERATION", - "REGISTRATION", - "INTROSPECTION", - "REVOKE_TOKEN", - "REVOKE_SESSION", - "ACTIVE_SESSION", - "END_SESSION", - "STATUS_SESSION", - "JANS_CONFIGURATION", - "CIBA", - "UMA", - "U2F", - "DEVICE_AUTHZ", - "METRIC", - "STAT", - "PAR", - "SSA" - ] - } - }, - "baseDN": { - "type": "string" - }, - "applicationUrl": { - "type": "string" - }, - "personCustomObjectClass": { - "type": "string" - }, - "oxAuthIssuer": { - "type": "string" - }, - "protectionMode": { - "type": "string", - "enum": [ - "OAUTH", - "BYPASS" - ] - }, - "maxCount": { - "type": "integer", - "format": "int32" - }, - "bulkMaxOperations": { - "type": "integer", - "format": "int32" - }, - "bulkMaxPayloadSize": { - "type": "integer", - "format": "int64" - }, - "userExtensionSchemaURI": { - "type": "string" - }, - "metricReporterEnabled": { - "type": "boolean" - } - } - }, - "AuthenticationFilter": { - "required": [ - "baseDn", - "filter" - ], - "type": "object", - "properties": { - "filter": { - "type": "string" - }, - "bind": { - "type": "boolean" - }, - "bindPasswordAttribute": { - "type": "string", - "xml": { - "name": "bind-password-attribute" - } - }, - "baseDn": { - "type": "string", - "xml": { - "name": "base-dn" - } - } - } - }, - "AuthenticationProtectionConfiguration": { - "type": "object", - "properties": { - "attemptExpiration": { - "type": "integer", - "format": "int32" - }, - "maximumAllowedAttemptsWithoutDelay": { - "type": "integer", - "format": "int32" - }, - "delayTime": { - "type": "integer", - "format": "int32" - }, - "bruteForceProtectionEnabled": { - "type": "boolean" - } - } - }, - "AuthorizationRequestCustomParameter": { - "type": "object", - "properties": { - "paramName": { - "type": "string" - }, - "returnInResponse": { - "type": "boolean" - } - } - }, - "CIBAEndUserNotificationConfig": { - "type": "object", - "properties": { - "apiKey": { - "type": "string" - }, - "authDomain": { - "type": "string" - }, - "databaseURL": { - "type": "string" - }, - "projectId": { - "type": "string" - }, - "storageBucket": { - "type": "string" - }, - "messagingSenderId": { - "type": "string" - }, - "appId": { - "type": "string" - }, - "notificationUrl": { - "type": "string" - }, - "notificationKey": { - "type": "string" - }, - "publicVapidKey": { - "type": "string" - } - } - }, - "ClientAuthenticationFilter": { - "required": [ - "baseDn", - "filter" - ], - "type": "object", - "properties": { - "filter": { - "type": "string" - }, - "bind": { - "type": "boolean" - }, - "bindPasswordAttribute": { - "type": "string", - "xml": { - "name": "bind-password-attribute" - } - }, - "baseDn": { - "type": "string", - "xml": { - "name": "base-dn" - } - } - } - }, - "CorsConfigurationFilter": { - "type": "object", - "properties": { - "filterName": { - "type": "string" - }, - "corsEnabled": { - "type": "boolean" - }, - "corsAllowedOrigins": { - "type": "string" - }, - "corsAllowedMethods": { - "type": "string" - }, - "corsAllowedHeaders": { - "type": "string" - }, - "corsExposedHeaders": { - "type": "string" - }, - "corsSupportCredentials": { - "type": "boolean" - }, - "corsLoggingEnabled": { - "type": "boolean" - }, - "corsPreflightMaxAge": { - "type": "integer", - "format": "int32" - }, - "corsRequestDecorate": { - "type": "boolean" - } - } - }, - "EngineConfig": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "rootDir": { - "type": "string" - }, - "templatesPath": { - "type": "string" - }, - "scriptsPath": { - "type": "string" - }, - "serializerType": { - "type": "string", - "enum": [ - "KRYO", - "FST" - ] - }, - "maxItemsLoggedInCollections": { - "type": "integer", - "format": "int32" - }, - "disableTCHV": { - "type": "boolean" - }, - "pageMismatchErrorPage": { - "type": "string" - }, - "interruptionErrorPage": { - "type": "string" - }, - "crashErrorPage": { - "type": "string" - }, - "finishedFlowPage": { - "type": "string" - }, - "bridgeScriptPage": { - "type": "string" - }, - "defaultResponseHeaders": { - "type": "object", - "additionalProperties": { - "type": "string" - } - } - } - }, - "SsaConfiguration": { - "type": "object", - "properties": { - "ssaEndpoint": { - "type": "string" - }, - "ssaCustomAttributes": { - "type": "array", - "items": { - "type": "string" - } - }, - "ssaSigningAlg": { - "type": "string" - }, - "ssaExpirationInDays": { - "type": "integer", - "format": "int32" - } - } - }, - "PersistenceConfiguration": { - "type": "object", - "properties": { - "persistenceType": { - "type": "string" - } - } - }, - "SmtpConfiguration": { - "type": "object", - "properties": { - "valid": { - "type": "boolean" - }, - "host": { - "type": "string" - }, - "port": { - "type": "integer", - "format": "int32" - }, - "requires_ssl": { - "type": "boolean" - }, - "trust_host": { - "type": "boolean" - }, - "from_name": { - "type": "string" - }, - "from_email_address": { - "type": "string" - }, - "requires_authentication": { - "type": "boolean" - }, - "user_name": { - "type": "string" - }, - "password": { - "type": "string" - } - } - }, - "CustomScript": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "inum": { - "type": "string" - }, - "name": { - "maxLength": 60, - "minLength": 2, - "pattern": "^[a-zA-Z0-9_\\-\\:\\/\\.]+$", - "type": "string" - }, - "aliases": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": { - "type": "string" - }, - "script": { - "type": "string" - }, - "scriptType": { - "type": "string", - "enum": [ - "person_authentication", - "introspection", - "resource_owner_password_credentials", - "application_session", - "cache_refresh", - "client_registration", - "id_generator", - "uma_rpt_policy", - "uma_rpt_claims", - "uma_claims_gathering", - "consent_gathering", - "dynamic_scope", - "spontaneous_scope", - "end_session", - "post_authn", - "scim", - "ciba_end_user_notification", - "revoke_token", - "persistence_extension", - "idp", - "discovery", - "update_token", - "config_api_auth", - "modify_ssa_response" - ] - }, - "programmingLanguage": { - "type": "string", - "enum": [ - "python", - "java" - ] - }, - "moduleProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SimpleCustomProperty" - } - }, - "configurationProperties": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SimpleExtendedCustomProperty" - } - }, - "level": { - "type": "integer", - "format": "int32" - }, - "revision": { - "type": "integer", - "format": "int64" - }, - "enabled": { - "type": "boolean" - }, - "scriptError": { - "$ref": "#/components/schemas/ScriptError" - }, - "modified": { - "type": "boolean" - }, - "internal": { - "type": "boolean" - }, - "locationPath": { - "type": "string" - }, - "locationType": { - "type": "string", - "enum": [ - "ldap", - "file" - ] - }, - "baseDn": { - "type": "string" - } - } - }, - "ScriptError": { - "type": "object", - "properties": { - "raisedAt": { - "type": "string", - "format": "date-time" - }, - "stackTrace": { - "type": "string" - } - } - }, - "SimpleCustomProperty": { - "type": "object", - "properties": { - "value1": { - "type": "string" - }, - "value2": { - "type": "string" - }, - "description": { - "type": "string" - } - } - }, - "SimpleExtendedCustomProperty": { - "type": "object", - "properties": { - "value1": { - "type": "string" - }, - "value2": { - "type": "string" - }, - "hide": { - "type": "boolean" - }, - "description": { - "type": "string" - } - } - }, - "JsonNode": { - "type": "object" - }, - "JSONWebKey": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "descr": { - "type": "string" - }, - "kid": { - "type": "string" - }, - "kty": { - "type": "string", - "enum": [ - "EC", - "RSA", - "OKP", - "oct" - ] - }, - "use": { - "type": "string", - "enum": [ - "sig", - "enc" - ] - }, - "alg": { - "type": "string", - "enum": [ - "RS256", - "RS384", - "RS512", - "ES256", - "ES256K", - "ES384", - "ES512", - "PS256", - "PS384", - "PS512", - "EdDSA", - "RSA1_5", - "RSA-OAEP", - "RSA-OAEP-256", - "ECDH-ES", - "ECDH-ES+A128KW", - "ECDH-ES+A192KW", - "ECDH-ES+A256KW", - "A128KW", - "A192KW", - "A256KW", - "A128GCMKW", - "A192GCMKW", - "A256GCMKW", - "PBES2-HS256+A128KW", - "PBES2-HS384+A192KW", - "PBES2-HS512+A256KW", - "dir" - ] - }, - "exp": { - "type": "integer", - "format": "int64" - }, - "crv": { - "type": "string", - "enum": [ - "P-256", - "P-256K", - "P-384", - "P-521", - "Ed25519", - "Ed448" - ] - }, - "x5c": { - "type": "array", - "items": { - "type": "string" - } - }, - "n": { - "type": "string" - }, - "e": { - "type": "string" - }, - "x": { - "type": "string" - }, - "y": { - "type": "string" - } - } - }, - "WebKeysConfiguration": { - "type": "object", - "properties": { - "keys": { - "type": "array", - "items": { - "$ref": "#/components/schemas/JSONWebKey" - } - } - } - }, - "GluuLdapConfiguration": { - "type": "object", - "properties": { - "configId": { - "type": "string" - }, - "bindDN": { - "type": "string" - }, - "bindPassword": { - "type": "string" - }, - "servers": { - "type": "array", - "items": { - "type": "string" - } - }, - "maxConnections": { - "type": "integer", - "format": "int32" - }, - "useSSL": { - "type": "boolean" - }, - "baseDNs": { - "type": "array", - "items": { - "type": "string" - } - }, - "primaryKey": { - "type": "string" - }, - "localPrimaryKey": { - "type": "string" - }, - "useAnonymousBind": { - "type": "boolean" - }, - "enabled": { - "type": "boolean" - }, - "version": { - "type": "integer", - "format": "int32" - }, - "level": { - "type": "integer", - "format": "int32" - } - } - }, - "Logging": { - "type": "object", - "properties": { - "loggingLevel": { - "type": "string" - }, - "loggingLayout": { - "type": "string" - }, - "httpLoggingEnabled": { - "type": "boolean" - }, - "disableJdkLogger": { - "type": "boolean" - }, - "enabledOAuthAuditLogging": { - "type": "boolean" - }, - "externalLoggerConfiguration": { - "type": "string" - }, - "httpLoggingExcludePaths": { - "uniqueItems": true, - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "GluuOrganization": { - "required": [ - "description", - "displayName" - ], - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "displayName": { - "maxLength": 60, - "minLength": 0, - "type": "string" - }, - "description": { - "maxLength": 60, - "minLength": 0, - "type": "string" - }, - "member": { - "type": "string" - }, - "countryName": { - "type": "string" - }, - "organization": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "active", - "inactive", - "expired", - "register" - ] - }, - "managerGroup": { - "type": "string" - }, - "themeColor": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "customMessages": { - "type": "array", - "items": { - "type": "string" - } - }, - "title": { - "type": "string" - }, - "jsLogoPath": { - "type": "string" - }, - "jsFaviconPath": { - "type": "string" - }, - "organizationTitle": { - "type": "string" - }, - "baseDn": { - "type": "string" - } - } - }, - "Scope": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "expirationDate": { - "type": "string", - "format": "date-time" - }, - "deletable": { - "type": "boolean" - }, - "inum": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "id": { - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "description": { - "type": "string" - }, - "scopeType": { - "type": "string", - "enum": [ - "openid", - "dynamic", - "uma", - "spontaneous", - "oauth" - ] - }, - "claims": { - "type": "array", - "items": { - "type": "string" - } - }, - "defaultScope": { - "type": "boolean" - }, - "groupClaims": { - "type": "boolean" - }, - "dynamicScopeScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "umaAuthorizationPolicies": { - "type": "array", - "items": { - "type": "string" - } - }, - "attributes": { - "$ref": "#/components/schemas/ScopeAttributes" - }, - "creatorId": { - "type": "string" - }, - "creatorType": { - "type": "string", - "enum": [ - "none", - "client", - "user", - "auto" - ] - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "creatorAttributes": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "umaType": { - "type": "boolean" - }, - "baseDn": { - "type": "string" - } - } - }, - "ScopeAttributes": { - "type": "object", - "properties": { - "spontaneousClientScopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "showInConfigurationEndpoint": { - "type": "boolean" - } - } - }, - "CustomScope": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "expirationDate": { - "type": "string", - "format": "date-time" - }, - "deletable": { - "type": "boolean" - }, - "inum": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "id": { - "type": "string" - }, - "iconUrl": { - "type": "string" - }, - "description": { - "type": "string" - }, - "scopeType": { - "type": "string", - "enum": [ - "openid", - "dynamic", - "uma", - "spontaneous", - "oauth" - ] - }, - "claims": { - "type": "array", - "items": { - "type": "string" - } - }, - "defaultScope": { - "type": "boolean" - }, - "groupClaims": { - "type": "boolean" - }, - "dynamicScopeScripts": { - "type": "array", - "items": { - "type": "string" - } - }, - "umaAuthorizationPolicies": { - "type": "array", - "items": { - "type": "string" - } - }, - "attributes": { - "$ref": "#/components/schemas/ScopeAttributes" - }, - "creatorId": { - "type": "string" - }, - "creatorType": { - "type": "string", - "enum": [ - "none", - "client", - "user", - "auto" - ] - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "creatorAttributes": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "clients": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Client" - } - }, - "umaType": { - "type": "boolean" - }, - "baseDn": { - "type": "string" - } - } - }, - "SessionId": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "id": { - "type": "string" - }, - "outsideSid": { - "type": "string" - }, - "lastUsedAt": { - "type": "string", - "format": "date-time" - }, - "userDn": { - "type": "string" - }, - "authenticationTime": { - "type": "string", - "format": "date-time" - }, - "state": { - "type": "string", - "enum": [ - "unauthenticated", - "authenticated" - ] - }, - "sessionState": { - "type": "string" - }, - "permissionGranted": { - "type": "boolean" - }, - "isJwt": { - "type": "boolean" - }, - "jwt": { - "type": "string" - }, - "permissionGrantedMap": { - "$ref": "#/components/schemas/SessionIdAccessMap" - }, - "sessionAttributes": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "expirationDate": { - "type": "string", - "format": "date-time" - }, - "deletable": { - "type": "boolean" - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "persisted": { - "type": "boolean" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "ttl": { - "type": "integer", - "format": "int32" - }, - "opbrowserState": { - "type": "string" - } - } - }, - "SessionIdAccessMap": { - "type": "object", - "properties": { - "permissionGranted": { - "type": "object", - "additionalProperties": { - "type": "boolean" - }, - "xml": { - "name": "map" - } - } - } - }, - "User": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "userId": { - "type": "string" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "oxAuthPersistentJwt": { - "type": "array", - "items": { - "type": "string" - } - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomObjectAttribute" - } - }, - "customObjectClasses": { - "type": "array", - "items": { - "type": "string" - } - }, - "status": { - "type": "string" - }, - "baseDn": { - "type": "string" - } - } - }, - "UmaResource": { - "required": [ - "name" - ], - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "inum": { - "type": "string" - }, - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "iconUri": { - "type": "string" - }, - "scopes": { - "type": "array", - "items": { - "type": "string" - } - }, - "scopeExpression": { - "type": "string" - }, - "clients": { - "type": "array", - "items": { - "type": "string" - } - }, - "resources": { - "type": "array", - "items": { - "type": "string" - } - }, - "creator": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "expirationDate": { - "type": "string", - "format": "date-time" - }, - "deletable": { - "type": "boolean" - }, - "ttl": { - "type": "integer", - "format": "int32" - } - } - }, - "DbApplicationConfiguration": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "dynamicConf": { - "type": "string" - }, - "revision": { - "type": "integer", - "format": "int64" - } - } - }, - "Fido2RegistrationData": { - "type": "object", - "properties": { - "createdDate": { - "type": "string", - "format": "date-time" - }, - "updatedDate": { - "type": "string", - "format": "date-time" - }, - "createdBy": { - "type": "string" - }, - "updatedBy": { - "type": "string" - }, - "username": { - "type": "string" - }, - "domain": { - "type": "string" - }, - "userId": { - "type": "string" - }, - "challenge": { - "type": "string" - }, - "attenstationRequest": { - "type": "string" - }, - "attenstationResponse": { - "type": "string" - }, - "uncompressedECPoint": { - "type": "string" - }, - "publicKeyId": { - "type": "string" - }, - "type": { - "type": "string" - }, - "status": { - "type": "string", - "enum": [ - "pending", - "registered", - "compromised" - ] - }, - "counter": { - "type": "integer", - "format": "int32" - }, - "attestationType": { - "type": "string" - }, - "signatureAlgorithm": { - "type": "integer", - "format": "int32" - }, - "applicationId": { - "type": "string" - } - } - }, - "Fido2RegistrationEntry": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "id": { - "type": "string" - }, - "challange": { - "type": "string" - }, - "creationDate": { - "type": "string", - "format": "date-time" - }, - "userInum": { - "type": "string" - }, - "publicKeyId": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "registrationData": { - "$ref": "#/components/schemas/Fido2RegistrationData" - }, - "counter": { - "type": "integer", - "format": "int32" - }, - "registrationStatus": { - "type": "string", - "enum": [ - "pending", - "registered", - "compromised" - ] - }, - "deviceNotificationConf": { - "type": "string" - }, - "challangeHash": { - "type": "string" - }, - "baseDn": { - "type": "string" - } - } - }, - "CustomUser": { - "type": "object", - "properties": { - "dn": { - "type": "string" - }, - "userId": { - "type": "string" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "oxAuthPersistentJwt": { - "type": "array", - "items": { - "type": "string" - } - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomObjectAttribute" - } - }, - "customObjectClasses": { - "type": "array", - "items": { - "type": "string" - } - }, - "inum": { - "type": "string" - }, - "mail": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "jansStatus": { - "type": "string" - }, - "givenName": { - "type": "string" - }, - "userPassword": { - "type": "string" - }, - "status": { - "type": "string" - }, - "baseDn": { - "type": "string" - } - } - }, - "UserPagedResult": { - "type": "object", - "properties": { - "start": { - "type": "integer", - "format": "int32" - }, - "totalEntriesCount": { - "type": "integer", - "format": "int32" - }, - "entriesCount": { - "type": "integer", - "format": "int32" - }, - "entries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomUser" - } - } - } - }, - "UserPatchRequest": { - "type": "object", - "properties": { - "jsonPatchString": { - "type": "string" - }, - "customAttributes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomObjectAttribute" - } - } - } - }, - "LicenseRequest": { - "type": "object", - "properties": { - "licenseKey": { - "type": "string" - } - } - }, - "LicenseApiResponse": { - "type": "object", - "properties": { - "apiResult": { - "type": "boolean" - }, - "responseMessage": { - "type": "string" - }, - "responseCode": { - "type": "integer", - "format": "int32" - } - } - }, - "LicenseResponse": { - "type": "object", - "properties": { - "licenseEnabled": { - "type": "boolean" - }, - "productName": { - "type": "string" - }, - "productCode": { - "type": "string" - }, - "licenseType": { - "type": "string" - }, - "maxActivations": { - "type": "integer", - "format": "int32" - }, - "licenseKey": { - "type": "string" - }, - "licenseActive": { - "type": "boolean" - }, - "validityPeriod": { - "type": "string" - }, - "companyName": { - "type": "string" - }, - "customerEmail": { - "type": "string" - }, - "customerFirstName": { - "type": "string" - }, - "customerLastName": { - "type": "string" - } - } - }, - "LicenseSpringCredentials": { - "type": "object", - "properties": { - "apiKey": { - "type": "string" - }, - "productCode": { - "type": "string" - }, - "sharedKey": { - "type": "string" - }, - "managementKey": { - "type": "string" - }, - "hardwareId": { - "type": "string" - }, - "licenseKey": { - "type": "string" - } - } - }, - "AdminPermission": { - "type": "object", - "properties": { - "permission": { - "type": "string" - }, - "description": { - "type": "string" - }, - "defaultPermissionInToken": { - "type": "boolean" - } - } - }, - "RolePermissionMapping": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "AdminRole": { - "type": "object", - "properties": { - "role": { - "type": "string" - }, - "description": { - "type": "string" - }, - "deletable": { - "type": "boolean" - } - } - } - }, - "securitySchemes": { - "oauth2": { - "type": "oauth2", - "flows": { - "clientCredentials": { - "tokenUrl": "https://{op-hostname}/.../token", - "scopes": { - "https://jans.io/oauth/jans-auth-server/config/properties.readonly": "View Auth Server properties related information", - "https://jans.io/oauth/jans-auth-server/config/properties.write": "Manage Auth Server properties related information", - "https://jans.io/oauth/config/attributes.readonly": "View attribute related information", - "https://jans.io/oauth/config/attributes.write": "Manage attribute related information", - "https://jans.io/oauth/config/attributes.delete": "Delete attribute related information", - "https://jans.io/oauth/config/acrs.readonly": "View ACRS related information", - "https://jans.io/oauth/config/acrs.write": "Manage ACRS related information", - "https://jans.io/oauth/config/database/ldap.readonly": "View LDAP database related information", - "https://jans.io/oauth/config/database/ldap.write": "Manage LDAP database related information", - "https://jans.io/oauth/config/database/ldap.delete": "Delete LDAP database related information", - "https://jans.io/oauth/config/scripts.readonly": "View cache scripts information", - "https://jans.io/oauth/config/scripts.write": "Manage scripts related information", - "https://jans.io/oauth/config/scripts.delete": "Delete scripts related information", - "https://jans.io/oauth/config/cache.readonly": "View cache related information", - "https://jans.io/oauth/config/cache.write": "Manage cache related information", - "https://jans.io/oauth/config/smtp.readonly": "View SMTP related information", - "https://jans.io/oauth/config/smtp.write": "Manage SMTP related information", - "https://jans.io/oauth/config/smtp.delete": "Delete SMTP related information", - "https://jans.io/oauth/config/logging.readonly": "View logging related information", - "https://jans.io/oauth/config/logging.write": "Manage logging related information", - "https://jans.io/oauth/config/jwks.readonly": "View JWKS related information", - "https://jans.io/oauth/config/jwks.write": "Manage JWKS related information", - "https://jans.io/oauth/config/jwks.delete": "Delete JWKS related information", - "https://jans.io/oauth/config/openid/clients.readonly": "View clients related information", - "https://jans.io/oauth/config/openid/clients.write": "Manage clients related information", - "https://jans.io/oauth/config/openid/clients.delete": "Delete clients related information", - "https://jans.io/oauth/config/scopes.readonly": "View scope related information", - "https://jans.io/oauth/config/scopes.write": "Manage scope related information", - "https://jans.io/oauth/config/scopes.delete": "Delete scope related information", - "https://jans.io/oauth/config/uma/resources.readonly": "View UMA Resource related information", - "https://jans.io/oauth/config/uma/resources.write": "Manage UMA Resource related information", - "https://jans.io/oauth/config/uma/resources.delete": "Delete UMA Resource related information", - "https://jans.io/oauth/config/stats.readonly": "View server with basic statistic", - "https://jans.io/oauth/config/organization.readonly": "View organization configuration information", - "https://jans.io/oauth/config/organization.write": "Manage organization configuration information", - "https://jans.io/oauth/config/agama.readonly": "View Agama Flow related information", - "https://jans.io/oauth/config/agama.write": "Manage Agama Flow related information", - "https://jans.io/oauth/config/agama.delete": "Delete Agama Flow related information", - "https://jans.io/oauth/jans-auth-server/session.readonly": "View Session related information", - "https://jans.io/oauth/jans-auth-server/session.delete": "Delete Session information", - "https://jans.io/oauth/config/fido2.readonly": "View fido2 configuration related information", - "https://jans.io/oauth/config/fido2.write": "Manage fido2 configuration related information", - "https://jans.io/oauth/config/user.readonly": "View user related information", - "https://jans.io/oauth/config/user.write": "Manage user related information", - "https://jans.io/oauth/config/user.delete": "Delete user related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.read": "View admin user role related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write": "Manage admin user role related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.read": "View admin permission related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write": "Manage admin permission related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly": "View role-permission mapping related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write": "Manage role-permission mapping related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly": "Delete admin-ui license related information", - "https://jans.io/oauth/jans-auth-server/config/adminui/license.write": "View admin-ui license related information", - "https://jans.io/scim/config.readonly": "View SCIM configuration related information", - "https://jans.io/scim/config.write": "Manage SCIM configuration related information" - } - } - } - } - } - } -} \ No newline at end of file diff --git a/jans-cli-tui/cli/merger.py b/jans-cli-tui/cli/merger.py deleted file mode 100644 index 0638ff2ad50..00000000000 --- a/jans-cli-tui/cli/merger.py +++ /dev/null @@ -1,38 +0,0 @@ -import glob -import ruamel.yaml -from ruamel.yaml.representer import RoundTripRepresenter -import jsonmerge -import json -from collections import OrderedDict - -main_yaml_fn = 'jans-config-api-swagger-auto.yaml' - -def read_yaml(yaml_fn): - - with open(yaml_fn) as f: - return ruamel.yaml.load(f.read().replace('\t', ''), ruamel.yaml.RoundTripLoader) - -main_doc = read_yaml(main_yaml_fn) - -for yaml_fn in glob.glob('*.yaml'): - if 'plugin' in yaml_fn: - plugin_doc = read_yaml(yaml_fn) - main_doc['tags'] += plugin_doc['tags'] - - for key in ('paths', 'components'): - main_doc[key] = jsonmerge.merge(main_doc[key], plugin_doc[key]) - - -with open('jca.json', 'w') as w: - json.dump(main_doc, w, indent=2) - - -class MyRepresenter(RoundTripRepresenter): - pass - -ruamel.yaml.add_representer(OrderedDict, MyRepresenter.represent_dict, representer=MyRepresenter) -yaml = ruamel.yaml.YAML() -yaml.Representer = MyRepresenter - -with open('jca.yaml', 'w') as w: - yaml.dump(main_doc, w) diff --git a/jans-cli-tui/cli/ops/jca/fido2-plugin-swagger.yaml b/jans-cli-tui/cli/ops/jca/fido2-plugin-swagger.yaml new file mode 100644 index 00000000000..000410e1bc7 --- /dev/null +++ b/jans-cli-tui/cli/ops/jca/fido2-plugin-swagger.yaml @@ -0,0 +1,199 @@ +openapi: 3.0.1 +info: + title: Jans Config API - Fido2 + contact: + name: Gluu Support + url: https://support.gluu.org + email: xxx@gluu.org + license: + name: Apache 2.0 + url: https://github.com/JanssenProject/jans/blob/main/LICENSE + version: 1.0.0 +servers: +- url: https://jans.io/ + description: The Jans server + variables: {} +tags: +- name: Fido2 - Configuration +paths: + /fido2/config: + get: + tags: + - Fido2 - Configuration + summary: Gets Jans Authorization Server Fido2 configuration properties + description: Gets Jans Authorization Server Fido2 configuration properties + operationId: get-properties-fido2 + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/DbApplicationConfiguration' + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/fido2.readonly + put: + tags: + - Fido2 - Configuration + summary: Updates Fido2 configuration properties + description: Updates Fido2 configuration properties + operationId: put-properties-fido2 + requestBody: + description: Fido2Config + content: + application/json: + schema: + $ref: '#/components/schemas/DbApplicationConfiguration' + responses: + "200": + description: Fido2Config + content: + application/json: + schema: + type: string + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/fido2.write + /fido2/registration/entries/{username}: + get: + tags: + - Fido2 - Registration + summary: Get details of connected FIDO2 devices registered to user + description: Get details of connected FIDO2 devices registered to user + operationId: get-registration-entries-fido2 + parameters: + - name: username + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Fido2RegistrationEntry' + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/fido2.readonly +components: + schemas: + DbApplicationConfiguration: + type: object + properties: + dn: + type: string + dynamicConf: + type: string + revision: + type: integer + format: int64 + Fido2RegistrationData: + type: object + properties: + createdDate: + type: string + format: date-time + updatedDate: + type: string + format: date-time + createdBy: + type: string + updatedBy: + type: string + username: + type: string + domain: + type: string + userId: + type: string + challenge: + type: string + attenstationRequest: + type: string + attenstationResponse: + type: string + uncompressedECPoint: + type: string + publicKeyId: + type: string + type: + type: string + status: + type: string + enum: + - pending + - registered + - compromised + counter: + type: integer + format: int32 + attestationType: + type: string + signatureAlgorithm: + type: integer + format: int32 + applicationId: + type: string + Fido2RegistrationEntry: + type: object + properties: + dn: + type: string + id: + type: string + challange: + type: string + creationDate: + type: string + format: date-time + userInum: + type: string + publicKeyId: + type: string + displayName: + type: string + registrationData: + $ref: '#/components/schemas/Fido2RegistrationData' + counter: + type: integer + format: int32 + registrationStatus: + type: string + enum: + - pending + - registered + - compromised + deviceNotificationConf: + type: string + challangeHash: + type: string + baseDn: + type: string + securitySchemes: + oauth2: + type: oauth2 + flows: + clientCredentials: + tokenUrl: "https://{op-hostname}/.../token" + scopes: + https://jans.io/oauth/config/fido2.readonly: View fido2 configuration + related information + https://jans.io/oauth/config/fido2.write: Manage fido2 configuration related + information diff --git a/jans-cli-tui/cli/ops/jca/jans-admin-ui-plugin-swagger.yaml b/jans-cli-tui/cli/ops/jca/jans-admin-ui-plugin-swagger.yaml new file mode 100644 index 00000000000..e3c9c9b3e63 --- /dev/null +++ b/jans-cli-tui/cli/ops/jca/jans-admin-ui-plugin-swagger.yaml @@ -0,0 +1,697 @@ +openapi: 3.0.1 +info: + title: Jans Config API - Admin-UI + contact: + name: Gluu Support + url: https://support.gluu.org + email: xxx@gluu.org + license: + name: Apache 2.0 + url: https://github.com/JanssenProject/jans/blob/main/LICENSE + version: 1.0.0 +servers: +- url: https://jans.io/ + description: The Jans server + variables: {} +tags: +- name: Admin UI - Role +- name: Admin UI - Permission +- name: Admin UI - Role-Permissions Mapping +- name: Admin UI - License +paths: + /admin-ui/license/activateLicense: + post: + tags: + - Admin UI - License + summary: Activate license using license-key + description: Activate license using license-key + operationId: activate-adminui-license + requestBody: + description: LicenseRequest object + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseRequest' + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + "401": + description: Unauthorized + "500": + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/license.write + /admin-ui/license/licenseDetails: + get: + tags: + - Admin UI - License + summary: Get admin ui license details + description: Get admin ui license details + operationId: get-adminui-license + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseResponse' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly + /admin-ui/license/isActive: + get: + tags: + - Admin UI - License + summary: Check if admin-ui license is active + description: Check if admin-ui license is active + operationId: is-license-active + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + "401": + description: Unauthorized + "500": + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly + /admin-ui/license/saveApiCredentials: + post: + tags: + - Admin UI - License + summary: Save license api credentials + description: Save license api credentials + operationId: save-license-api-credentials + requestBody: + description: LicenseSpringCredentials object + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseSpringCredentials' + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + "401": + description: Unauthorized + "500": + description: InternalServerError + content: + application/json: + schema: + $ref: '#/components/schemas/LicenseApiResponse' + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/license.write + /admin-ui/adminUIPermissions: + get: + tags: + - Admin UI - Permission + summary: Get all admin ui permissions + description: Get all admin ui permissions + operationId: get-all-adminui-permissions + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminPermission' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.readonly + put: + tags: + - Admin UI - Permission + summary: Edit admin ui permissions + description: Edit admin ui permissions + operationId: edit-adminui-permission + requestBody: + description: AdminPermission object + content: + application/json: + schema: + $ref: '#/components/schemas/AdminPermission' + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminPermission' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write + post: + tags: + - Admin UI - Permission + summary: Add admin ui permissions + description: Add admin ui permissions + operationId: add-adminui-permission + requestBody: + description: AdminPermission object + content: + application/json: + schema: + $ref: '#/components/schemas/AdminPermission' + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminPermission' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write + /admin-ui/adminUIRolePermissionsMapping: + get: + tags: + - Admin UI - Role-Permissions Mapping + summary: Get all admin ui role-permissions mapping + description: Get all admin ui role-permissions mapping + operationId: get-all-adminui-role-permissions + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RolePermissionMapping' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly + put: + tags: + - Admin UI - Role-Permissions Mapping + summary: Map permissions to role + description: Map permissions to role + operationId: map-permissions-to-role + requestBody: + description: RolePermissionMapping object + content: + application/json: + schema: + $ref: '#/components/schemas/RolePermissionMapping' + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RolePermissionMapping' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write + post: + tags: + - Admin UI - Role-Permissions Mapping + summary: Add role-permissions mapping + description: Add role-permissions mapping + operationId: add-role-permissions-mapping + requestBody: + description: RolePermissionMapping object + content: + application/json: + schema: + $ref: '#/components/schemas/RolePermissionMapping' + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RolePermissionMapping' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write + /admin-ui/adminUIRoles: + get: + tags: + - Admin UI - Role + summary: Get all admin ui roles + description: Get all admin ui roles + operationId: get-all-adminui-roles + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminRole' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.readonly + put: + tags: + - Admin UI - Role + summary: Edit admin ui role + description: Edit admin ui role + operationId: edit-adminui-role + requestBody: + description: AdminRole object + content: + application/json: + schema: + $ref: '#/components/schemas/AdminRole' + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminRole' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write + post: + tags: + - Admin UI - Role + summary: Add admin ui role + description: Add admin ui role + operationId: add-adminui-role + requestBody: + description: AdminRole object + content: + application/json: + schema: + $ref: '#/components/schemas/AdminRole' + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminRole' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write + /admin-ui/adminUIPermissions/{adminUIPermission}: + get: + tags: + - Admin UI - Permission + summary: Get admin ui permission by permission-name + description: Get admin ui permission by permission-name + operationId: get-adminui-permission + parameters: + - name: adminUIPermission + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminPermission' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.readonly + delete: + tags: + - Admin UI - Permission + summary: Delete admin ui permission by permission-name + description: Delete admin ui permission by permission-name + operationId: delete-adminui-permission + parameters: + - name: adminUIPermission + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminPermission' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write + /admin-ui/adminUIRoles/{adminUIRole}: + get: + tags: + - Admin UI - Role + summary: Get admin ui role details by role-name + description: Get admin ui role details by role-name + operationId: get-adminui-role + parameters: + - name: adminUIRole + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminRole' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.readonly + delete: + tags: + - Admin UI - Role + summary: Delete admin ui role by role-name + description: Delete admin ui role by role-name + operationId: delete-adminui-role + parameters: + - name: adminUIRole + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AdminRole' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write + /admin-ui/adminUIRolePermissionsMapping/{adminUIRole}: + get: + tags: + - Admin UI - Role-Permissions Mapping + summary: Get admin ui role-permissions mapping by role-name + description: Get admin ui role-permissions mapping by role-name + operationId: get-adminui-role-permissions + parameters: + - name: adminUIRole + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RolePermissionMapping' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly + delete: + tags: + - Admin UI - Role-Permissions Mapping + summary: Remove role-permissions mapping by role-name + description: Remove role-permissions mapping by role-name + operationId: remove-role-permissions-permission + parameters: + - name: adminUIRole + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RolePermissionMapping' + "400": + description: Bad Request + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write +components: + schemas: + LicenseRequest: + type: object + properties: + licenseKey: + type: string + LicenseApiResponse: + type: object + properties: + apiResult: + type: boolean + responseMessage: + type: string + responseCode: + type: integer + format: int32 + LicenseResponse: + type: object + properties: + licenseEnabled: + type: boolean + productName: + type: string + productCode: + type: string + licenseType: + type: string + maxActivations: + type: integer + format: int32 + licenseKey: + type: string + licenseActive: + type: boolean + validityPeriod: + type: string + companyName: + type: string + customerEmail: + type: string + customerFirstName: + type: string + customerLastName: + type: string + LicenseSpringCredentials: + type: object + properties: + apiKey: + type: string + productCode: + type: string + sharedKey: + type: string + managementKey: + type: string + hardwareId: + type: string + licenseKey: + type: string + AdminPermission: + type: object + properties: + permission: + type: string + description: + type: string + defaultPermissionInToken: + type: boolean + RolePermissionMapping: + type: object + properties: + role: + type: string + permissions: + type: array + items: + type: string + AdminRole: + type: object + properties: + role: + type: string + description: + type: string + deletable: + type: boolean + securitySchemes: + oauth2: + type: oauth2 + flows: + clientCredentials: + tokenUrl: "https://{op-hostname}/.../token" + scopes: + https://jans.io/oauth/jans-auth-server/config/adminui/user/role.read: View + admin user role related information + https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write: Manage + admin user role related information + https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.read: View + admin permission related information + https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write: Manage + admin permission related information + https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly: View + role-permission mapping related information + https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write: Manage + role-permission mapping related information + https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly: Delete + admin-ui license related information + https://jans.io/oauth/jans-auth-server/config/adminui/license.write: View + admin-ui license related information diff --git a/jans-cli-tui/cli/jca.yaml b/jans-cli-tui/cli/ops/jca/jans-config-api-swagger-auto.yaml similarity index 85% rename from jans-cli-tui/cli/jca.yaml rename to jans-cli-tui/cli/ops/jca/jans-config-api-swagger-auto.yaml index f28ea9dbf3f..0aedf42836a 100644 --- a/jans-cli-tui/cli/jca.yaml +++ b/jans-cli-tui/cli/ops/jca/jans-config-api-swagger-auto.yaml @@ -37,13 +37,6 @@ tags: - name: Auth - Session Management - name: Organization Configuration - name: Auth Server Health - Check -- name: Fido2 - Configuration -- name: Configuration – User Management -- name: Admin UI - Role -- name: Admin UI - Permission -- name: Admin UI - Role-Permissions Mapping -- name: Admin UI - License -- name: SCIM - Config Management paths: /api/v1/health: get: @@ -53,7 +46,7 @@ paths: description: Returns application health status operationId: get-config-health responses: - '200': + "200": description: Ok content: application/json: @@ -61,7 +54,7 @@ paths: type: array items: $ref: '#/components/schemas/HealthStatus' - '500': + "500": description: InternalServerError /api/v1/health/live: get: @@ -71,13 +64,13 @@ paths: description: Returns application liveness status operationId: get-config-health-live responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/Status' - '500': + "500": description: InternalServerError /api/v1/health/ready: get: @@ -87,13 +80,13 @@ paths: description: Returns application readiness status operationId: get-config-health-ready responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/Status' - '500': + "500": description: InternalServerError /api/v1/health/server-stat: get: @@ -103,13 +96,13 @@ paths: description: Returns application server status operationId: get-server-stat responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/StatsData' - '500': + "500": description: InternalServerError /api/v1/acrs: get: @@ -119,7 +112,7 @@ paths: description: Gets default authentication method. operationId: get-acrs responses: - '200': + "200": description: Ok content: application/json: @@ -132,9 +125,9 @@ paths: { "defaultAcr": "basic" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -159,17 +152,17 @@ paths: "defaultAcr": "basic" } responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/AuthenticationMethod' - '400': + "400": description: Bad Request - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -186,7 +179,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: limit in: query schema: @@ -215,7 +208,7 @@ paths: type: boolean default: false responses: - '200': + "200": description: Agama Flows content: application/json: @@ -243,9 +236,9 @@ paths: } ] } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -272,7 +265,7 @@ paths: "qname": "test" } responses: - '201': + "201": description: Created content: application/json: @@ -287,9 +280,9 @@ paths: "source":"Flow test\n\tBasepath \"hello\"\n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\"", "qname": "test" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -313,7 +306,7 @@ paths: type: boolean default: false responses: - '200': + "200": description: Agama Flow content: application/json: @@ -333,9 +326,9 @@ paths: }, "baseDn": "agFlowQname=test,ou=flows,ou=agama,o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -365,7 +358,7 @@ paths: in = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\n\ Finish \"john_doe\"\n" responses: - '201': + "201": description: Created content: application/json: @@ -380,11 +373,11 @@ paths: "source":"Flow test\n\tBasepath \"hello\"\n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\"", "qname": "test" } - '400': + "400": description: Bad Request - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -402,13 +395,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -439,7 +432,7 @@ paths: value: | [{ "op": "replace", "path": "/source", "value": "Flow test\n\tBasepath \"hello\"\n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\""}] responses: - '200': + "200": description: Patched Agama Flow content: application/json: @@ -454,11 +447,11 @@ paths: "source":"Flow test\n\tBasepath \"hello\"\n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\"", "qname": "test" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -489,7 +482,7 @@ paths: in = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\n\ Finish \"john_doe\"\n" responses: - '200': + "200": description: Ok content: application/json: @@ -504,11 +497,11 @@ paths: "source":"Flow test\n\tBasepath \"hello\"\n\nin = { name: \"John\" }\nRRF \"index.ftlh\" in\n\nLog \"Done!\"\nFinish \"john_doe\"", "qname": "test" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -531,7 +524,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: status in: query schema: @@ -554,7 +547,7 @@ paths: type: string default: ascending responses: - '200': + "200": description: Ok content: application/json: @@ -637,9 +630,9 @@ paths: "baseDn": "inum=0C18,ou=attributes,o=jans" } } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -688,7 +681,7 @@ paths: "whitePagesCanView": false } responses: - '200': + "200": description: Ok content: application/json: @@ -725,9 +718,9 @@ paths: ], "whitePagesCanView": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -776,7 +769,7 @@ paths: "whitePagesCanView": false } responses: - '201': + "201": description: Created content: application/json: @@ -813,9 +806,9 @@ paths: ], "whitePagesCanView": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -834,7 +827,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -877,9 +870,9 @@ paths: "userCanAccess": true, "baseDn": "inum=08E2,ou=attributes,o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -897,13 +890,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -934,7 +927,7 @@ paths: value: | [ {op:replace, path: displayName, value: "CustomAttribute" } ] responses: - '200': + "200": description: Updated GluuAttribute content: application/json: @@ -971,11 +964,11 @@ paths: ], "whitePagesCanView": false } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -988,7 +981,7 @@ paths: description: Returns cache configuration. operationId: get-config-cache responses: - '200': + "200": description: Cache configuration details content: application/json: @@ -1028,9 +1021,9 @@ paths: "disableAttemptUpdateBeforeInsert": false } } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1058,7 +1051,7 @@ paths: : 32768,\n \"defaultPutExpiration\":80,\n \"connectionFactoryType\"\ : \"DEFAULT\"\n }}] \n" responses: - '200': + "200": description: Cache configuration details content: application/json: @@ -1098,9 +1091,9 @@ paths: "disableAttemptUpdateBeforeInsert": false } } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1113,7 +1106,7 @@ paths: description: Returns in-Memory cache configuration. operationId: get-config-cache-in-memory responses: - '200': + "200": description: In-Memory configuration details content: application/json: @@ -1126,9 +1119,9 @@ paths: { "defaultPutExpiration": 60 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1153,7 +1146,7 @@ paths: "defaultPutExpiration": 60 } responses: - '200': + "200": description: In-Memory cache configuration details content: application/json: @@ -1166,9 +1159,9 @@ paths: { "defaultPutExpiration": 60 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1193,7 +1186,7 @@ paths: value: "[{ \"op\": \"replace\", \"path\": \"/defaultPutExpiration\"\ , \"value\":80}] \n" responses: - '200': + "200": description: In-Memory cache configuration details content: application/json: @@ -1206,9 +1199,9 @@ paths: { "defaultPutExpiration": 60 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1221,7 +1214,7 @@ paths: description: Returns memcached cache configuration. operationId: get-config-cache-memcached responses: - '200': + "200": description: Memcached configuration details content: application/json: @@ -1238,9 +1231,9 @@ paths: "defaultPutExpiration": 80, "connectionFactoryType": "DEFAULT" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1269,7 +1262,7 @@ paths: "connectionFactoryType": "DEFAULT" } responses: - '200': + "200": description: Native persistence cache configuration details content: application/json: @@ -1286,11 +1279,11 @@ paths: "defaultPutExpiration": 80, "connectionFactoryType": "DEFAULT" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -1315,7 +1308,7 @@ paths: value: "[{ \"op\": \"replace\", \"path\": \"/maxOperationQueueLength\"\ , \"value\":10001}] \n" responses: - '200': + "200": description: Memcached cache configuration details content: application/json: @@ -1332,9 +1325,9 @@ paths: "defaultPutExpiration": 80, "connectionFactoryType": "DEFAULT" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1347,7 +1340,7 @@ paths: description: Returns native persistence cache configuration. operationId: get-config-cache-native-persistence responses: - '200': + "200": description: Native persistence configuration details content: application/json: @@ -1363,9 +1356,9 @@ paths: "deleteExpiredOnGetRequest": false, "disableAttemptUpdateBeforeInsert": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1393,7 +1386,7 @@ paths: "disableAttemptUpdateBeforeInsert": false } responses: - '200': + "200": description: Native persistence cache configuration details content: application/json: @@ -1409,9 +1402,9 @@ paths: "deleteExpiredOnGetRequest": false, "disableAttemptUpdateBeforeInsert": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1436,7 +1429,7 @@ paths: value: "[{ \"op\": \"replace\", \"path\": \"/defaultCleanupBatchSize\"\ , \"value\":10001}] \n" responses: - '200': + "200": description: Native persistence cache configuration details content: application/json: @@ -1452,9 +1445,9 @@ paths: "deleteExpiredOnGetRequest": false, "disableAttemptUpdateBeforeInsert": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1467,7 +1460,7 @@ paths: description: Returns Redis cache configuration operationId: get-config-cache-redis responses: - '200': + "200": description: Redis cache configuration details content: application/json: @@ -1488,9 +1481,9 @@ paths: "soTimeout": 3000, "maxRetryAttempts": 5 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1523,7 +1516,7 @@ paths: "maxRetryAttempts": 5 } responses: - '200': + "200": description: Redis cache configuration details content: application/json: @@ -1544,9 +1537,9 @@ paths: "soTimeout": 3000, "maxRetryAttempts": 5 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1571,7 +1564,7 @@ paths: value: "[{ \"op\": \"replace\", \"path\": \"/defaultPutExpiration\"\ , \"value\":80}] \n" responses: - '200': + "200": description: Redis cache configuration details content: application/json: @@ -1592,9 +1585,9 @@ paths: "soTimeout": 3000, "maxRetryAttempts": 5 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -1617,7 +1610,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: startIndex in: query schema: @@ -1633,7 +1626,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -2431,9 +2424,9 @@ paths: } ] } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -2520,7 +2513,7 @@ paths: "displayName": "Api Client" } responses: - '200': + "200": description: Ok content: application/json: @@ -2654,11 +2647,11 @@ paths: "baseDn": "inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans", "inum": "1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -2742,7 +2735,7 @@ paths: "displayName": "Api Client" } responses: - '201': + "201": description: Created content: application/json: @@ -2876,9 +2869,9 @@ paths: "baseDn": "inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans", "inum": "1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -2897,7 +2890,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -3031,9 +3024,9 @@ paths: "baseDn": "inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans", "inum": "1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3051,13 +3044,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3088,7 +3081,7 @@ paths: value: "[{ \"op\": \"replace\", \"path\": \"/responseTypes\", \"value\"\ :[\"code\",\"token\"]}] \n" responses: - '200': + "200": description: Ok content: application/json: @@ -3222,11 +3215,11 @@ paths: "baseDn": "inum=1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6,ou=clients,o=jans", "inum": "1800.768b3d38-a6e8-4be4-93d1-72df33d34fd6" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3239,15 +3232,15 @@ paths: description: Gets all Jans authorization server configuration properties. operationId: get-properties responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/AppConfiguration' - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3277,15 +3270,15 @@ paths: {"op":"add","path":"/loggingLevel","value":"TRACE"} ] responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/AppConfiguration' - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3298,7 +3291,7 @@ paths: description: Returns persistence type configured for Jans authorization server. operationId: get-properties-persistence responses: - '200': + "200": description: Jans Authorization Server persistence type content: application/json: @@ -3311,9 +3304,9 @@ paths: { "persistenceType": "ldap" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3326,7 +3319,7 @@ paths: description: Returns SMTP server configuration operationId: get-config-smtp responses: - '200': + "200": description: Ok content: application/json: @@ -3343,9 +3336,9 @@ paths: "trust_host": false, "requires_authentication": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3379,7 +3372,7 @@ paths: "password": "password" } responses: - '200': + "200": description: Ok content: application/json: @@ -3396,11 +3389,11 @@ paths: "trust_host": false, "requires_authentication": false } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3434,7 +3427,7 @@ paths: "password": "password" } responses: - '201': + "201": description: Created content: application/json: @@ -3451,9 +3444,9 @@ paths: "trust_host": false, "requires_authentication": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3465,11 +3458,11 @@ paths: description: Deletes SMTP server configuration operationId: delete-config-smtp responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3482,16 +3475,16 @@ paths: description: Test SMTP server configuration operationId: test-config-smtp responses: - '200': + "200": description: Ok content: application/json: schema: type: boolean description: boolean value true if successful - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3514,7 +3507,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: startIndex in: query schema: @@ -3532,7 +3525,7 @@ paths: type: string default: ascending responses: - '200': + "200": description: Ok content: application/json: @@ -3593,9 +3586,9 @@ paths: } ] } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3636,7 +3629,7 @@ paths: "locationType": "ldap" } responses: - '200': + "200": description: Ok content: application/json: @@ -3668,11 +3661,11 @@ paths: "locationType": "ldap", "baseDn": "inum=4144edf6-af99-451d-be29-f3eb5c0e9143,ou=scripts,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3713,7 +3706,7 @@ paths: "locationType": "ldap" } responses: - '201': + "201": description: Created content: application/json: @@ -3745,9 +3738,9 @@ paths: "locationType": "ldap", "baseDn": "inum=4144edf6-af99-451d-be29-f3eb5c0e9143,ou=scripts,o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -3766,13 +3759,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3804,17 +3797,17 @@ paths: :false},{ \"op\": \"replace\", \"path\": \"/revision\", \"value\"\ :2}] \n" responses: - '200': + "200": description: Ok content: application/json: schema: $ref: '#/components/schemas/CustomScript' - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3833,7 +3826,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -3865,11 +3858,11 @@ paths: "locationType": "ldap", "baseDn": "inum=0300-BA90,ou=scripts,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3888,7 +3881,7 @@ paths: schema: type: string responses: - '200': + "200": description: CustomScript content: application/json: @@ -3920,11 +3913,11 @@ paths: "locationType": "ldap", "baseDn": "inum=0300-BA90,ou=scripts,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -3952,7 +3945,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: startIndex in: query schema: @@ -3970,7 +3963,7 @@ paths: type: string default: ascending responses: - '200': + "200": description: Ok content: application/json: @@ -4009,11 +4002,11 @@ paths: } ] } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -4026,7 +4019,7 @@ paths: description: Returns auth server health status operationId: get-auth-server-health responses: - '200': + "200": description: Ok content: application/json: @@ -4040,7 +4033,7 @@ paths: "status": "running", "db_status": "online" } - '500': + "500": description: InternalServerError /api/v1/config/jwks/{kid}: get: @@ -4056,7 +4049,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -4078,9 +4071,9 @@ paths: "n": "EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ", "e": "AQAB" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4098,13 +4091,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '406': + "406": description: Not Acceptable - '500': + "500": description: InternalServerError security: - oauth2: @@ -4136,7 +4129,7 @@ paths: :\"enc\"},\n { \"op\": \"replace\", \"path\": \"/e\", \"value\"\ :\"Updated_XYZ\"}\n] \n" responses: - '200': + "200": description: Ok content: application/json: @@ -4158,11 +4151,11 @@ paths: "n": "EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ", "e": "Updated_XYZ" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -4175,7 +4168,7 @@ paths: description: Gets list of JSON Web Key (JWK) used by server operationId: get-config-jwks responses: - '200': + "200": description: Ok content: application/json: @@ -4203,9 +4196,9 @@ paths: \ \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\"\ : 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n\ \ ]\n}\n" - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4244,7 +4237,7 @@ paths: \ \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\": 1666775666429,\n\ \ \"alg\": \"ECDH-ES\"\n }\n ]\n}\n" responses: - '200': + "200": description: Ok content: application/json: @@ -4272,9 +4265,9 @@ paths: \ \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\"\ : 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n\ \ ]\n}\n" - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4306,7 +4299,7 @@ paths: ,\n \"exp\": 1666775666429,\n \"alg\": \"\ ECDH-ES\"\n }\n\t}\n] \n" responses: - '200': + "200": description: Ok content: application/json: @@ -4334,9 +4327,9 @@ paths: \ \"y\": \"7n6oS9y5vN2XrTKMKilo\",\n \"exp\"\ : 1666775666429,\n \"alg\": \"ECDH-ES\"\n }\n\ \ ]\n}\n" - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4372,7 +4365,7 @@ paths: "n": "EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ" } responses: - '201': + "201": description: Created content: application/json: @@ -4394,11 +4387,11 @@ paths: "n": "EFZbw1Jw7dlz4Xrdj12pQlLVuEhyVaTziQp3LvspqxyACHQb8XSKFdKZaa1eBF8PGN5zDN_d-tIrAZYnQS2gH8BoPIuB3Z9AoCLTzifnPvmOwW_e-_Wags_ApZiEfF2Po0InV5NeJAyoIpaGhlwjqqOWXm_GpCASAk9ZD8Ebnmy9RM71zDCgmvq_hPueKnbNTZdQ3TQdzEuSwxbWEHu16v5MbF7QtNzvFSFlllhgwqI2ccEljDbs18j3DUS2B1VTTAr_DLR3SVyCYbKBbRQ", "e": "AQAB" } - '401': + "401": description: Unauthorized - '406': + "406": description: Not Acceptable - '500': + "500": description: InternalServerError security: - oauth2: @@ -4411,7 +4404,7 @@ paths: description: Gets list of existing LDAP configurations. operationId: get-config-database-ldap responses: - '200': + "200": description: Ok content: application/json: @@ -4444,9 +4437,9 @@ paths: "level": 0 } ] - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4487,7 +4480,7 @@ paths: "level": 0 } responses: - '200': + "200": description: Ok content: application/json: @@ -4516,11 +4509,11 @@ paths: "version": 0, "level": 0 } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -4561,7 +4554,7 @@ paths: "level": 0 } responses: - '201': + "201": description: Created content: application/json: @@ -4590,11 +4583,11 @@ paths: "version": 0, "level": 0 } - '401': + "401": description: Unauthorized - '406': + "406": description: Not Acceptable - '500': + "500": description: InternalServerError security: - oauth2: @@ -4613,7 +4606,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -4642,9 +4635,9 @@ paths: "version": 0, "level": 0 } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4662,17 +4655,17 @@ paths: schema: type: string responses: - '204': + "204": description: No Content content: application/json: schema: $ref: '#/components/schemas/GluuLdapConfiguration' - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -4702,7 +4695,7 @@ paths: description: Request json example value: example/auth/database/ldap/ldap-patch responses: - '200': + "200": description: Ok content: application/json: @@ -4731,11 +4724,11 @@ paths: "version": 0, "level": 0 } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -4759,16 +4752,16 @@ paths: value: "[{ \"op\": \"replace\", \"path\": \"/maxConnections\", \"\ value\":800}] \n" responses: - '200': + "200": description: Ok content: application/json: schema: type: boolean description: boolean value true if successful - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4781,7 +4774,7 @@ paths: description: Returns Jans Authorization Server logging settings operationId: get-config-logging responses: - '200': + "200": description: Ok content: application/json: @@ -4798,9 +4791,9 @@ paths: "disableJdkLogger": true, "enabledOAuthAuditLogging": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4829,7 +4822,7 @@ paths: "enabledOAuthAuditLogging": false } responses: - '200': + "200": description: Ok content: application/json: @@ -4846,9 +4839,9 @@ paths: "disableJdkLogger": true, "enabledOAuthAuditLogging": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4861,7 +4854,7 @@ paths: description: Retrieves organization configuration operationId: get-organization-config responses: - '200': + "200": description: Ok content: application/json: @@ -4882,9 +4875,9 @@ paths: "organizationTitle": "Gluu", "baseDn": "o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4911,7 +4904,7 @@ paths: op\": \"add\", \"path\": \"/jsFaviconPath\", \"value\": \"/opt/jans/jetty/jans-auth/custom/static\"\ \ }\n] \n" responses: - '200': + "200": description: Ok content: application/json: @@ -4937,9 +4930,9 @@ paths: "organizationTitle": "Gluu", "baseDn": "o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -4956,7 +4949,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: limit in: query schema: @@ -4967,7 +4960,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: startIndex in: query schema: @@ -4988,7 +4981,7 @@ paths: type: boolean default: false responses: - '200': + "200": description: Ok content: application/json: @@ -5054,9 +5047,9 @@ paths: } ] } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -5100,7 +5093,7 @@ paths: "baseDn": "inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans" } responses: - '200': + "200": description: Ok content: application/json: @@ -5132,11 +5125,11 @@ paths: "umaType": false, "baseDn": "inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -5178,7 +5171,7 @@ paths: "creatorId": "2000.99b53b02-dfa1-42cd-aaef-b940d58bb03f" } responses: - '201': + "201": description: Created content: application/json: @@ -5210,9 +5203,9 @@ paths: "umaType": false, "baseDn": "inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -5236,7 +5229,7 @@ paths: type: boolean default: false responses: - '200': + "200": description: Ok content: application/json: @@ -5587,11 +5580,11 @@ paths: "umaType": false, "baseDn": "inum=764C,ou=scopes,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -5609,13 +5602,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -5647,7 +5640,7 @@ paths: [{ "op": "replace", "path": "/umaAuthorizationPolicies", "value": ["inum=2DAF-F995,ou=scripts,o=jans"] }] responses: - '200': + "200": description: Ok content: application/json: @@ -5679,11 +5672,11 @@ paths: "umaType": false, "baseDn": "inum=9c4c6027-86b8-4afc-a68f-6b50579e6d21,ou=scopes,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -5702,7 +5695,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -6055,9 +6048,9 @@ paths: "umaType": false, "baseDn": "inum=764C,ou=scopes,o=jans" } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -6076,7 +6069,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -6429,11 +6422,11 @@ paths: "umaType": false, "baseDn": "inum=764C,ou=scopes,o=jans" } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -6446,7 +6439,7 @@ paths: description: Returns current session operationId: get-sessions responses: - '200': + "200": description: Ok content: application/json: @@ -6454,9 +6447,9 @@ paths: type: array items: $ref: '#/components/schemas/SessionId' - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -6476,13 +6469,13 @@ paths: schema: type: string responses: - '200': + "200": description: Ok - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -6517,7 +6510,7 @@ paths: schema: type: string responses: - '200': + "200": description: Stats content: application/json: @@ -6525,9 +6518,9 @@ paths: type: array items: $ref: '#/components/schemas/JsonNode' - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -6551,7 +6544,7 @@ paths: in: query schema: type: string - default: '' + default: "" - name: startIndex in: query schema: @@ -6567,7 +6560,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -6628,9 +6621,9 @@ paths: } ] } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -6666,7 +6659,7 @@ paths: "deletable": false } responses: - '200': + "200": description: UmaResource content: application/json: @@ -6690,11 +6683,11 @@ paths: "description": "Uma resource config api", "deletable": false } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -6728,7 +6721,7 @@ paths: "deletable": false } responses: - '201': + "201": description: Created content: application/json: @@ -6752,9 +6745,9 @@ paths: "description": "Uma resource config api", "deletable": false } - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: @@ -6773,7 +6766,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -6797,11 +6790,11 @@ paths: "description": "Uma resource config api", "deletable": false } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -6819,13 +6812,13 @@ paths: schema: type: string responses: - '204': + "204": description: No Content - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -6855,7 +6848,7 @@ paths: description: Request json example value: example/uma/resources/uma-resources-patch responses: - '200': + "200": description: Ok content: application/json: @@ -6879,11 +6872,11 @@ paths: "description": "Uma resource config api", "deletable": false } - '401': + "401": description: Unauthorized - '404': + "404": description: Not Found - '500': + "500": description: InternalServerError security: - oauth2: @@ -6902,7 +6895,7 @@ paths: schema: type: string responses: - '200': + "200": description: Ok content: application/json: @@ -6946,1461 +6939,13 @@ paths: "deletable": false } ] - '401': + "401": description: Unauthorized - '500': + "500": description: InternalServerError security: - oauth2: - https://jans.io/oauth/config/uma/resources.readonly - /fido2/config: - get: - tags: - - Fido2 - Configuration - summary: Gets Jans Authorization Server Fido2 configuration properties - description: Gets Jans Authorization Server Fido2 configuration properties - operationId: get-properties-fido2 - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/DbApplicationConfiguration' - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/fido2.readonly - put: - tags: - - Fido2 - Configuration - summary: Updates Fido2 configuration properties - description: Updates Fido2 configuration properties - operationId: put-properties-fido2 - requestBody: - description: Fido2Config - content: - application/json: - schema: - $ref: '#/components/schemas/DbApplicationConfiguration' - responses: - '200': - description: Fido2Config - content: - application/json: - schema: - type: string - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/fido2.write - /fido2/registration/entries/{username}: - get: - tags: - - Fido2 - Registration - summary: Get details of connected FIDO2 devices registered to user - description: Get details of connected FIDO2 devices registered to user - operationId: get-registration-entries-fido2 - parameters: - - name: username - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/Fido2RegistrationEntry' - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/fido2.readonly - /mgt/configuser: - get: - tags: - - Configuration – User Management - summary: Gets list of users - description: Gets list of users - operationId: get-user - parameters: - - name: limit - in: query - schema: - type: integer - format: int32 - default: 50 - - name: pattern - in: query - schema: - type: string - default: '' - - name: startIndex - in: query - schema: - type: integer - format: int32 - default: 1 - - name: sortBy - in: query - schema: - type: string - - name: sortOrder - in: query - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/UserPagedResult' - examples: - Response json example: - description: Response json example - value: | - { - "start": 0, - "totalEntriesCount": 23, - "entriesCount": 2, - "entries": [ - { - "dn": "inum=XXXX.DDDD-4444,ou=people,o=jans", - "userId": "dddd4444", - "customAttributes": [ - { - "name": "sn", - "multiValued": false, - "values": [ - "FilterTest" - ], - "value": "FilterTest", - "displayValue": "FilterTest" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "XXXX.DDDD-4444", - "displayName": "Test Dddd 4444", - "jansStatus": "active", - "givenName": "(special chars\\)/*", - "baseDn": "inum=XXXX.DDDD-4444,ou=people,o=jans" - }, - { - "dn": "inum=XXXX.EEEE-1111,ou=people,o=jans", - "userId": "eeee1111", - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "XXXX.EEEE-1111", - "jansStatus": "active", - "baseDn": "inum=XXXX.EEEE-1111,ou=people,o=jans" - } - ] - } - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/user.readonly - put: - tags: - - Configuration – User Management - summary: Update User - description: Update User - operationId: put-user - requestBody: - description: User object - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUser' - examples: - Request json example: - description: Request json example - value: | - { - "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", - "userId": "testUser1", - "createdAt": "2022-10-27T22:45:48", - "customAttributes": [ - { - "name": "birthdate", - "multiValued": false, - "values": [ - "20001231041508.553Z" - ], - "value": "20001231041508.553Z", - "displayValue": "20001231041508.553Z" - }, - { - "name": "emailVerified", - "multiValued": false, - "values": [ - "TRUE" - ], - "value": "TRUE", - "displayValue": "TRUE" - }, - { - "name": "jansAdminUIRole", - "multiValued": false, - "values": [ - "api-admin" - ], - "value": "api-admin", - "displayValue": "api-admin" - }, - { - "name": "memberOf", - "multiValued": false, - "values": [ - "inum=60B7,ou=groups,o=jans" - ], - "value": "inum=60B7,ou=groups,o=jans", - "displayValue": "inum=60B7,ou=groups,o=jans" - }, - { - "name": "middleName", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "nickname", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "sn", - "multiValued": false, - "values": [ - "User3" - ], - "value": "User3", - "displayValue": "User3" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", - "mail": "test3@jans.server", - "displayName": "Default Test User 32", - "jansStatus": "active", - "givenName": "Test3", - "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" - } - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUser' - examples: - Response json example: - description: Response json example - value: | - { - "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", - "userId": "testUser1", - "createdAt": "2022-10-27T22:45:48", - "customAttributes": [ - { - "name": "birthdate", - "multiValued": false, - "values": [ - "20001231041508.553Z" - ], - "value": "20001231041508.553Z", - "displayValue": "20001231041508.553Z" - }, - { - "name": "emailVerified", - "multiValued": false, - "values": [ - "TRUE" - ], - "value": "TRUE", - "displayValue": "TRUE" - }, - { - "name": "jansAdminUIRole", - "multiValued": false, - "values": [ - "api-admin" - ], - "value": "api-admin", - "displayValue": "api-admin" - }, - { - "name": "memberOf", - "multiValued": false, - "values": [ - "inum=60B7,ou=groups,o=jans" - ], - "value": "inum=60B7,ou=groups,o=jans", - "displayValue": "inum=60B7,ou=groups,o=jans" - }, - { - "name": "middleName", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "nickname", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "sn", - "multiValued": false, - "values": [ - "User3" - ], - "value": "User3", - "displayValue": "User3" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", - "mail": "test3@jans.server", - "displayName": "Default Test User 32", - "jansStatus": "active", - "givenName": "Test3", - "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" - } - '401': - description: Unauthorized - '404': - description: Not Found - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/user.write - post: - tags: - - Configuration – User Management - summary: Create new User - description: Create new User - operationId: post-user - requestBody: - description: User object - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUser' - examples: - Request json example: - description: Request json example - value: | - { - "userId": "testUser1", - "createdAt": "2022-05-30T20:06:57", - "customAttributes": [ - { - "name": "emailVerified", - "multiValued": false, - "values": [ - "TRUE" - ], - "value": "TRUE", - "displayValue": "TRUE" - }, - { - "name": "jansAdminUIRole", - "multiValued": false, - "values": [ - "api-admin" - ], - "value": "api-admin", - "displayValue": "api-admin" - }, - { - "name": "memberOf", - "multiValued": false, - "values": [ - "inum=60B7,ou=groups,o=jans" - ], - "value": "inum=60B7,ou=groups,o=jans", - "displayValue": "inum=60B7,ou=groups,o=jans" - }, - { - "name": "middleName", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "nickname", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "sn", - "multiValued": false, - "values": [ - "User3" - ], - "value": "User3", - "displayValue": "User3" - },{ - "name": "birthdate", - "multiValued": false, - "values": [ - "20001231041508.553Z" - ], - "value": "20001231041508.553Z", - "displayValue": "20001231041508.553Z" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "mail": "test3@jans.server", - "displayName": "Default Test User 32", - "jansStatus": "active", - "givenName": "Test3", - "userPassword": "test123" - } - responses: - '201': - description: Created - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUser' - examples: - Response json example: - description: Response json example - value: | - { - "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", - "userId": "testUser1", - "createdAt": "2022-10-27T22:45:48", - "customAttributes": [ - { - "name": "birthdate", - "multiValued": false, - "values": [ - "20001231041508.553Z" - ], - "value": "20001231041508.553Z", - "displayValue": "20001231041508.553Z" - }, - { - "name": "emailVerified", - "multiValued": false, - "values": [ - "TRUE" - ], - "value": "TRUE", - "displayValue": "TRUE" - }, - { - "name": "jansAdminUIRole", - "multiValued": false, - "values": [ - "api-admin" - ], - "value": "api-admin", - "displayValue": "api-admin" - }, - { - "name": "memberOf", - "multiValued": false, - "values": [ - "inum=60B7,ou=groups,o=jans" - ], - "value": "inum=60B7,ou=groups,o=jans", - "displayValue": "inum=60B7,ou=groups,o=jans" - }, - { - "name": "middleName", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "nickname", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "sn", - "multiValued": false, - "values": [ - "User3" - ], - "value": "User3", - "displayValue": "User3" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", - "mail": "test3@jans.server", - "displayName": "Default Test User 32", - "jansStatus": "active", - "givenName": "Test3", - "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" - } - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/user.write - /mgt/configuser/{inum}: - get: - tags: - - Configuration – User Management - summary: Get User by Inum - description: Get User by Inum - operationId: get-user-by-inum - parameters: - - name: inum - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUser' - examples: - Response json example: - description: Response json example - value: | - { - "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", - "userId": "testUser1", - "createdAt": "2022-10-27T22:45:48", - "customAttributes": [ - { - "name": "birthdate", - "multiValued": false, - "values": [ - "20001231041508.553Z" - ], - "value": "20001231041508.553Z", - "displayValue": "20001231041508.553Z" - }, - { - "name": "emailVerified", - "multiValued": false, - "values": [ - "TRUE" - ], - "value": "TRUE", - "displayValue": "TRUE" - }, - { - "name": "jansAdminUIRole", - "multiValued": false, - "values": [ - "api-admin" - ], - "value": "api-admin", - "displayValue": "api-admin" - }, - { - "name": "memberOf", - "multiValued": false, - "values": [ - "inum=60B7,ou=groups,o=jans" - ], - "value": "inum=60B7,ou=groups,o=jans", - "displayValue": "inum=60B7,ou=groups,o=jans" - }, - { - "name": "middleName", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "nickname", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "sn", - "multiValued": false, - "values": [ - "User3" - ], - "value": "User3", - "displayValue": "User3" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", - "mail": "test3@jans.server", - "displayName": "Default Test User 32", - "jansStatus": "active", - "givenName": "Test3", - "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" - } - '401': - description: Unauthorized - '404': - description: Not Found - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/user.readonly - delete: - tags: - - Configuration – User Management - summary: Delete User - description: Delete User - operationId: delete-user - parameters: - - name: inum - in: path - required: true - schema: - type: string - responses: - '204': - description: No Content - '401': - description: Unauthorized - '404': - description: Not Found - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/user.delete - patch: - tags: - - Configuration – User Management - summary: Patch user properties by Inum - description: Patch user properties by Inum - operationId: patch-user-by-inum - parameters: - - name: inum - in: path - required: true - schema: - type: string - requestBody: - description: UserPatchRequest - content: - application/json-patch+json: - schema: - $ref: '#/components/schemas/UserPatchRequest' - examples: - Request json example: - description: Request json example - value: "{\n \"jsonPatchString\": \"[ {\\\"op\\\":\\\"add\\\", \\\ - \"path\\\": \\\"/userId\\\", \\\"value\\\":\\\"config_test_user_100_final_patch\\\ - \" } ]\",\n \"customAttributes\": [{\n \"name\": \"\ - emailVerified\",\n \"multiValued\": false,\n \ - \ \"values\": [\n \"TRUE\"\n ],\n \ - \ \"value\": \"TRUE\",\n \"displayValue\":\ - \ \"TRUE\"\n },\n\t\t{\n \"name\": \"secretAnswer\"\ - ,\n \"multiValued\": false,\n \"values\":\ - \ [\n \"james-bond@123\"\n ],\n \ - \ \"value\": \"james-bond@123\",\n \"displayValue\"\ - : \"james-bond@123\"\n },\n {\n \"name\"\ - : \"jansImsValue\",\n \"multiValued\": true,\n \ - \ \"values\": [{\n\t\t\t \"value\": \"123456\",\n\t\t\t \"\ - display\": \"Home phone\",\n\t\t\t \"type\": \"home\",\n\t\t\t\ - \ \"primary\": true\t\t\t\n\t\t\t},\n\t\t\t{\n\t\t\t \"value\"\ - : \"9821789\",\n\t\t\t \"display\": \"Work phone\",\n\t\t\t \"\ - type\": \"work\",\n\t\t\t \"primary\": false\t\t\t\n\t\t\t}\n \ - \ \n ]\n }\n ]\n}\n" - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/CustomUser' - examples: - Response json example: - description: Response json example - value: | - { - "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", - "userId": "testUser1", - "createdAt": "2022-10-27T22:45:48", - "customAttributes": [ - { - "name": "birthdate", - "multiValued": false, - "values": [ - "20001231041508.553Z" - ], - "value": "20001231041508.553Z", - "displayValue": "20001231041508.553Z" - }, - { - "name": "emailVerified", - "multiValued": false, - "values": [ - "TRUE" - ], - "value": "TRUE", - "displayValue": "TRUE" - }, - { - "name": "jansAdminUIRole", - "multiValued": false, - "values": [ - "api-admin" - ], - "value": "api-admin", - "displayValue": "api-admin" - }, - { - "name": "memberOf", - "multiValued": false, - "values": [ - "inum=60B7,ou=groups,o=jans" - ], - "value": "inum=60B7,ou=groups,o=jans", - "displayValue": "inum=60B7,ou=groups,o=jans" - }, - { - "name": "middleName", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "nickname", - "multiValued": false, - "values": [ - "Test USer 3" - ], - "value": "Test USer 3", - "displayValue": "Test USer 3" - }, - { - "name": "sn", - "multiValued": false, - "values": [ - "User3" - ], - "value": "User3", - "displayValue": "User3" - } - ], - "customObjectClasses": [ - "top", - "jansCustomPerson" - ], - "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", - "mail": "test3@jans.server", - "displayName": "Default Test User 32", - "jansStatus": "active", - "givenName": "Test3", - "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" - } - '401': - description: Unauthorized - '404': - description: Not Found - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/config/user.write - /admin-ui/license/activateLicense: - post: - tags: - - Admin UI - License - summary: Activate license using license-key - description: Activate license using license-key - operationId: activate-adminui-license - requestBody: - description: LicenseRequest object - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseRequest' - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - '401': - description: Unauthorized - '500': - description: InternalServerError - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/license.write - /admin-ui/license/licenseDetails: - get: - tags: - - Admin UI - License - summary: Get admin ui license details - description: Get admin ui license details - operationId: get-adminui-license - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseResponse' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly - /admin-ui/license/isActive: - get: - tags: - - Admin UI - License - summary: Check if admin-ui license is active - description: Check if admin-ui license is active - operationId: is-license-active - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - '401': - description: Unauthorized - '500': - description: InternalServerError - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly - /admin-ui/license/saveApiCredentials: - post: - tags: - - Admin UI - License - summary: Save license api credentials - description: Save license api credentials - operationId: save-license-api-credentials - requestBody: - description: LicenseSpringCredentials object - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseSpringCredentials' - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - '401': - description: Unauthorized - '500': - description: InternalServerError - content: - application/json: - schema: - $ref: '#/components/schemas/LicenseApiResponse' - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/license.write - /admin-ui/adminUIPermissions: - get: - tags: - - Admin UI - Permission - summary: Get all admin ui permissions - description: Get all admin ui permissions - operationId: get-all-adminui-permissions - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminPermission' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.readonly - put: - tags: - - Admin UI - Permission - summary: Edit admin ui permissions - description: Edit admin ui permissions - operationId: edit-adminui-permission - requestBody: - description: AdminPermission object - content: - application/json: - schema: - $ref: '#/components/schemas/AdminPermission' - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminPermission' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write - post: - tags: - - Admin UI - Permission - summary: Add admin ui permissions - description: Add admin ui permissions - operationId: add-adminui-permission - requestBody: - description: AdminPermission object - content: - application/json: - schema: - $ref: '#/components/schemas/AdminPermission' - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminPermission' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write - /admin-ui/adminUIRolePermissionsMapping: - get: - tags: - - Admin UI - Role-Permissions Mapping - summary: Get all admin ui role-permissions mapping - description: Get all admin ui role-permissions mapping - operationId: get-all-adminui-role-permissions - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/RolePermissionMapping' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly - put: - tags: - - Admin UI - Role-Permissions Mapping - summary: Map permissions to role - description: Map permissions to role - operationId: map-permissions-to-role - requestBody: - description: RolePermissionMapping object - content: - application/json: - schema: - $ref: '#/components/schemas/RolePermissionMapping' - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/RolePermissionMapping' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write - post: - tags: - - Admin UI - Role-Permissions Mapping - summary: Add role-permissions mapping - description: Add role-permissions mapping - operationId: add-role-permissions-mapping - requestBody: - description: RolePermissionMapping object - content: - application/json: - schema: - $ref: '#/components/schemas/RolePermissionMapping' - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/RolePermissionMapping' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write - /admin-ui/adminUIRoles: - get: - tags: - - Admin UI - Role - summary: Get all admin ui roles - description: Get all admin ui roles - operationId: get-all-adminui-roles - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminRole' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.readonly - put: - tags: - - Admin UI - Role - summary: Edit admin ui role - description: Edit admin ui role - operationId: edit-adminui-role - requestBody: - description: AdminRole object - content: - application/json: - schema: - $ref: '#/components/schemas/AdminRole' - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminRole' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write - post: - tags: - - Admin UI - Role - summary: Add admin ui role - description: Add admin ui role - operationId: add-adminui-role - requestBody: - description: AdminRole object - content: - application/json: - schema: - $ref: '#/components/schemas/AdminRole' - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminRole' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write - /admin-ui/adminUIPermissions/{adminUIPermission}: - get: - tags: - - Admin UI - Permission - summary: Get admin ui permission by permission-name - description: Get admin ui permission by permission-name - operationId: get-adminui-permission - parameters: - - name: adminUIPermission - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminPermission' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.readonly - delete: - tags: - - Admin UI - Permission - summary: Delete admin ui permission by permission-name - description: Delete admin ui permission by permission-name - operationId: delete-adminui-permission - parameters: - - name: adminUIPermission - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminPermission' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write - /admin-ui/adminUIRoles/{adminUIRole}: - get: - tags: - - Admin UI - Role - summary: Get admin ui role details by role-name - description: Get admin ui role details by role-name - operationId: get-adminui-role - parameters: - - name: adminUIRole - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminRole' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.readonly - delete: - tags: - - Admin UI - Role - summary: Delete admin ui role by role-name - description: Delete admin ui role by role-name - operationId: delete-adminui-role - parameters: - - name: adminUIRole - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/AdminRole' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write - /admin-ui/adminUIRolePermissionsMapping/{adminUIRole}: - get: - tags: - - Admin UI - Role-Permissions Mapping - summary: Get admin ui role-permissions mapping by role-name - description: Get admin ui role-permissions mapping by role-name - operationId: get-adminui-role-permissions - parameters: - - name: adminUIRole - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/RolePermissionMapping' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly - delete: - tags: - - Admin UI - Role-Permissions Mapping - summary: Remove role-permissions mapping by role-name - description: Remove role-permissions mapping by role-name - operationId: remove-role-permissions-permission - parameters: - - name: adminUIRole - in: path - required: true - schema: - type: string - responses: - '200': - description: Ok - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/RolePermissionMapping' - '400': - description: Bad Request - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write - /scim/scim-config: - get: - tags: - - SCIM - Config Management - summary: Retrieves SCIM App configuration - description: Retrieves SCIM App configuration - operationId: get-scim-config - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/AppConfiguration' - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/scim/config.readonly - patch: - tags: - - SCIM - Config Management - summary: Patch SCIM App configuration - description: Patch SCIM App configuration - operationId: patch-scim-config - requestBody: - description: String representing patch-document. - content: - application/json-patch+json: - schema: - type: array - items: - $ref: '#/components/schemas/JsonPatch' - example: '[ {op:replace, path: loggingLevel, value: DEBUG } ]' - responses: - '200': - description: Ok - content: - application/json: - schema: - $ref: '#/components/schemas/AppConfiguration' - '401': - description: Unauthorized - '500': - description: InternalServerError - security: - - oauth2: - - https://jans.io/scim/config.write components: schemas: HealthStatus: @@ -8554,7 +7099,7 @@ components: name: maxLength: 30 minLength: 1 - pattern: ^[a-zA-Z0-9_]+$ + pattern: "^[a-zA-Z0-9_]+$" type: string displayName: maxLength: 60 @@ -9819,32 +8364,6 @@ components: - STAT - PAR - SSA - baseDN: - type: string - applicationUrl: - type: string - personCustomObjectClass: - type: string - oxAuthIssuer: - type: string - protectionMode: - type: string - enum: - - OAUTH - - BYPASS - maxCount: - type: integer - format: int32 - bulkMaxOperations: - type: integer - format: int32 - bulkMaxPayloadSize: - type: integer - format: int64 - userExtensionSchemaURI: - type: string - metricReporterEnabled: - type: boolean AuthenticationFilter: required: - baseDn @@ -10037,7 +8556,7 @@ components: name: maxLength: 60 minLength: 2 - pattern: ^[a-zA-Z0-9_\-\:\/\.]+$ + pattern: "^[a-zA-Z0-9_\\-\\:\\/\\.]+$" type: string aliases: type: array @@ -10208,13 +8727,13 @@ components: type: array items: type: string - n: + "n": type: string e: type: string x: type: string - y: + "y": type: string WebKeysConfiguration: type: object @@ -10610,255 +9129,12 @@ components: ttl: type: integer format: int32 - DbApplicationConfiguration: - type: object - properties: - dn: - type: string - dynamicConf: - type: string - revision: - type: integer - format: int64 - Fido2RegistrationData: - type: object - properties: - createdDate: - type: string - format: date-time - updatedDate: - type: string - format: date-time - createdBy: - type: string - updatedBy: - type: string - username: - type: string - domain: - type: string - userId: - type: string - challenge: - type: string - attenstationRequest: - type: string - attenstationResponse: - type: string - uncompressedECPoint: - type: string - publicKeyId: - type: string - type: - type: string - status: - type: string - enum: - - pending - - registered - - compromised - counter: - type: integer - format: int32 - attestationType: - type: string - signatureAlgorithm: - type: integer - format: int32 - applicationId: - type: string - Fido2RegistrationEntry: - type: object - properties: - dn: - type: string - id: - type: string - challange: - type: string - creationDate: - type: string - format: date-time - userInum: - type: string - publicKeyId: - type: string - displayName: - type: string - registrationData: - $ref: '#/components/schemas/Fido2RegistrationData' - counter: - type: integer - format: int32 - registrationStatus: - type: string - enum: - - pending - - registered - - compromised - deviceNotificationConf: - type: string - challangeHash: - type: string - baseDn: - type: string - CustomUser: - type: object - properties: - dn: - type: string - userId: - type: string - updatedAt: - type: string - format: date-time - createdAt: - type: string - format: date-time - oxAuthPersistentJwt: - type: array - items: - type: string - customAttributes: - type: array - items: - $ref: '#/components/schemas/CustomObjectAttribute' - customObjectClasses: - type: array - items: - type: string - inum: - type: string - mail: - type: string - displayName: - type: string - jansStatus: - type: string - givenName: - type: string - userPassword: - type: string - status: - type: string - baseDn: - type: string - UserPagedResult: - type: object - properties: - start: - type: integer - format: int32 - totalEntriesCount: - type: integer - format: int32 - entriesCount: - type: integer - format: int32 - entries: - type: array - items: - $ref: '#/components/schemas/CustomUser' - UserPatchRequest: - type: object - properties: - jsonPatchString: - type: string - customAttributes: - type: array - items: - $ref: '#/components/schemas/CustomObjectAttribute' - LicenseRequest: - type: object - properties: - licenseKey: - type: string - LicenseApiResponse: - type: object - properties: - apiResult: - type: boolean - responseMessage: - type: string - responseCode: - type: integer - format: int32 - LicenseResponse: - type: object - properties: - licenseEnabled: - type: boolean - productName: - type: string - productCode: - type: string - licenseType: - type: string - maxActivations: - type: integer - format: int32 - licenseKey: - type: string - licenseActive: - type: boolean - validityPeriod: - type: string - companyName: - type: string - customerEmail: - type: string - customerFirstName: - type: string - customerLastName: - type: string - LicenseSpringCredentials: - type: object - properties: - apiKey: - type: string - productCode: - type: string - sharedKey: - type: string - managementKey: - type: string - hardwareId: - type: string - licenseKey: - type: string - AdminPermission: - type: object - properties: - permission: - type: string - description: - type: string - defaultPermissionInToken: - type: boolean - RolePermissionMapping: - type: object - properties: - role: - type: string - permissions: - type: array - items: - type: string - AdminRole: - type: object - properties: - role: - type: string - description: - type: string - deletable: - type: boolean securitySchemes: oauth2: type: oauth2 flows: clientCredentials: - tokenUrl: https://{op-hostname}/.../token + tokenUrl: "https://{op-hostname}/.../token" scopes: https://jans.io/oauth/jans-auth-server/config/properties.readonly: View Auth Server properties related information @@ -10918,29 +9194,3 @@ components: related information https://jans.io/oauth/jans-auth-server/session.delete: Delete Session information - https://jans.io/oauth/config/fido2.readonly: View fido2 configuration - related information - https://jans.io/oauth/config/fido2.write: Manage fido2 configuration related - information - https://jans.io/oauth/config/user.readonly: View user related information - https://jans.io/oauth/config/user.write: Manage user related information - https://jans.io/oauth/config/user.delete: Delete user related information - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.read: View - admin user role related information - https://jans.io/oauth/jans-auth-server/config/adminui/user/role.write: Manage - admin user role related information - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.read: View - admin permission related information - https://jans.io/oauth/jans-auth-server/config/adminui/user/permission.write: Manage - admin permission related information - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.readonly: View - role-permission mapping related information - https://jans.io/oauth/jans-auth-server/config/adminui/user/rolePermissionMapping.write: Manage - role-permission mapping related information - https://jans.io/oauth/jans-auth-server/config/adminui/license.readonly: Delete - admin-ui license related information - https://jans.io/oauth/jans-auth-server/config/adminui/license.write: View - admin-ui license related information - https://jans.io/scim/config.readonly: View SCIM configuration related - information - https://jans.io/scim/config.write: Manage SCIM configuration related information diff --git a/jans-cli-tui/cli/ops/jca/scim-plugin-swagger.yaml b/jans-cli-tui/cli/ops/jca/scim-plugin-swagger.yaml new file mode 100644 index 00000000000..daadeebcccc --- /dev/null +++ b/jans-cli-tui/cli/ops/jca/scim-plugin-swagger.yaml @@ -0,0 +1,129 @@ +openapi: 3.0.1 +info: + title: Jans Config API - SCIM + contact: + name: Gluu Support + url: https://support.gluu.org + email: xxx@gluu.org + license: + name: Apache 2.0 + url: https://github.com/JanssenProject/jans/blob/main/LICENSE + version: 1.0.0 +servers: +- url: https://jans.io/ + description: The Jans server + variables: {} +tags: +- name: SCIM - Config Management +paths: + /scim/scim-config: + get: + tags: + - SCIM - Config Management + summary: Retrieves SCIM App configuration + description: Retrieves SCIM App configuration + operationId: get-scim-config + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/AppConfiguration' + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/scim/config.readonly + patch: + tags: + - SCIM - Config Management + summary: Patch SCIM App configuration + description: Patch SCIM App configuration + operationId: patch-scim-config + requestBody: + description: String representing patch-document. + content: + application/json-patch+json: + schema: + type: array + items: + $ref: '#/components/schemas/JsonPatch' + example: "[ {op:replace, path: loggingLevel, value: DEBUG } ]" + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/AppConfiguration' + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/scim/config.write +components: + schemas: + AppConfiguration: + type: object + properties: + baseDN: + type: string + applicationUrl: + type: string + baseEndpoint: + type: string + personCustomObjectClass: + type: string + oxAuthIssuer: + type: string + protectionMode: + type: string + enum: + - OAUTH + - BYPASS + maxCount: + type: integer + format: int32 + bulkMaxOperations: + type: integer + format: int32 + bulkMaxPayloadSize: + type: integer + format: int64 + userExtensionSchemaURI: + type: string + loggingLevel: + type: string + loggingLayout: + type: string + externalLoggerConfiguration: + type: string + metricReporterInterval: + type: integer + format: int32 + metricReporterKeepDataDays: + type: integer + format: int32 + metricReporterEnabled: + type: boolean + disableJdkLogger: + type: boolean + useLocalCache: + type: boolean + JsonPatch: + type: object + securitySchemes: + oauth2: + type: oauth2 + flows: + clientCredentials: + tokenUrl: "https://{op-hostname}/.../token" + scopes: + https://jans.io/scim/config.readonly: View SCIM configuration related + information + https://jans.io/scim/config.write: Manage SCIM configuration related information diff --git a/jans-cli-tui/cli/ops/jca/user-mgt-plugin-swagger.yaml b/jans-cli-tui/cli/ops/jca/user-mgt-plugin-swagger.yaml new file mode 100644 index 00000000000..871aacaec5b --- /dev/null +++ b/jans-cli-tui/cli/ops/jca/user-mgt-plugin-swagger.yaml @@ -0,0 +1,867 @@ +openapi: 3.0.1 +info: + title: Jans Config API - User-Mgt + contact: + name: Gluu Support + url: https://support.gluu.org + email: xxx@gluu.org + license: + name: Apache 2.0 + url: https://github.com/JanssenProject/jans/blob/main/LICENSE + version: 1.0.0 +servers: +- url: https://jans.io/ + description: The Jans server + variables: {} +tags: +- name: Configuration – User Management +paths: + /mgt/configuser: + get: + tags: + - Configuration – User Management + summary: Gets list of users + description: Gets list of users + operationId: get-user + parameters: + - name: limit + in: query + schema: + type: integer + format: int32 + default: 50 + - name: pattern + in: query + schema: + type: string + default: "" + - name: startIndex + in: query + schema: + type: integer + format: int32 + default: 1 + - name: sortBy + in: query + schema: + type: string + - name: sortOrder + in: query + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/UserPagedResult' + examples: + Response json example: + description: Response json example + value: | + { + "start": 0, + "totalEntriesCount": 23, + "entriesCount": 2, + "entries": [ + { + "dn": "inum=XXXX.DDDD-4444,ou=people,o=jans", + "userId": "dddd4444", + "customAttributes": [ + { + "name": "sn", + "multiValued": false, + "values": [ + "FilterTest" + ], + "value": "FilterTest", + "displayValue": "FilterTest" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "XXXX.DDDD-4444", + "displayName": "Test Dddd 4444", + "jansStatus": "active", + "givenName": "(special chars\\)/*", + "baseDn": "inum=XXXX.DDDD-4444,ou=people,o=jans" + }, + { + "dn": "inum=XXXX.EEEE-1111,ou=people,o=jans", + "userId": "eeee1111", + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "XXXX.EEEE-1111", + "jansStatus": "active", + "baseDn": "inum=XXXX.EEEE-1111,ou=people,o=jans" + } + ] + } + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/user.readonly + put: + tags: + - Configuration – User Management + summary: Update User + description: Update User + operationId: put-user + requestBody: + description: User object + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + examples: + Request json example: + description: Request json example + value: | + { + "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", + "userId": "testUser1", + "createdAt": "2022-10-27T22:45:48", + "customAttributes": [ + { + "name": "birthdate", + "multiValued": false, + "values": [ + "20001231041508.553Z" + ], + "value": "20001231041508.553Z", + "displayValue": "20001231041508.553Z" + }, + { + "name": "emailVerified", + "multiValued": false, + "values": [ + "TRUE" + ], + "value": "TRUE", + "displayValue": "TRUE" + }, + { + "name": "jansAdminUIRole", + "multiValued": false, + "values": [ + "api-admin" + ], + "value": "api-admin", + "displayValue": "api-admin" + }, + { + "name": "memberOf", + "multiValued": false, + "values": [ + "inum=60B7,ou=groups,o=jans" + ], + "value": "inum=60B7,ou=groups,o=jans", + "displayValue": "inum=60B7,ou=groups,o=jans" + }, + { + "name": "middleName", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "nickname", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "sn", + "multiValued": false, + "values": [ + "User3" + ], + "value": "User3", + "displayValue": "User3" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", + "mail": "test3@jans.server", + "displayName": "Default Test User 32", + "jansStatus": "active", + "givenName": "Test3", + "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" + } + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + examples: + Response json example: + description: Response json example + value: | + { + "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", + "userId": "testUser1", + "createdAt": "2022-10-27T22:45:48", + "customAttributes": [ + { + "name": "birthdate", + "multiValued": false, + "values": [ + "20001231041508.553Z" + ], + "value": "20001231041508.553Z", + "displayValue": "20001231041508.553Z" + }, + { + "name": "emailVerified", + "multiValued": false, + "values": [ + "TRUE" + ], + "value": "TRUE", + "displayValue": "TRUE" + }, + { + "name": "jansAdminUIRole", + "multiValued": false, + "values": [ + "api-admin" + ], + "value": "api-admin", + "displayValue": "api-admin" + }, + { + "name": "memberOf", + "multiValued": false, + "values": [ + "inum=60B7,ou=groups,o=jans" + ], + "value": "inum=60B7,ou=groups,o=jans", + "displayValue": "inum=60B7,ou=groups,o=jans" + }, + { + "name": "middleName", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "nickname", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "sn", + "multiValued": false, + "values": [ + "User3" + ], + "value": "User3", + "displayValue": "User3" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", + "mail": "test3@jans.server", + "displayName": "Default Test User 32", + "jansStatus": "active", + "givenName": "Test3", + "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" + } + "401": + description: Unauthorized + "404": + description: Not Found + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/user.write + post: + tags: + - Configuration – User Management + summary: Create new User + description: Create new User + operationId: post-user + requestBody: + description: User object + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + examples: + Request json example: + description: Request json example + value: | + { + "userId": "testUser1", + "createdAt": "2022-05-30T20:06:57", + "customAttributes": [ + { + "name": "emailVerified", + "multiValued": false, + "values": [ + "TRUE" + ], + "value": "TRUE", + "displayValue": "TRUE" + }, + { + "name": "jansAdminUIRole", + "multiValued": false, + "values": [ + "api-admin" + ], + "value": "api-admin", + "displayValue": "api-admin" + }, + { + "name": "memberOf", + "multiValued": false, + "values": [ + "inum=60B7,ou=groups,o=jans" + ], + "value": "inum=60B7,ou=groups,o=jans", + "displayValue": "inum=60B7,ou=groups,o=jans" + }, + { + "name": "middleName", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "nickname", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "sn", + "multiValued": false, + "values": [ + "User3" + ], + "value": "User3", + "displayValue": "User3" + },{ + "name": "birthdate", + "multiValued": false, + "values": [ + "20001231041508.553Z" + ], + "value": "20001231041508.553Z", + "displayValue": "20001231041508.553Z" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "mail": "test3@jans.server", + "displayName": "Default Test User 32", + "jansStatus": "active", + "givenName": "Test3", + "userPassword": "test123" + } + responses: + "201": + description: Created + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + examples: + Response json example: + description: Response json example + value: | + { + "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", + "userId": "testUser1", + "createdAt": "2022-10-27T22:45:48", + "customAttributes": [ + { + "name": "birthdate", + "multiValued": false, + "values": [ + "20001231041508.553Z" + ], + "value": "20001231041508.553Z", + "displayValue": "20001231041508.553Z" + }, + { + "name": "emailVerified", + "multiValued": false, + "values": [ + "TRUE" + ], + "value": "TRUE", + "displayValue": "TRUE" + }, + { + "name": "jansAdminUIRole", + "multiValued": false, + "values": [ + "api-admin" + ], + "value": "api-admin", + "displayValue": "api-admin" + }, + { + "name": "memberOf", + "multiValued": false, + "values": [ + "inum=60B7,ou=groups,o=jans" + ], + "value": "inum=60B7,ou=groups,o=jans", + "displayValue": "inum=60B7,ou=groups,o=jans" + }, + { + "name": "middleName", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "nickname", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "sn", + "multiValued": false, + "values": [ + "User3" + ], + "value": "User3", + "displayValue": "User3" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", + "mail": "test3@jans.server", + "displayName": "Default Test User 32", + "jansStatus": "active", + "givenName": "Test3", + "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" + } + "401": + description: Unauthorized + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/user.write + /mgt/configuser/{inum}: + get: + tags: + - Configuration – User Management + summary: Get User by Inum + description: Get User by Inum + operationId: get-user-by-inum + parameters: + - name: inum + in: path + required: true + schema: + type: string + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + examples: + Response json example: + description: Response json example + value: | + { + "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", + "userId": "testUser1", + "createdAt": "2022-10-27T22:45:48", + "customAttributes": [ + { + "name": "birthdate", + "multiValued": false, + "values": [ + "20001231041508.553Z" + ], + "value": "20001231041508.553Z", + "displayValue": "20001231041508.553Z" + }, + { + "name": "emailVerified", + "multiValued": false, + "values": [ + "TRUE" + ], + "value": "TRUE", + "displayValue": "TRUE" + }, + { + "name": "jansAdminUIRole", + "multiValued": false, + "values": [ + "api-admin" + ], + "value": "api-admin", + "displayValue": "api-admin" + }, + { + "name": "memberOf", + "multiValued": false, + "values": [ + "inum=60B7,ou=groups,o=jans" + ], + "value": "inum=60B7,ou=groups,o=jans", + "displayValue": "inum=60B7,ou=groups,o=jans" + }, + { + "name": "middleName", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "nickname", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "sn", + "multiValued": false, + "values": [ + "User3" + ], + "value": "User3", + "displayValue": "User3" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", + "mail": "test3@jans.server", + "displayName": "Default Test User 32", + "jansStatus": "active", + "givenName": "Test3", + "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" + } + "401": + description: Unauthorized + "404": + description: Not Found + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/user.readonly + delete: + tags: + - Configuration – User Management + summary: Delete User + description: Delete User + operationId: delete-user + parameters: + - name: inum + in: path + required: true + schema: + type: string + responses: + "204": + description: No Content + "401": + description: Unauthorized + "404": + description: Not Found + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/user.delete + patch: + tags: + - Configuration – User Management + summary: Patch user properties by Inum + description: Patch user properties by Inum + operationId: patch-user-by-inum + parameters: + - name: inum + in: path + required: true + schema: + type: string + requestBody: + description: UserPatchRequest + content: + application/json-patch+json: + schema: + $ref: '#/components/schemas/UserPatchRequest' + examples: + Request json example: + description: Request json example + value: "{\n \"jsonPatchString\": \"[ {\\\"op\\\":\\\"add\\\", \\\ + \"path\\\": \\\"/userId\\\", \\\"value\\\":\\\"config_test_user_100_final_patch\\\ + \" } ]\",\n \"customAttributes\": [{\n \"name\": \"\ + emailVerified\",\n \"multiValued\": false,\n \ + \ \"values\": [\n \"TRUE\"\n ],\n \ + \ \"value\": \"TRUE\",\n \"displayValue\":\ + \ \"TRUE\"\n },\n\t\t{\n \"name\": \"secretAnswer\"\ + ,\n \"multiValued\": false,\n \"values\":\ + \ [\n \"james-bond@123\"\n ],\n \ + \ \"value\": \"james-bond@123\",\n \"displayValue\"\ + : \"james-bond@123\"\n },\n {\n \"name\"\ + : \"jansImsValue\",\n \"multiValued\": true,\n \ + \ \"values\": [{\n\t\t\t \"value\": \"123456\",\n\t\t\t \"\ + display\": \"Home phone\",\n\t\t\t \"type\": \"home\",\n\t\t\t\ + \ \"primary\": true\t\t\t\n\t\t\t},\n\t\t\t{\n\t\t\t \"value\"\ + : \"9821789\",\n\t\t\t \"display\": \"Work phone\",\n\t\t\t \"\ + type\": \"work\",\n\t\t\t \"primary\": false\t\t\t\n\t\t\t}\n \ + \ \n ]\n }\n ]\n}\n" + responses: + "200": + description: Ok + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + examples: + Response json example: + description: Response json example + value: | + { + "dn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans", + "userId": "testUser1", + "createdAt": "2022-10-27T22:45:48", + "customAttributes": [ + { + "name": "birthdate", + "multiValued": false, + "values": [ + "20001231041508.553Z" + ], + "value": "20001231041508.553Z", + "displayValue": "20001231041508.553Z" + }, + { + "name": "emailVerified", + "multiValued": false, + "values": [ + "TRUE" + ], + "value": "TRUE", + "displayValue": "TRUE" + }, + { + "name": "jansAdminUIRole", + "multiValued": false, + "values": [ + "api-admin" + ], + "value": "api-admin", + "displayValue": "api-admin" + }, + { + "name": "memberOf", + "multiValued": false, + "values": [ + "inum=60B7,ou=groups,o=jans" + ], + "value": "inum=60B7,ou=groups,o=jans", + "displayValue": "inum=60B7,ou=groups,o=jans" + }, + { + "name": "middleName", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "nickname", + "multiValued": false, + "values": [ + "Test USer 3" + ], + "value": "Test USer 3", + "displayValue": "Test USer 3" + }, + { + "name": "sn", + "multiValued": false, + "values": [ + "User3" + ], + "value": "User3", + "displayValue": "User3" + } + ], + "customObjectClasses": [ + "top", + "jansCustomPerson" + ], + "inum": "559a7e26-7a33-4e11-9d42-13266d33261e", + "mail": "test3@jans.server", + "displayName": "Default Test User 32", + "jansStatus": "active", + "givenName": "Test3", + "baseDn": "inum=559a7e26-7a33-4e11-9d42-13266d33261e,ou=people,o=jans" + } + "401": + description: Unauthorized + "404": + description: Not Found + "500": + description: InternalServerError + security: + - oauth2: + - https://jans.io/oauth/config/user.write +components: + schemas: + CustomObjectAttribute: + type: object + properties: + name: + type: string + multiValued: + type: boolean + values: + type: array + items: + type: object + value: + type: object + displayValue: + type: string + CustomUser: + type: object + properties: + dn: + type: string + userId: + type: string + updatedAt: + type: string + format: date-time + createdAt: + type: string + format: date-time + oxAuthPersistentJwt: + type: array + items: + type: string + customAttributes: + type: array + items: + $ref: '#/components/schemas/CustomObjectAttribute' + customObjectClasses: + type: array + items: + type: string + inum: + type: string + mail: + type: string + displayName: + type: string + jansStatus: + type: string + givenName: + type: string + userPassword: + type: string + status: + type: string + baseDn: + type: string + UserPagedResult: + type: object + properties: + start: + type: integer + format: int32 + totalEntriesCount: + type: integer + format: int32 + entriesCount: + type: integer + format: int32 + entries: + type: array + items: + $ref: '#/components/schemas/CustomUser' + UserPatchRequest: + type: object + properties: + jsonPatchString: + type: string + customAttributes: + type: array + items: + $ref: '#/components/schemas/CustomObjectAttribute' + securitySchemes: + oauth2: + type: oauth2 + flows: + clientCredentials: + tokenUrl: "https://{op-hostname}/.../token" + scopes: + https://jans.io/oauth/config/user.readonly: View user related information + https://jans.io/oauth/config/user.write: Manage user related information + https://jans.io/oauth/config/user.delete: Delete user related information