Endpoints in the Outpost REST API
This version of BMC Discovery Outpost supports versions 1.9 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.9
{ "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" } ], "paths": { "/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/{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": { "required": [ "keytab", "username" ], "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": { "required": [ "ccache", " username" ], "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" } } } } } }