--- swagger: "2.0" info: version: "0.1.0" title: "Salus Monitor Management" schemes: - "https" - "http" paths: /api/admin/bound-monitors: post: summary: "Queries BoundMonitors attached to a particular Envoy and translates\ \ the content for the given agent types and versions" description: "" operationId: "queryBoundMonitors" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/BoundMonitorsRequest" responses: 200: description: "successful operation" schema: type: "array" items: $ref: "#/definitions/BoundMonitorDTO" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/admin/monitors: get: summary: "Gets all Monitors irrespective of Tenant" description: "" operationId: "getAll" parameters: [] responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentDetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/admin/policy-monitors: get: summary: "Gets all Policy Monitors" description: "" operationId: "getAllPolicyMonitors" parameters: [] responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentDetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" post: summary: "Creates new Policy Monitor" description: "" operationId: "createPolicyMonitor" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/DetailedMonitorInput" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" 201: description: "Successfully Created Policy Monitor" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/admin/policy-monitors/{uuid}: get: summary: "Get specific Policy Monitor by Id" description: "" operationId: "getPolicyMonitorById" parameters: - name: "uuid" in: "path" required: true type: "string" format: "uuid" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" put: summary: "Updates specific Policy Monitor" description: "" operationId: "updatePolicyMonitor" parameters: - name: "uuid" in: "path" required: true type: "string" format: "uuid" - in: "body" name: "body" required: false schema: $ref: "#/definitions/DetailedMonitorInput" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" delete: summary: "Deletes specific Policy Monitor" description: "" operationId: "deletePolicyMonitor" parameters: - name: "uuid" in: "path" required: true type: "string" format: "uuid" responses: 204: description: "Policy Monitor Deleted" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" patch: summary: "Patch specific Policy Monitor" description: "" operationId: "patchPolicyMonitor" consumes: - "application/json" - "application/json-patch+json" parameters: - name: "uuid" in: "path" required: true type: "string" format: "uuid" - in: "body" name: "body" required: false schema: $ref: "#/definitions/JsonPatch" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/admin/rebalance-zone/**: post: summary: "Rebalances a public zone" description: "" operationId: "rebalancePublicZone" parameters: [] responses: 200: description: "successful operation" schema: $ref: "#/definitions/CompletableFutureRebalanceResult" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/admin/zone-assignment-counts/**: get: summary: "Gets assignment counts of monitors to poller-envoys in the public\ \ zone" description: "" operationId: "getPublicZoneAssignmentCounts" parameters: [] responses: 200: description: "successful operation" schema: $ref: "#/definitions/CompletableFutureListZoneAssignmentCount" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/admin/zones: get: summary: "Gets all public zones" description: "" operationId: "getAllPublicZones" parameters: [] responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentZoneDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" post: summary: "Creates a new public zone" description: "" operationId: "create" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/ZoneCreatePublic" responses: 200: description: "successful operation" schema: $ref: "#/definitions/ZoneDTO" 201: description: "" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/admin/zones/**: get: summary: "Gets specific public zone by name" description: "" operationId: "getPublicZone" parameters: [] responses: 200: description: "successful operation" schema: $ref: "#/definitions/ZoneDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" put: summary: "Updates a specific public zone" description: "" operationId: "update" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/ZoneUpdate" responses: 200: description: "successful operation" schema: $ref: "#/definitions/ZoneDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" delete: summary: "Deletes a specific public zone" description: "" operationId: "delete" parameters: [] responses: 204: description: "" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/tenant/{tenantId}/bound-monitors: get: operationId: "getBoundMonitorsForTenant" parameters: - name: "tenantId" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentBoundMonitorDTO" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/monitor-label-selectors: get: summary: "Lists the label selector keys and the values for each that are currently\ \ in use on monitors" description: "" operationId: "getMonitorLabelSelectors" parameters: - name: "tenantId" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: type: "object" additionalProperties: type: "array" items: type: "string" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/monitor-labels: get: summary: "Gets all Monitors that match labels. All labels must match to retrieve\ \ relevant Monitors." description: "" operationId: "getMonitorsWithLabels" parameters: - name: "tenantId" in: "path" required: true type: "string" - in: "body" name: "body" required: false schema: type: "object" additionalProperties: type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentDetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/monitors: get: summary: "Gets all Monitors for Tenant" description: "" operationId: "getAllForTenant" parameters: - name: "tenantId" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentDetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" post: summary: "Creates new Monitor for Tenant" description: "" operationId: "create" parameters: - name: "tenantId" in: "path" required: true type: "string" - in: "body" name: "body" required: false schema: $ref: "#/definitions/DetailedMonitorInput" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" 201: description: "Successfully Created Monitor" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/monitors-by-zone/{zone}: get: summary: "Gets all monitors in a given zone for a specific tenant" description: "" operationId: "getMonitorsForZone" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "zone" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentMonitorDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/tenant/{tenantId}/monitors/{uuid}: get: summary: "Gets specific Monitor for Tenant" description: "" operationId: "getById" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "uuid" in: "path" required: true type: "string" format: "uuid" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" put: summary: "Updates specific Monitor for Tenant" description: "" operationId: "update" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "uuid" in: "path" required: true type: "string" format: "uuid" - in: "body" name: "body" required: false schema: $ref: "#/definitions/DetailedMonitorInput" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" delete: summary: "Deletes specific Monitor for Tenant" description: "" operationId: "delete" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "uuid" in: "path" required: true type: "string" format: "uuid" responses: 204: description: "Resource Deleted" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" patch: summary: "Updates specific Monitor for Tenant" description: "" operationId: "patch" consumes: - "application/json" - "application/json-patch+json" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "uuid" in: "path" required: true type: "string" format: "uuid" - in: "body" name: "body" required: false schema: $ref: "#/definitions/JsonPatch" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/policy-monitors: get: summary: "Gets all Policy Monitors for Tenant" description: "" operationId: "getAllPolicyMonitorsForTenant" parameters: - name: "tenantId" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentDetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/policy-monitors/{uuid}: get: summary: "Gets specific Policy Monitor for Tenant" description: "" operationId: "getPolicyMonitorForTenant" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "uuid" in: "path" required: true type: "string" format: "uuid" responses: 200: description: "successful operation" schema: $ref: "#/definitions/DetailedMonitorOutput" security: - repose_auth: - "write:monitor" - "read:monitor" - "delete:monitor" /api/tenant/{tenantId}/rebalance-zone/{name}: post: summary: "Rebalances a private zone" description: "" operationId: "rebalancePrivateZone" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "name" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/CompletableFutureRebalanceResult" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/tenant/{tenantId}/zone-assignment-counts/{name}: get: summary: "Gets assignment counts of monitors to poller-envoys in the private\ \ zone" description: "" operationId: "getPrivateZoneAssignmentCounts" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "name" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/CompletableFutureListZoneAssignmentCount" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/tenant/{tenantId}/zones: get: summary: "Gets all zones available to be used in the tenant's monitor configurations" description: "" operationId: "getAvailableZones" parameters: - name: "tenantId" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/PagedContentZoneDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" post: summary: "Creates a new private zone for the tenant" description: "" operationId: "create" parameters: - name: "tenantId" in: "path" required: true type: "string" - in: "body" name: "body" required: false schema: $ref: "#/definitions/ZoneCreatePrivate" responses: 200: description: "successful operation" schema: $ref: "#/definitions/ZoneDTO" 201: description: "" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/tenant/{tenantId}/zones/**: get: summary: "Gets specific zone by tenant id and zone name" description: "" operationId: "getAvailableZone" parameters: - name: "tenantId" in: "path" required: true type: "string" responses: 200: description: "successful operation" schema: $ref: "#/definitions/ZoneDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" /api/tenant/{tenantId}/zones/{name}: put: summary: "Updates a specific private zone for the tenant" description: "" operationId: "update" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "name" in: "path" required: true type: "string" - in: "body" name: "body" required: false schema: $ref: "#/definitions/ZoneUpdate" responses: 200: description: "successful operation" schema: $ref: "#/definitions/ZoneDTO" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" delete: summary: "Deletes a specific private zone for the tenant" description: "" operationId: "delete" parameters: - name: "tenantId" in: "path" required: true type: "string" - name: "name" in: "path" required: true type: "string" responses: 204: description: "" security: - repose_auth: - "write:zone" - "read:zone" - "delete:zone" definitions: Apache: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: url: type: "string" username: type: "string" password: type: "string" timeout: $ref: "#/definitions/Duration" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" BoundMonitorDTO: type: "object" properties: monitorId: type: "string" format: "uuid" monitorType: type: "string" enum: - "apache" - "ping" - "http" - "net_response" - "ssl" - "cpu" - "disk" - "diskio" - "dns" - "mem" - "net" - "procstat" - "mysql" - "postgresql" - "redis" - "sqlserver" - "smtp" - "log" - "system" - "oracle_tablespace" - "oracle_dataguard" - "oracle_rman" - "packages" tenantId: type: "string" zoneName: type: "string" resourceId: type: "string" interval: $ref: "#/definitions/Duration" selectorScope: type: "string" enum: - "LOCAL" - "REMOTE" agentType: type: "string" enum: - "TELEGRAF" - "FILEBEAT" - "ORACLE" - "PACKAGES" renderedContent: type: "string" envoyId: type: "string" createdTimestamp: type: "string" updatedTimestamp: type: "string" BoundMonitorsRequest: type: "object" properties: envoyId: type: "string" installedAgentVersions: type: "object" additionalProperties: type: "string" CompletableFuture: type: "object" properties: completedExceptionally: type: "boolean" numberOfDependents: type: "integer" format: "int32" done: type: "boolean" cancelled: type: "boolean" CompletableFutureListZoneAssignmentCount: type: "object" properties: completedExceptionally: type: "boolean" numberOfDependents: type: "integer" format: "int32" done: type: "boolean" cancelled: type: "boolean" CompletableFutureRebalanceResult: type: "object" properties: completedExceptionally: type: "boolean" numberOfDependents: type: "integer" format: "int32" done: type: "boolean" cancelled: type: "boolean" Cpu: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: percpu: type: "boolean" totalcpu: type: "boolean" collectCpuTime: type: "boolean" reportActive: type: "boolean" Dataguard: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: databaseNames: type: "array" items: type: "string" filePath: type: "string" DetailedMonitorInput: type: "object" required: - "details" properties: name: type: "string" labelSelector: type: "object" additionalProperties: type: "string" labelSelectorMethod: type: "string" enum: - "AND" - "OR" resourceId: type: "string" excludedResourceIds: type: "array" uniqueItems: true items: type: "string" interval: $ref: "#/definitions/Duration" details: example: "\"details\":{ \"type\": \"local|remote\",\"plugin\":{ \"type\":\"\ cpu\", \"collectCpuTime\": false, \"percpu\": false,\"reportActive\": false,\ \ \"totalcpu\": true}}" description: "details" $ref: "#/definitions/MonitorDetails" DetailedMonitorOutput: type: "object" required: - "details" properties: id: type: "string" name: type: "string" labelSelector: type: "object" additionalProperties: type: "string" labelSelectorMethod: type: "string" enum: - "AND" - "OR" resourceId: type: "string" excludedResourceIds: type: "array" uniqueItems: true items: type: "string" interval: $ref: "#/definitions/Duration" details: example: "\"details\":{ \"type\": \"local|remote\", \"plugin\":{ \"type\"\ :\"cpu\", \"collectCpuTime\": false, \"percpu\": false, \"reportActive\"\ : false, \"totalcpu\": true} }" description: "details" $ref: "#/definitions/MonitorDetails" createdTimestamp: type: "string" updatedTimestamp: type: "string" summary: type: "object" additionalProperties: type: "string" Disk: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: mount: type: "string" DiskIo: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: device: type: "string" skipSerialNumber: type: "boolean" Dns: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" required: - "network" - "port" - "recordType" properties: dnsServer: type: "string" domain: type: "string" network: type: "string" enum: - "udp" - "tcp" recordType: type: "string" enum: - "A" - "AAAA" - "ANY" - "CNAME" - "MX" - "NS" - "PTR" - "TXT" - "SOA" - "SPF" - "SRV" port: type: "integer" format: "int32" timeout: $ref: "#/definitions/Duration" Duration: type: "object" properties: seconds: type: "integer" format: "int64" nano: type: "integer" format: "int32" units: type: "array" items: $ref: "#/definitions/TemporalUnit" zero: type: "boolean" negative: type: "boolean" HttpResponse: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" properties: url: type: "string" httpProxy: type: "string" timeout: $ref: "#/definitions/Duration" method: type: "string" pattern: "GET|PUT|POST|DELETE|HEAD|OPTIONS|PATCH|TRACE" followRedirects: type: "boolean" body: type: "string" responseStringMatch: type: "string" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" headers: type: "object" additionalProperties: type: "string" JsonPatch: type: "object" LocalMonitorDetails: allOf: - $ref: "#/definitions/MonitorDetails" - type: "object" required: - "plugin" properties: plugin: $ref: "#/definitions/LocalPlugin" LocalPlugin: type: "object" discriminator: "type" Mem: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" MonitorDTO: type: "object" properties: id: type: "string" format: "uuid" monitorName: type: "string" labelSelector: type: "object" additionalProperties: type: "string" labelSelectorMethod: type: "string" enum: - "AND" - "OR" tenantId: type: "string" content: type: "string" agentType: type: "string" enum: - "TELEGRAF" - "FILEBEAT" - "ORACLE" - "PACKAGES" selectorScope: type: "string" enum: - "LOCAL" - "REMOTE" zones: type: "array" items: type: "string" resourceId: type: "string" excludedResourceIds: type: "array" uniqueItems: true items: type: "string" createdTimestamp: type: "string" updatedTimestamp: type: "string" MonitorDetails: type: "object" discriminator: "type" Mysql: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: servers: type: "array" items: type: "string" perfEventsStatementsDigestTextLimit: type: "integer" format: "int32" perfEventsStatementsLimit: type: "integer" format: "int32" perfEventsStatementsTimeLimit: type: "integer" format: "int32" tableSchemaDatabases: type: "array" items: type: "string" gatherProcessList: type: "boolean" gatherUserStatistics: type: "boolean" gatherInfoSchemaAutoInc: type: "boolean" gatherInnodbMetrics: type: "boolean" gatherSlaveStatus: type: "boolean" gatherBinaryLogs: type: "boolean" gatherTableIoWaits: type: "boolean" gatherTableLockWaits: type: "boolean" gatherIndexIoWaits: type: "boolean" gatherEventWaits: type: "boolean" gatherTableSchema: type: "boolean" gatherFileEventsStats: type: "boolean" gatherPerfEventsStatements: type: "boolean" intervalSlow: $ref: "#/definitions/Duration" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" MysqlRemote: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" properties: servers: type: "array" items: type: "string" perfEventsStatementsDigestTextLimit: type: "integer" format: "int32" perfEventsStatementsLimit: type: "integer" format: "int32" perfEventsStatementsTimeLimit: type: "integer" format: "int32" tableSchemaDatabases: type: "array" items: type: "string" gatherProcessList: type: "boolean" gatherUserStatistics: type: "boolean" gatherInfoSchemaAutoInc: type: "boolean" gatherInnodbMetrics: type: "boolean" gatherSlaveStatus: type: "boolean" gatherBinaryLogs: type: "boolean" gatherTableIoWaits: type: "boolean" gatherTableLockWaits: type: "boolean" gatherIndexIoWaits: type: "boolean" gatherEventWaits: type: "boolean" gatherTableSchema: type: "boolean" gatherFileEventsStats: type: "boolean" gatherPerfEventsStatements: type: "boolean" intervalSlow: $ref: "#/definitions/Duration" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" Net: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: ignoreProtocolStats: type: "boolean" interface: type: "string" NetResponse: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" required: - "port" - "protocol" properties: protocol: type: "string" enum: - "udp" - "tcp" host: type: "string" port: type: "integer" format: "int32" minimum: 1 maximum: 65535 timeout: $ref: "#/definitions/Duration" readTimeout: $ref: "#/definitions/Duration" send: type: "string" expect: type: "string" Packages: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: includeRpm: type: "boolean" includeDebian: type: "boolean" failWhenNotSupported: type: "boolean" PagedContent: type: "object" properties: content: type: "array" items: type: "object" number: type: "integer" format: "int32" totalPages: type: "integer" format: "int32" totalElements: type: "integer" format: "int64" last: type: "boolean" first: type: "boolean" PagedContentBoundMonitorDTO: type: "object" properties: content: type: "array" items: $ref: "#/definitions/BoundMonitorDTO" number: type: "integer" format: "int32" totalPages: type: "integer" format: "int32" totalElements: type: "integer" format: "int64" last: type: "boolean" first: type: "boolean" PagedContentDetailedMonitorOutput: type: "object" properties: content: type: "array" items: $ref: "#/definitions/DetailedMonitorOutput" number: type: "integer" format: "int32" totalPages: type: "integer" format: "int32" totalElements: type: "integer" format: "int64" last: type: "boolean" first: type: "boolean" PagedContentMonitorDTO: type: "object" properties: content: type: "array" items: $ref: "#/definitions/MonitorDTO" number: type: "integer" format: "int32" totalPages: type: "integer" format: "int32" totalElements: type: "integer" format: "int64" last: type: "boolean" first: type: "boolean" PagedContentZoneDTO: type: "object" properties: content: type: "array" items: $ref: "#/definitions/ZoneDTO" number: type: "integer" format: "int32" totalPages: type: "integer" format: "int32" totalElements: type: "integer" format: "int64" last: type: "boolean" first: type: "boolean" Ping: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" properties: target: type: "string" count: type: "integer" format: "int32" pingInterval: $ref: "#/definitions/Duration" timeout: $ref: "#/definitions/Duration" deadline: $ref: "#/definitions/Duration" Postgresql: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: address: type: "string" pattern: "^(postgres://.+)|(([^ ]+=[^ ]+ )*([^ ]+=[^ ]+))$" outputaddress: type: "string" maxLifetime: $ref: "#/definitions/Duration" ignoredDatabases: type: "array" items: type: "string" databases: type: "array" items: type: "string" PostgresqlRemote: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" properties: address: type: "string" pattern: "^(postgres://.+)|(([^ ]+=[^ ]+ )*([^ ]+=[^ ]+))$" outputaddress: type: "string" maxLifetime: $ref: "#/definitions/Duration" ignoredDatabases: type: "array" items: type: "string" databases: type: "array" items: type: "string" Procstat: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: pidFile: type: "string" user: type: "string" exe: type: "string" pattern: type: "string" systemdUnit: type: "string" cgroup: type: "string" winService: type: "string" processName: type: "string" Redis: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" required: - "url" properties: url: type: "string" password: type: "string" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" RemoteMonitorDetails: allOf: - $ref: "#/definitions/MonitorDetails" - type: "object" required: - "plugin" properties: monitoringZones: type: "array" items: type: "string" plugin: $ref: "#/definitions/RemotePlugin" RemotePlugin: type: "object" discriminator: "type" Rman: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: exclusionCodes: type: "array" items: type: "string" databaseNames: type: "array" items: type: "string" filePath: type: "string" Smtp: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" required: - "port" properties: host: type: "string" port: type: "integer" format: "int32" minimum: 1 maximum: 65535 timeout: $ref: "#/definitions/Duration" readTimeout: $ref: "#/definitions/Duration" ehlo: type: "string" from: type: "string" to: type: "string" body: type: "string" starttls: type: "boolean" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" SqlServer: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: servers: type: "array" items: type: "string" azuredb: type: "boolean" queryExclusions: type: "array" items: type: "string" SqlServerRemote: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" properties: servers: type: "array" items: type: "string" azuredb: type: "boolean" queryExclusions: type: "array" items: type: "string" System: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" Tablespace: allOf: - $ref: "#/definitions/LocalPlugin" - type: "object" properties: databaseNames: type: "array" items: type: "string" filePath: type: "string" TemporalUnit: type: "object" properties: dateBased: type: "boolean" timeBased: type: "boolean" duration: $ref: "#/definitions/Duration" durationEstimated: type: "boolean" X509Cert: allOf: - $ref: "#/definitions/RemotePlugin" - type: "object" properties: target: type: "string" timeout: $ref: "#/definitions/Duration" tlsCa: type: "string" tlsCert: type: "string" tlsKey: type: "string" insecureSkipVerify: type: "boolean" ZoneCreatePrivate: type: "object" required: - "name" properties: name: type: "string" minLength: 1 pattern: "^[a-z0-9_]+$" provider: type: "string" providerRegion: type: "string" sourceIpAddresses: type: "array" items: type: "string" state: type: "string" enum: - "ACTIVE" - "INACTIVE" - "MAINTENANCE" pollerTimeout: type: "integer" format: "int64" minimum: 30 maximum: 1800 ZoneCreatePublic: type: "object" required: - "name" - "provider" - "providerRegion" properties: name: type: "string" minLength: 1 pattern: "^[a-z0-9_/]+$" provider: type: "string" minLength: 1 providerRegion: type: "string" minLength: 1 sourceIpAddresses: type: "array" items: type: "string" state: type: "string" enum: - "ACTIVE" - "INACTIVE" - "MAINTENANCE" pollerTimeout: type: "integer" format: "int64" minimum: 30 maximum: 1800 ZoneDTO: type: "object" properties: name: type: "string" pollerTimeout: type: "integer" format: "int64" provider: type: "string" providerRegion: type: "string" sourceIpAddresses: type: "array" items: type: "string" createdTimestamp: type: "string" updatedTimestamp: type: "string" state: type: "string" enum: - "ACTIVE" - "INACTIVE" - "MAINTENANCE" public: type: "boolean" ZoneUpdate: type: "object" properties: provider: type: "string" providerRegion: type: "string" sourceIpAddresses: type: "array" items: type: "string" state: type: "string" enum: - "ACTIVE" - "INACTIVE" - "MAINTENANCE" pollerTimeout: type: "integer" format: "int64" minimum: 30 maximum: 1800 TemporalUnit: type: "object" properties: dateBased: type: "boolean" timeBased: type: "boolean" duration: $ref: "#/definitions/Duration" durationEstimated: type: "boolean"