Endpoints in the Outpost REST API
This version of BMC Discovery Outpost supports versions 1.14 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.14
{ "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\nmappings), to the outpost.\n\nIf no Discovery instances are yet registered to this outpost, then just an Admin\ntoken issued by the '/admin/authentication' API is required in the Authorization\nheader. However, if one or more Discovery instances are already registered, then\nan API key for a user from one of those instances is required in addition. The\nuser must have rights to read credentials. See the introduction to this page for\nmore details.\n\n## Supplying member mappings\n\nThe token retrieved from the Discovery instance's `discovery/instance_token` GET\nendpoint is a block of encoded text containing the data the outpost needs to\nconnect to that Discovery instance. Among other things, it contains a list of\nendpoints (as IP addresses or host names), one per cluster member, that the\nOutpost can use to connect. \n\nIn some cases those IP addresses or host names will not be visible from the\nOutpost's network location, and you will want to supply an alternative address\nfor each Discovery cluster member for the Outpost to use instead.\n\nTo achieve this with version `1.13` or later of the API, use the `members` block\nsupplied with the token. It contains a mapping of the internal identifier of the\ncluster member to the cluster member's address. Modify the `members` block with\naddresses that the outpost can use, and include it in your `POST` request to\nthis `/admin/instances` API.\n\nFor version `1.12`, first `POST` the token with no `members` block. The response\nfrom the outpost will include the members block embedded in the token for you to\ncopy and modify. Delete the newly added instance using the `/admin/instances`\n`DELETE` endpoint, and then resubmit it with a correctly modified `members`\nblock.\n\nNote that all SaaS Discovery instances present as a single-member cluster.\n\nThis API the equivalent of using the 'Register an Instance' page in the Outpost,\nand modifying the 'Addresses' section to specify the correct addresses.\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.\n\n `New in version 1.13 - includes attribute information.`", "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", "description": "Get the properties of a specific credential type.\n\n `New in version 1.13 - includes attribute information.`", "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 credentials", "description": "With no query parameters, retrieves all credentials.\n\n`New in version 1.14`: query parameters allow filtering of credentials.", "operationId": "getCredentials", "parameters": [ { "name": "type", "in": "query", "description": "Type of credential, e.g. ssh. May contain a comma-separated list", "schema": { "type": "string" } }, { "name": "ip_addr", "in": "query", "description": "IP address that the credential must match", "schema": { "type": "string" } }, { "name": "label", "in": "query", "description": "Credential label", "schema": { "type": "string" } }, { "name": "usage", "in": "query", "description": "Credential usage", "schema": { "type": "string", "enum": [ "SCANNING", "DATASOURCE", "OTHER" ] } }, { "name": "enabled", "in": "query", "description": "Is the credential enabled?", "schema": { "type": "boolean" } } ], "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" }, "uuid": { "type": "string" }, "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.terminal": { "type": "string" }, "shell.force_subshell": { "type": "boolean" }, "kerberos.realm": { "type": "string" }, "uri": { "type": "string" } } }, "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.sso": { "type": "boolean" }, "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": [ "attributes", "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" } }, "attributes": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the attribute" }, "label": { "type": "string", "description": "Label for the attribute" }, "description": { "type": "string", "description": "Description for the attribute" }, "type": { "type": "string", "description": "Type of the attribute" }, "optional": { "type": "boolean", "description": "Indicated the attribute is optional. If not defined, the default will be used" }, "default": { "description": "Default value for optional attributes" } } } }, "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" } } } } } }