Endpoints in the Outpost REST API
This version of BMC Discovery Outpost supports versions 1.12 of the REST API. Higher versions are always backwards compatible with earlier versions.
The base URL for the latest API version is:
https://outpost_name/api/v1.12
{ "openapi": "3.0.1", "tags": [ { "name": "credentials", "description": "Manage credentials. Index is used to order credentials, lower to higher." }, { "name": "kerberos", "description": "Manage Kerberos resources" }, { "name": "outpost", "description": "Manage BMC Discovery registrations in the outpost" } ], "paths": { "/admin/authentication": { "post": { "tags": [ "outpost" ], "summary": "Authenticate as the admin user", "description": "Retrieve a bearer token for the Outpost API as an admin user. This token can only be used for the APIs under /admin.\n\nThe bearer token returned must be used as a 'Bearer' token in the Authorization header for subsequent calls to all Outpost apis in the /admin/ section. This token will have no effect if used elsewhere.\n\nFor APIs requiring a Discovery API key in addition to an admin-authenticated token, such as a POST to '/admin/instances', both keys must be combined in the Authorization header in the format 'Bearer admin_token:discovery_key'.\n\n`New in version 1.12`", "operationId": "outpostAdminLogin", "requestBody": { "description": "Admin credential to validate.", "content": { "application/json": { "schema": { "properties": { "password": { "type": "string" } } } } }, "required": true }, "responses": { "200": { "description": "Successful authentication", "content": { "application/json": { "schema": { "properties": { "bearer_token": { "type": "string", "description": "Bearer token for future requests" } } } } } }, "401": { "description": "Unsuccessful authentication" } } } }, "/admin/outpost_token": { "get": { "tags": [ "outpost" ], "summary": "Get this outpost's registration token", "description": "Retrieve the token to register this Outpost with a Discovery instance.\n\nRequires a bearer token issued by the '/admin/authentication' API.", "operationId": "outpostGetRegistrationToken", "responses": { "200": { "description": "Returned outpost registration token", "content": { "application/json": { "schema": { "properties": { "token": { "type": "string", "description": "Outpost registration token for submission to a Discovery service" } } } } } } } } }, "/admin/instances": { "post": { "tags": [ "outpost" ], "summary": "Add a new instance to the Outpost", "description": "Add a new instance, as identified by the token (and optional member -> address mappings), to the outpost.\n\nIf no Discovery instances are yet registered to this outpost, then just an Admin token issued by the '/admin/authentication' API is required in the Authorization header. However, if one or more Discovery instances are already registered, then an API key for a user from one of those instances is required in addition. The user must have rights to read credentials. See the introduction to this page for more details.\n\n## Supplying member mappings\n\nThe token given to you by the Discovery instance you are trying to register\ncontains a list of endpoints (as IP addresses), one per cluster member, that the Outpost can use to contact it. \n\nIn some cases those IP addresses will not be visible from the Outpost's network\nlocation, and you will want to supply an alternative address for each Discovery\ncluster member that the Outpost can use instead. Note that all SaaS Discovery instances present\nas a single member cluster.\n\nTo do this, `POST` the Discovery token in two steps:\n1. `POST` the token to this API *without* a `members` section. If successful, the reply to this\n `POST` will include a `members` section that reflects the current\n member-to-address mapping (as a GUID-to-address key pair) in the token. \n1. Modify each mapping's address to reflect the mapping you need, and then `POST`\n the token again, including your modified `members` section. The Outpost will\n update the instance's registration with your mapping.\n\nThis is the equivalent of using the 'Register an Instance' page in the Outpost,\nand modifying the 'Addresses' section to specify the correct addresses.\n\n\n`New in version 1.12`", "operationId": "outpostAddInstance", "requestBody": { "description": "Token and member mapping for the new instance.", "content": { "application/json": { "schema": { "required": [ "token" ], "properties": { "token": { "type": "string" }, "members": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful addition of instance", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discovery_instance" } } } } } }, "get": { "tags": [ "outpost" ], "summary": "Get a list of the instances on the outpost.", "description": "Get a list of the IDs and statuses of all instances on the outpost.\n\nRequires a bearer token issued by the '/admin/authentication' API.", "operationId": "outpostGetInstances", "responses": { "200": { "description": "List of outpost IDs and statuses", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/discovery_instance" } } } } } } } }, "/admin/instances/{uuid}": { "get": { "tags": [ "outpost" ], "summary": "Get the properties of a specific instance", "description": "Get the properties of a specific registered instance.\n\n`New in version 1.12`", "operationId": "outpostGetInstance", "parameters": [ { "name": "uuid", "in": "path", "description": "The id of the instance", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Returned specific instance", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/discovery_instance" } } } }, "404": { "description": "Specified instance not found", "content": {} } } }, "delete": { "tags": [ "outpost" ], "summary": "Delete an instance from the Outpost", "description": "Delete the instance, as identified by the id.\n\nNote that if this is the last instance on the outpost, it will cause the loss of all credentials on the outpost - take care!\n\nRequires a bearer token issued by the '/admin/authentication' API.", "operationId": "outpostDeleteInstance", "parameters": [ { "name": "uuid", "in": "path", "description": "The id of the instance to be deleted", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful deletion of instance", "content": {} }, "404": { "description": "Specified instance not found", "content": {} } } } }, "/vault/credential_types": { "get": { "tags": [ "credentials" ], "summary": "Get a list of all credential types", "description": "Get a list of all credential types and filter by group and/or category.", "operationId": "getCredentialTypes", "parameters": [ { "name": "group", "in": "query", "description": "Filter credential types by group", "schema": { "type": "string" } }, { "name": "category", "in": "query", "description": "Filter credential types by category", "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/credentialType" } } } } } } } }, "/vault/credential_types/{cred_type_name}": { "get": { "tags": [ "credentials" ], "summary": "Get the properties of a specific credential type", "operationId": "getCredentialType", "parameters": [ { "name": "cred_type_name", "in": "path", "description": "Name of the credential type", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/credentialType" } } } } } } }, "/vault/credentials": { "get": { "tags": [ "credentials" ], "summary": "Get a list of all credentials", "operationId": "getCredentials", "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/credential" } } } } } } }, "post": { "tags": [ "credentials" ], "summary": "Create a new credential", "description": "`New in version 1.1 - added support for cloud credentials.`\n\n`New in version 1.2 - added support for API credentials.`", "operationId": "createCredential", "requestBody": { "description": "Credential to be added. Note that a default label is generated if no label is provided. If no ip_range is provided, the credential will be created to match all IPs (0.0.0.0/0,::/0) except for cloud credentials.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/credentialInput" } } }, "required": true }, "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "required": [ "uri", "uuid" ], "type": "object", "properties": { "uuid": { "type": "string" }, "uri": { "type": "string" } } } } } } }, "x-codegen-request-body-name": "body" } }, "/vault/credentials/by_type/{cred_type_name}": { "get": { "tags": [ "credentials" ], "summary": "Get a list of all credentials for a given type", "operationId": "getCredentialsByType", "parameters": [ { "name": "cred_type_name", "in": "path", "description": "Name of the credential type", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/credential" } } } } } } }, "/vault/credentials/{cred_id}": { "get": { "tags": [ "credentials" ], "summary": "Get the properties of a specific credential", "operationId": "getCredential", "parameters": [ { "name": "cred_id", "in": "path", "description": "ID of the credential", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/credential" } } } } } }, "put": { "tags": [ "credentials" ], "summary": "Replace a credential", "description": "Replaces a single credential. All required credential properties must be present. Optional properties that are missing will be reset to their defaults.", "operationId": "updateCredential", "parameters": [ { "name": "cred_id", "in": "path", "description": "ID of the credential", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Credential properties", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/credentialInput" } } }, "required": true }, "responses": { "200": { "description": "successful operation", "content": {} } }, "x-codegen-request-body-name": "body" }, "patch": { "summary": "Patch a credential", "description": "Updates partial resources of a credential. Missing properties are left unchanged.\n\n`New in version 1.1 - added support for cloud credentials.`\n\n`New in version 1.2 - added support for API credentials.`", "operationId": "patchCredential", "tags": [ "credentials" ], "parameters": [ { "name": "cred_id", "in": "path", "description": "ID of the credential", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Credential properties", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/credentialInput" } } }, "required": true }, "responses": { "200": { "description": "successful operation", "content": {} } }, "x-codegen-request-body-name": "body" }, "delete": { "summary": "Delete a credential", "description": "Deletes a specific credential.", "operationId": "deleteCredential", "tags": [ "credentials" ], "parameters": [ { "name": "cred_id", "in": "path", "description": "ID of the credential", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": {} } } } }, "/vault/kerberos/realms": { "get": { "tags": [ "kerberos" ], "summary": "Retrieve all realms", "description": "Retrieve all available realms\n\n`New in version 1.3`", "operationId": "getAllRealm", "responses": { "200": { "description": "A list of all available realms", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/realmsResponse" } } } } } } }, "/vault/kerberos/realms/{realm_name}": { "get": { "tags": [ "kerberos" ], "summary": "Retrieve a realm", "description": "Retrieve a Kerberos realm by name\n\n`New in version 1.3`", "operationId": "getRealm", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "A list of realms", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/realmResponse" } } } } } } }, "post": { "tags": [ "kerberos" ], "summary": "Create a realm", "description": "Create a Kerberos realm\n\n`New in version 1.3`", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Values to create a new realm", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KerberosInput" } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/realmResponse" } } } } }, "x-codegen-request-body-name": "body" }, "delete": { "tags": [ "kerberos" ], "summary": "Delete a realm", "description": "Delete a Kerberos realm\n\n`New in version 1.3`", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful operation", "content": {} } } }, "patch": { "tags": [ "kerberos" ], "summary": "Update a realm", "description": "Update a Kerberos realm\n\n`New in version 1.3`", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "Values to update a realm", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KerberosInput" } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/realmResponse" } } } } }, "x-codegen-request-body-name": "body" } }, "/vault/kerberos/realms/{realm_name}/test": { "post": { "tags": [ "kerberos" ], "summary": "Test user credentials", "description": "Test user credentials by attempting to acquire a new Kerberos Ticket Granting Ticket (TGT)\n\n`New in version 1.3`", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "requestBody": { "description": "kuser credentials to get a Kerberos ticket", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KerberosUserInput" } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": {} } }, "x-codegen-request-body-name": "body" } }, "/vault/kerberos/realms/{realm_name}/keytabs": { "get": { "tags": [ "kerberos" ], "summary": "List users with a Kerberos keytab file", "description": "Return a list of users with a Kerberos keytab file\n\n`New in version 1.3`", "operationId": "getUsersWithKeytabs", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "A list of users with keytabs", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } } }, "post": { "tags": [ "kerberos" ], "summary": "Upload a Kerberos keytab file", "description": "Upload a Kerberos keytab file\n\n`New in version 1.3`", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "username": { "type": "string", "description": "name of the user" }, "keytab": { "type": "string", "format": "binary" } } } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": {} } } } }, "/vault/kerberos/realms/{realm_name}/keytabs/{username}": { "delete": { "tags": [ "kerberos" ], "summary": "Delete a keytab file", "description": "Delete the keytab file for a user\n\n`New in version 1.3`", "operationId": "deleteKeytab", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "description": "The user name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": {} } } } }, "/vault/kerberos/realms/{realm_name}/ccaches": { "get": { "tags": [ "kerberos" ], "summary": "List users with a Kerberos credential cache file", "description": "Return a list of users with a Kerberos credential cache file\n\n`New in version 1.3`", "operationId": "getUsersWithCCache", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "A list of users with ccaches", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } } }, "post": { "tags": [ "kerberos" ], "summary": "Upload a Kerberos credential cache file", "description": "Upload a Kerberos credential cache file\n\n`New in version 1.3`", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "username": { "type": "string", "description": "name of the user" }, "ccache": { "type": "string", "format": "binary" } } } } }, "required": true }, "responses": { "200": { "description": "Successful operation", "content": {} } } } }, "/vault/kerberos/realms/{realm_name}/ccaches/{username}": { "delete": { "tags": [ "kerberos" ], "summary": "Delete a cedential cache file", "description": "Deletes the credential cache file for a user\n\n`New in version 1.3`", "operationId": "deleteCCache", "parameters": [ { "name": "realm_name", "in": "path", "description": "The name of the realm", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "description": "The user name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "successful operation", "content": {} } } } } }, "components": { "schemas": { "credential": { "required": [ "types" ], "type": "object", "properties": { "index": { "type": "integer", "format": "int64" }, "enabled": { "type": "boolean" }, "username": { "type": "string" }, "password": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "ip_range": { "type": "string" }, "ip_exclusion": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "types": { "type": "array", "items": { "type": "string" } }, "internal.valid": { "type": "boolean" }, "internal.secondary": { "type": "boolean" }, "internal.created": { "type": "string", "format": "date-time" }, "internal.modified": { "type": "string", "format": "date-time" }, "internal.messages": { "type": "array", "items": { "type": "string" } }, "su.enabled": { "type": "boolean" }, "su.username": { "type": "string" }, "su.password": { "type": "string" }, "shell.record": { "type": "boolean" }, "shell.prompt": { "type": "string" }, "shell.force_subshell": { "type": "boolean" }, "vsphere.port": { "type": "integer", "format": "int64" }, "vsphere.timeout": { "type": "integer", "format": "int64" }, "vcenter.port": { "type": "integer", "format": "int64" }, "vcenter.timeout": { "type": "integer", "format": "int64" }, "windows.port": { "type": "integer", "format": "int64" }, "telnet.port": { "type": "integer", "format": "int64" }, "telnet.timeout": { "type": "integer", "format": "int64" }, "rlogin.port": { "type": "integer", "format": "int64" }, "rlogin.timeout": { "type": "integer", "format": "int64" }, "cimc.port": { "type": "integer", "format": "int64" }, "cimc.timeout": { "type": "integer", "format": "int64" }, "ribcl.port": { "type": "integer", "format": "int64" }, "ribcl.timeout": { "type": "integer", "format": "int64" }, "vplex.port": { "type": "integer", "format": "int64" }, "vplex.timeout": { "type": "integer", "format": "int64" }, "ssh.port": { "type": "integer", "format": "int64" }, "ssh.timeout": { "type": "integer", "format": "int64" }, "ssh.prefauth": { "type": "array", "items": { "type": "string" } }, "ssh.key.set": { "type": "boolean" }, "ssh.key.passphrase": { "type": "string" }, "ssh.key.data": { "type": "string" }, "kerberos.realm": { "type": "string" }, "snmp.port": { "type": "integer", "format": "int64" }, "snmp.timeout": { "type": "integer", "format": "int64" }, "snmp.version": { "type": "string" }, "snmp.retries": { "type": "integer", "format": "int64" }, "snmp.getbulk": { "type": "boolean" }, "snmp.community": { "type": "string" }, "snmp.v3.privkey": { "type": "string" }, "snmp.v3.authkey": { "type": "string" }, "snmp.v3.privproto": { "type": "string" }, "snmp.v3.securityname": { "type": "string" }, "snmp.v3.context": { "type": "string" }, "snmp.v3.authproto": { "type": "string" }, "wbem.http.port": { "type": "integer", "format": "int64" }, "wbem.https.port": { "type": "integer", "format": "int64" }, "wbem.http.enabled": { "type": "boolean" }, "wbem.https.enabled": { "type": "boolean" }, "wbem.timeout": { "type": "integer", "format": "int64" }, "mainframe_agent.port": { "type": "integer", "format": "int64" }, "mainframe_agent.timeout": { "type": "integer", "format": "int64" }, "uuid": { "type": "string" }, "uri": { "type": "string" }, "web_basic.timeout": { "type": "integer", "format": "int64" }, "web_basic.http.enabled": { "type": "boolean" }, "web_digest.timeout": { "type": "integer", "format": "int64" }, "web_digest.http.enabled": { "type": "boolean" }, "web_oauth2.timeout": { "type": "integer", "format": "int64" }, "web_oauth2.token_endpoint": { "type": "string" }, "web_oauth2.http.enabled": { "type": "boolean" } } }, "credentialInput": { "type": "object", "properties": { "index": { "type": "integer", "format": "int64" }, "enabled": { "type": "boolean" }, "username": { "type": "string" }, "password": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "ip_range": { "type": "string" }, "ip_exclusion": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "types": { "type": "array", "items": { "type": "string" } }, "su.enabled": { "type": "boolean" }, "su.username": { "type": "string" }, "su.password": { "type": "string" }, "shell.record": { "type": "boolean" }, "shell.prompt": { "type": "string" }, "shell.force_subshell": { "type": "boolean" }, "vsphere.port": { "type": "integer", "format": "int64" }, "vsphere.timeout": { "type": "integer", "format": "int64" }, "vcenter.port": { "type": "integer", "format": "int64" }, "vcenter.timeout": { "type": "integer", "format": "int64" }, "windows.port": { "type": "integer", "format": "int64" }, "telnet.port": { "type": "integer", "format": "int64" }, "telnet.timeout": { "type": "integer", "format": "int64" }, "rlogin.port": { "type": "integer", "format": "int64" }, "rlogin.timeout": { "type": "integer", "format": "int64" }, "cimc.port": { "type": "integer", "format": "int64" }, "cimc.timeout": { "type": "integer", "format": "int64" }, "ribcl.port": { "type": "integer", "format": "int64" }, "ribcl.timeout": { "type": "integer", "format": "int64" }, "vplex.port": { "type": "integer", "format": "int64" }, "vplex.timeout": { "type": "integer", "format": "int64" }, "ssh.port": { "type": "integer", "format": "int64" }, "ssh.timeout": { "type": "integer", "format": "int64" }, "ssh.prefauth": { "type": "array", "items": { "type": "string" } }, "ssh.key.set": { "type": "boolean" }, "ssh.key.passphrase": { "type": "string" }, "ssh.key.data": { "type": "string" }, "kerberos.realm": { "type": "string" }, "snmp.port": { "type": "integer", "format": "int64" }, "snmp.timeout": { "type": "integer", "format": "int64" }, "snmp.version": { "type": "string" }, "snmp.retries": { "type": "integer", "format": "int64" }, "snmp.getbulk": { "type": "boolean" }, "snmp.community": { "type": "string" }, "snmp.v3.privkey": { "type": "string" }, "snmp.v3.authkey": { "type": "string" }, "snmp.v3.privproto": { "type": "string" }, "snmp.v3.securityname": { "type": "string" }, "snmp.v3.context": { "type": "string" }, "snmp.v3.authproto": { "type": "string" }, "wbem.http.port": { "type": "integer", "format": "int64" }, "wbem.https.port": { "type": "integer", "format": "int64" }, "wbem.http.enabled": { "type": "boolean" }, "wbem.https.enabled": { "type": "boolean" }, "wbem.timeout": { "type": "integer", "format": "int64" }, "mainframe_agent.port": { "type": "integer", "format": "int64" }, "mainframe_agent.timeout": { "type": "integer", "format": "int64" }, "web_basic.timeout": { "type": "integer", "format": "int64" }, "web_basic.http.enabled": { "type": "boolean" }, "web_digest.timeout": { "type": "integer", "format": "int64" }, "web_digest.http.enabled": { "type": "boolean" }, "web_oauth2.timeout": { "type": "integer", "format": "int64" }, "web_oauth2.token_endpoint": { "type": "string" }, "web_oauth2.http.enabled": { "type": "boolean" } }, "description": "A credential can be used for one or more types of access, with the 'types' field listing all the access types a credential applies to. See the /vault/credential_types endpoint for a list of types. Different access types require different fields from this object to be populated when creating or updating a credential. Also, credentials used to access cloud providers may require additional fields to those listed here. Look up your chosen cloud provider with the /discovery/cloud_metadata endpoint to see a list of fields." }, "credentialType": { "required": [ "categories", "description", "groups", "label", "name", "uri" ], "type": "object", "properties": { "name": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "groups": { "type": "array", "items": { "type": "string" } }, "categories": { "type": "array", "items": { "type": "string" } }, "uri": { "type": "string" } } }, "realmResponse": { "required": [ "admin_port", "admin_server", "kdc", "kdc_port", "name", "number_of_ccaches", "number_of_credentials", "number_of_datasources", "number_of_keytabs" ], "type": "object", "properties": { "admin_server": { "type": "string", "description": "The address (IP or DNS name) of the admin server" }, "admin_port": { "type": "integer", "description": "The port of the admin server", "example": 749 }, "kdc": { "type": "string", "description": "The address (IP or DNS name) of the KDC" }, "kdc_port": { "type": "integer", "description": "The port of the KDC", "example": 88 }, "name": { "type": "string", "description": "The name of the realm" }, "number_of_keytabs": { "type": "integer", "description": "The number of users with keytabs", "example": 0 }, "number_of_ccaches": { "type": "integer", "description": "The number of users with ccaches", "example": 0 }, "number_of_credentials": { "type": "integer", "description": "The number of credentials using the realm", "example": 0 }, "number_of_datasources": { "type": "integer", "description": "The number of data sources using the realm", "example": 0 } } }, "realmsResponse": { "required": [ "can_write", "realms" ], "type": "object", "properties": { "can_write": { "type": "boolean", "description": "Whether or not the user can edit realms" }, "realms": { "type": "array", "description": "A list of all available realms", "items": { "$ref": "#/components/schemas/realmResponse" } } } }, "KerberosInput": { "required": [ "kdc" ], "type": "object", "properties": { "admin_server": { "type": "string", "description": "The address (IP or DNS name) of the admin server", "default": "" }, "admin_port": { "maximum": 65535, "minimum": 1, "type": "integer", "description": "The port of the admin server" }, "kdc": { "type": "string", "description": "The address (IP or DNS name) of the KDC" }, "kdc_port": { "maximum": 65535, "minimum": 1, "type": "integer", "description": "The port of the KDC" } } }, "KerberosUserInput": { "required": [ "password", "principal" ], "type": "object", "properties": { "principal": { "type": "string", "description": "Name of user principal for the test" }, "password": { "type": "string", "description": "Password of user principal for the test" } } }, "discovery_instance": { "type": "object", "properties": { "uuid": { "type": "string", "description": "Unique identifier for the instance" }, "name": { "type": "string", "description": "Configured name of the instance" }, "members": { "type": "object", "description": "Mapping of cluster member ID to address the outpost can access it by", "additionalProperties": { "type": "string" } }, "status": { "type": "string" }, "message": { "type": "string" } } } } } }