AMETEK · OpenAPI Overlay 1.0.0

API Evangelist enhancements — AMETEK Powervar iSite PRO REST API

11 actions update extends openapi/ametek-powervar-isite-pro-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for AMETEK's API. It is a proposal applied on top of the contract, not a document AMETEK publishes.
View Overlay File View on GitHub Overlay Specification

Targets 11

$.info
$.servers
$.tags
$.paths['/UpsStatus'].get
$.paths['/UpsAlarms'].get
$.paths['/whoAreYou'].get
$.components.securitySchemes
$.components.schemas.UpsStatus
$.components.schemas.AlarmName
$.components.schemas.Alarm.properties.Severity
$.components.schemas.WhoAreYou

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements — AMETEK Powervar iSite PRO REST API
  version: 1.0.0
x-generated: '2026-09-02'
x-method: generated
x-source: openapi/ametek-powervar-isite-pro-openapi.yml
x-note: >-
  Records what API Evangelist added on top of AMETEK Powervar's published REST API definition
  (A55-00202 REV B). The definition is a PDF, not a spec — it names paths, methods, auth, and one
  worked example body per operation. Everything listed below is structure this pipeline supplied
  so the contract could exist as OpenAPI at all; none of it is a claim by AMETEK Powervar.
extends: openapi/ametek-powervar-isite-pro-openapi.yml
actions:
  - target: $.info
    description: >-
      Added a summary and a description quoting the definition's own feature list, plus contact and
      x-source-pdf pointing at the source document. AMETEK Powervar publishes no info block.
  - target: $.servers
    description: >-
      Added a templated server http://{device_host}:{port}/api/v1. AMETEK Powervar publishes no
      base URL — the definition's worked examples show a Host header pointing at a specific
      adapter on port 8080. The template says what is true: the host is the customer's own device,
      found by mDNS, and it must be supplied per deployment.
  - target: $.tags
    description: >-
      Added three tags — UPS Monitoring, Alarms, Device Identity — grouping the three operations.
      The definition has no tag vocabulary.
  - target: $.paths['/UpsStatus'].get
    description: >-
      Added operationId getUpsStatus, a summary and a description. The definition names the request
      "UpsStatus" but publishes no operationId.
  - target: $.paths['/UpsAlarms'].get
    description: >-
      Added operationId getUpsAlarms plus a description of the severity scale, which the definition
      states only implicitly through its alarm table.
  - target: $.paths['/whoAreYou'].get
    description: >-
      Added operationId getWhoAreYou, and recorded in the description the case discrepancy in the
      source document itself — the URL field reads /api/v1/whoAreYou while the worked example
      request line reads /api/v1/WhoAreYou.
  - target: $.components.securitySchemes
    description: >-
      Formalised the two published auth mechanisms as schemes — basicAuth (http/basic) and
      sessionToken (apiKey in the x-auth-token header). The definition states both in prose.
  - target: $.components.schemas.UpsStatus
    description: >-
      Typed the 23 fields of the published example response body and wrote a description per field.
      The definition publishes the example body only, with no schema and no field documentation.
      Also recorded the date-format inconsistency present in AMETEK Powervar's own example:
      ManufactureDate is YYYY-MM-DD while BatteryReplaceDate in the same body is MM/DD/YYYY.
  - target: $.components.schemas.AlarmName
    description: >-
      Turned the definition's "all possible alarms" table into a 38-value string enum, preserving
      every published name.
  - target: $.components.schemas.Alarm.properties.Severity
    description: >-
      Constrained Severity to enum [1,2,3] and documented the meaning of each level, read off the
      published alarm table where every name carries a fixed severity.
  - target: $.components.schemas.WhoAreYou
    description: >-
      Typed the identity response and split its nested structures into named EthInterface and
      HttpdState schemas so they are referenceable.