openapi: 3.2.0 info: version: v1 title: WhatsUp Gold Credential API x-logo: url: images/wug_logo.svg description: '**Version 2026.0** *Use WhatsUp Gold REST API to deploy network and device monitoring and management scripts.* !' servers: - url: https://10.40.67.158:9644 tags: - name: Credential paths: /api/v1/credentials/{credentialId}: get: tags: - Credential summary: Return a credential operationId: Credential_Get parameters: - name: credentialId in: path description: ID of the credential required: true schema: type: string - name: view in: query description: type of credential information being requested, default=basic required: false schema: type: string enum: - id - basic - summary - details - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Result_Credential' text/json: schema: $ref: '#/components/schemas/Result_Credential' security: - oauth2: [] put: tags: - Credential summary: Update credential with new values description: 'The following fields have restrictions * Name - must be unique, lowercase compare **Note:** The property bag entries are minimally validated. It is the responsibility of the caller to ensure a credential is filled in with all data and usable.' operationId: Credential_UpdateCredential parameters: - name: credentialId in: path description: ID of credential to be modified required: true schema: type: string - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SuccessResult' text/json: schema: $ref: '#/components/schemas/SuccessResult' security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CredentialModify' text/json: schema: $ref: '#/components/schemas/CredentialModify' description: new values for credential required: true delete: tags: - Credential summary: Remove credential from credential library operationId: Credential_DeleteCredential parameters: - name: credentialId in: path description: ID of the credential required: true schema: type: string - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SuccessResult' text/json: schema: $ref: '#/components/schemas/SuccessResult' security: - oauth2: [] /api/v1/credentials/{credentialId}/assignments/-: get: tags: - Credential summary: Return a credential operationId: Credential_GetAssignments parameters: - name: credentialId in: path description: ID of the credential required: true schema: type: string - name: view in: query description: type of credential information being requested, default=basic required: false schema: type: string enum: - id - basic - summary - details - name: deviceView in: query description: type of assigned device information to be returned, default=id required: false schema: type: string enum: - id - basic - card - overview - name: pageId in: query description: page for the device assignments. Paging is only used for assignment view required: false schema: type: string - name: limit in: query description: number of device assignments to include per page required: false schema: type: integer format: int32 - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PageResult_Credential' text/json: schema: $ref: '#/components/schemas/PageResult_Credential' security: - oauth2: [] delete: tags: - Credential summary: Remove assigned credential from all devices user has access to operationId: Credential_RemoveCredentialFromAllDevice parameters: - name: credentialId in: path description: ID for credential to be unassigned required: true schema: type: string - name: preventOrphanActiveMonitors in: query description: prevent operation if an active monitor will be orphaned, default=true required: false schema: type: boolean - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CountedSuccessResult' text/json: schema: $ref: '#/components/schemas/CountedSuccessResult' security: - oauth2: [] /api/v1/credentials/-: get: tags: - Credential summary: Return page of credentials from credential library operationId: Credential_Find parameters: - name: view in: query description: type of credential information being requested, default=basic required: false schema: type: string enum: - id - basic - summary - details - name: type in: query description: filter for type of credential. Default=all required: false schema: type: string enum: - all - snmpV1 - snmpV2 - snmpV3 - windows - ado - telnet - ssh - vmware - jmx - smis - aws - azure - meraki - restapi - ubiquiti - redfish - name: search in: query description: return only credentials that contain this string in display name, description or type. Case-insensitive, empty value is ignored required: false schema: type: string - name: pageId in: query description: the pageId, empty will return first page required: false schema: type: string - name: limit in: query description: limit the number of entries per page, is also limited by service. 0 or empty will give the maximum number per page required: false schema: type: integer format: int32 - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PageResult_List_Credential' text/json: schema: $ref: '#/components/schemas/PageResult_List_Credential' security: - oauth2: [] post: tags: - Credential summary: Add credential to library description: 'The following field has restrictions **Name** - must be unique within type, lowercase compare **Note:** The property bag entries are minimally validated. It is the responsibility of the caller to ensure a credential is filled in with all data and usable.' operationId: Credential_AddCredential parameters: - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Result_Credential' text/json: schema: $ref: '#/components/schemas/Result_Credential' security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CredentialAdd' text/json: schema: $ref: '#/components/schemas/CredentialAdd' description: new values for credential required: true /api/v1/credentials/-/helper: get: tags: - Credential summary: Return information to help creating credential description: '''meraki_organization'' helper * input - API key for the organization. * return - list of information needed to build a Cisco Meraki credential.' operationId: Credential_GetHelper parameters: - name: input in: query description: optional input field for the helper required: true schema: type: string - name: type in: query description: Type of credential helper request should be sent to, default='meraki_organization' required: false schema: type: string enum: - meraki_organization - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Result_CredentialHelperResults' text/json: schema: $ref: '#/components/schemas/Result_CredentialHelperResults' security: - oauth2: [] /api/v1/credentials/-/assignments/-: get: tags: - Credential summary: Return information about credential assignments operationId: Credential_FindAssignments parameters: - name: view in: query description: type of credential information being requested, default=basic required: false schema: type: string enum: - id - basic - summary - details - name: type in: query description: filter for type of credential. default=all required: false schema: type: string enum: - all - snmpV1 - snmpV2 - snmpV3 - windows - ado - telnet - ssh - vmware - jmx - smis - aws - azure - meraki - restapi - ubiquiti - redfish - name: search in: query description: return only credentials that contain this string in display name, description or type. Case-insensitive, empty value is ignored required: false schema: type: string - name: deviceView in: query description: level of device information to be included when 'includeAssignments' is true, default='id' required: false schema: type: string enum: - id - basic - card - overview - name: pageId in: query description: the pageId, empty will return first page required: false schema: type: string - name: limit in: query description: limit the number of entries per page, is also limited by service. 0 or empty will give the maximum number per page required: false schema: type: integer format: int32 - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PageResult_List_Credential' text/json: schema: $ref: '#/components/schemas/PageResult_List_Credential' security: - oauth2: [] /api/v1/credentials/{credentialId}/config/template: get: tags: - Credential summary: Return a template for a credential operationId: Credential_GetTemplateById parameters: - name: credentialId in: path description: ID of the credential required: true schema: type: string - name: key in: query description: obfuscation key is required to encode sensitive data. if key is empty, then only credentials without sensitive data will be returned required: false schema: type: string - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Result_CredentialTemplateReadResults' text/json: schema: $ref: '#/components/schemas/Result_CredentialTemplateReadResults' security: - oauth2: [] /api/v1/credentials/-/config/template: get: tags: - Credential summary: Return set of credential templates operationId: Credential_GetTemplate parameters: - name: key in: query description: obfuscation key is required to encode sensitive data. if key is empty, then only credentials without sensitive data will be returned required: false schema: type: string - name: type in: query description: filter for type of credential. default=all required: false schema: type: string enum: - all - snmpV1 - snmpV2 - snmpV3 - windows - ado - telnet - ssh - vmware - jmx - smis - aws - azure - meraki - restapi - ubiquiti - redfish - name: search in: query description: return only credentials that contain this string in display name, description or type. Case-insensitive, empty value is ignored required: false schema: type: string - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Result_CredentialTemplateReadResults' text/json: schema: $ref: '#/components/schemas/Result_CredentialTemplateReadResults' security: - oauth2: [] patch: tags: - Credential summary: Apply credential templates operationId: Credential_ApplyCredentialTemplates parameters: - name: key in: query description: value used to decode sensitive data. If key is empty, then all sensitive data will be assumed to be in clear text required: false schema: type: string - name: Authorization in: header description: oauth2 access_token required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Result_ApplyTemplateResults' text/json: schema: $ref: '#/components/schemas/Result_ApplyTemplateResults' security: - oauth2: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CredentialTemplateBatch' text/json: schema: $ref: '#/components/schemas/CredentialTemplateBatch' description: set of credential templates to apply required: true components: schemas: Result_CredentialTemplateReadResults: description: 'The standard result envelope for successful data. All results MUST extend this type eventually.' type: object properties: data: $ref: '#/components/schemas/CredentialTemplateReadResults' description: The data payload readOnly: true Result_CredentialHelperResults: description: 'The standard result envelope for successful data. All results MUST extend this type eventually.' type: object properties: data: $ref: '#/components/schemas/CredentialHelperResults' description: The data payload readOnly: true PagingInfo_List_Credential: description: The paging information type: object properties: pageId: description: The id of the current page being returned type: string nextPageId: description: The id of the next page, if there is one type: string size: format: int32 description: The number of items in the page being returned type: integer CredentialPropertyBag: description: 'List of properties to be added to the device Property Names should be unique in the list.' type: object properties: name: description: 'Required: Name of property' maxLength: 50 minLength: 0 type: string value: description: Defaults to empty. Value to be used for property. type: string CredentialHelperResults: description: A generic structure for handling credential helper output type: object properties: responseType: description: respone type of data being returned. enum: - meraki_organization type: string output: description: Output of the helper in simplest form. Helper will determine if field will be used. type: array items: type: array items: $ref: '#/components/schemas/NameValuePair' PageResult_Credential: description: A result envelope that carries paged data type: object properties: paging: $ref: '#/components/schemas/PagingInfo_Credential' description: The paging section of the envelope readOnly: true data: $ref: '#/components/schemas/Credential' description: The data payload readOnly: true Result_ApplyTemplateResults: description: 'The standard result envelope for successful data. All results MUST extend this type eventually.' type: object properties: data: $ref: '#/components/schemas/ApplyTemplateResults' description: The data payload readOnly: true CredentialTemplateBatch: description: Provide a set of device templates to be applied type: object properties: options: description: Set of options for applying the template type: array items: type: string allowModifies: description: 'If true and template has an id, template will be used to modify matching credentials. If credential with a validate id is not found, template will be ignored. if false, the id field will be ignored.' type: boolean templates: description: Set of templates to be applied. All templates will attempt to create a new credential. type: array items: $ref: '#/components/schemas/CredentialTemplate' SuccessResult: type: object properties: success: type: boolean TemplateErrorMap: description: A set of errors per template type: object properties: templateId: description: Template identifier error was created for. type: string messages: description: Errors found with template type: array items: type: string CredentialTemplate: description: Credential template structure type: object properties: templateId: description: Unique identifier for this template type: string type: description: Type of credential type: string propertyBags: description: Configuration Data Field type: array items: $ref: '#/components/schemas/CredentialPropertyBag' name: type: string description: type: string id: type: string CredentialAdd: description: Credential Add structure type: object properties: name: description: The name of the resource type: string description: description: The optional description of the resource type: string type: description: Type of credential type: string propertyBags: description: set of properties for this credential type: array items: $ref: '#/components/schemas/CredentialPropertyBag' TemplateUpdate: description: Request an update of the devices created while applying template. type: object properties: success: description: Update request was successfully made type: boolean id: description: Update returned by refresh/rescan request type: string name: description: Device scan name returned by update request type: string description: description: Device scan description returned by update request type: string PageResult_List_Credential: description: A result envelope that carries paged data type: object properties: paging: $ref: '#/components/schemas/PagingInfo_List_Credential' description: The paging section of the envelope readOnly: true data: description: The data payload type: array items: $ref: '#/components/schemas/Credential' readOnly: true DeviceOverview: description: "Provides an overview of a given device in terms \nof basic summary information as well as monitoring \nstatus." type: object properties: downActiveMonitors: description: A collection of Down Active monitor status items type: array items: $ref: '#/components/schemas/MonitorAssignmentStatus' totalActiveMonitors: format: int32 description: The total number of active monitors for this device type: integer totalActiveMonitorsDown: format: int32 description: The total number of active monitors that are down for this device type: integer notes: description: The notes field for the device type: string hostName: description: The hostname for the device type: string networkAddress: description: The current network address of the device. Usually an IP address. type: string role: description: The primary role of the device (e.g. router, switch, etc.). type: string brand: description: The brand for the device (e.g. Cisco) type: string os: description: The operating system for the device (e.g. windows, linux, etc) type: string bestState: description: The best state of the device, like Up enum: - Unknown - Up - Down - Maintenance - Any type: string worstState: description: The worst state of the device, like Down enum: - Unknown - Up - Down - Maintenance - Any type: string name: type: string description: type: string id: type: string CountedSuccessResult: type: object properties: successfulOperations: format: int32 type: integer resourcesNotAllowed: type: array items: type: string resourcesWithErros: type: array items: type: string errors: type: array items: type: string limitReached: type: boolean maximumReached: type: boolean success: type: boolean PagingInfo_Credential: description: The paging information type: object properties: pageId: description: The id of the current page being returned type: string nextPageId: description: The id of the next page, if there is one type: string size: format: int32 description: The number of items in the page being returned type: integer CredentialModify: description: Credential structure containing items allowed to be modified. type: object properties: name: description: New name for the credential. type: string description: description: New description for the credential type: string propertyBags: description: set of properties to be added or replaced on this credential type: array items: $ref: '#/components/schemas/CredentialPropertyBag' TemplateMap: description: provides a mapping from a template id to the resulting generated id. type: object properties: templateId: description: Caller provided template Id type: string resultId: description: Id generated when template was applied. type: string CredentialTemplateReadResults: description: Results returned when calling to read a monitor template type: object properties: credentialCount: format: int32 description: Number of device roles used to generate this structure include device roles with only errors. type: integer errors: description: Set of errors encountered during the read request type: array items: type: string templates: description: Set of templates matching filter criteria. type: array items: $ref: '#/components/schemas/CredentialTemplate' Credential: description: Credential template structure type: object properties: type: description: Type of credential type: string propertyBags: description: 'set of properties for this credential available if credential view is set to details.' type: array items: $ref: '#/components/schemas/CredentialPropertyBag' assignments: description: 'List of devices this credential is assigned to. returned if includeAssignments is true.' type: array items: $ref: '#/components/schemas/CredentialAssignment' usedInFailover: description: Set if includeAssignments is true; type: boolean name: type: string description: type: string id: type: string CredentialAssignment: description: representation of a credential assignment type: object properties: device: $ref: '#/components/schemas/DeviceOverview' description: Unique device ID MonitorAssignmentStatus: description: The current monitoring status of this monitor type: object properties: state: description: The internal state of the monitor enum: - Unknown - Up - Down - Maintenance - Any type: string reason: description: The reason a monitor is in the current state type: string lastChangeUtc: format: date-time description: The time when the status changed in Utc type: string monitorTypeId: description: The monitor type id as it exists in the library type: string monitorTypeName: description: The monitor type name as it exists in the library type: string comment: description: 'Comment specified when the monitor was assigned to the device Typically used for interface monitor assignment where comment is the interface description' type: string enabled: description: Indicates whether the monitor is enabled type: boolean id: type: string ApplyTemplateResults: description: Results of an apply operations type: object properties: idMap: description: returns a list of template Id to device identifier that where created. type: array items: $ref: '#/components/schemas/TemplateMap' errors: description: return a list of template to errors/warnings produced by each template type: array items: $ref: '#/components/schemas/TemplateErrorMap' update: $ref: '#/components/schemas/TemplateUpdate' description: return information about the update request that may be requested operations: format: int32 description: when possible, number of operations will be returned type: integer successful: format: int32 description: when possible, number of successful operations will be returned type: integer Result_Credential: description: 'The standard result envelope for successful data. All results MUST extend this type eventually.' type: object properties: data: $ref: '#/components/schemas/Credential' description: The data payload readOnly: true NameValuePair: description: NameValuePair type: object properties: name: description: Name type: string value: description: Value type: string securitySchemes: oauth2: type: oauth2 flows: password: scopes: {} tokenUrl: http://localhost:8734/api/v1/token description: OAuth2 Password Grant