openapi: 3.2.0 info: title: Weidmueller Time API version: 1.5.0-next contact: name: Weidmüller license: name: MIT identifier: MIT description: 'Operations tagged time across 2 of this provider''s published API definitions: administration-openapi.yaml, weidmueller-administration-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: /u-os-adm/api/v1 tags: - name: Time description: API for time settings and time state of u-OS paths: /time/config: get: tags: - Time summary: Get time configuration description: 'Returns the current time configuration including NTP servers and timezone. If `method` is `NTP` and `ntp_servers` is empty, the default fallback servers will be used for NTP synchronization (`time1.google.com`, `time2.google.com`, `time3.google.com`, `time4.google.com`).' operationId: get_time_config responses: '200': description: Current time configuration content: application/json: schema: $ref: '#/components/schemas/TimeConfig' default: description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info. content: application/problem+json: schema: $ref: '#/components/schemas/HttpErrorPayload' security: - OAuth2: - u-os-adm.time.readonly - OAuth2: - u-os-adm.time.readwrite put: tags: - Time summary: Replace time configuration description: 'Changes take effect immediately: - The timezone is applied system-wide. - When `method` is `MANUAL`, the system clock is set immediately to the given `date_time`. - When `method` is `NTP`, and if `ntp_servers` is empty, the default fallback servers will be used for NTP synchronization (`time1.google.com`, `time2.google.com`, `time3.google.com`, `time4.google.com`). Available timezones can be queried via `GET /time/timezones`.' operationId: set_time_config requestBody: content: application/json: schema: $ref: '#/components/schemas/TimeConfig' required: true responses: '200': description: Time configuration replaced successfully content: application/json: schema: $ref: '#/components/schemas/TimeConfig' default: description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info. content: application/problem+json: schema: $ref: '#/components/schemas/HttpErrorPayload' security: - OAuth2: - u-os-adm.time.readwrite servers: - url: /u-os-adm/api/v1 /time/state: get: tags: - Time summary: Get current time state description: Returns the current time state of the system, including the current date and time. operationId: get_time_state responses: '200': description: Current time state content: application/json: schema: $ref: '#/components/schemas/TimeStateResponse' default: description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info. content: application/problem+json: schema: $ref: '#/components/schemas/HttpErrorPayload' security: - OAuth2: - u-os-adm.time.readonly - OAuth2: - u-os-adm.time.readwrite servers: - url: /u-os-adm/api/v1 /time/timezones: get: tags: - Time summary: List available timezones description: Returns all supported IANA timezones with base and currently active seasonal offsets. operationId: list_timezones responses: '200': description: List of supported timezones content: application/json: schema: $ref: '#/components/schemas/ListTimezonesResponse' default: description: Common HTTP Error codes may be thrown by this method, such as 400, 401, 403, 404, 412, 422 or 500. See body for detailed error info. content: application/problem+json: schema: $ref: '#/components/schemas/HttpErrorPayload' security: - OAuth2: - u-os-adm.time.readonly - OAuth2: - u-os-adm.time.readwrite servers: - url: /u-os-adm/api/v1 components: schemas: NtpRuntimeState: type: object required: - ntp_synchronized - link_ntp_servers - current_server properties: current_server: type: string description: 'The NTP server currently used for time synchronisation. The NTP servers are used in the following order if a server is unavailable: `link_servers` (DHCP) > configured servers > fallback server. If no server is currently being used for synchronisation, this entry is empty.' link_ntp_servers: type: array items: type: string description: 'NTP servers provided by network link configuration (DHCP). These are runtime-discovered servers and are independent from `ntp_servers` in `/time/config`.' ntp_synchronized: type: boolean description: Whether the system clock is currently synchronized via NTP. NtpSettings: type: object description: NTP-specific settings used when `method` is `NTP`. required: - method - ntp_servers properties: method: type: string enum: - NTP ntp_servers: type: array items: type: string description: 'Statically configured NTP server hostnames or IP addresses. This list can be empty when no static servers are configured. In that case default fallback servers will be used: `time1.google.com`, `time2.google.com`, `time3.google.com`, `time4.google.com`.' example: - pool.ntp.org - time.google.com ManualTimeSettings: type: object description: Manual time settings used when `method` is `MANUAL`. required: - method - date_time properties: date_time: type: string format: date-time description: RFC 3339 datetime string in UTC, e.g. `"2026-01-15T12:00:00Z"`. example: 2026-01-15 12:00:00+00:00 method: type: string enum: - MANUAL HttpErrorPayload: type: object description: 'Common error payload structure for HTTP responses. Based on [RFC 9457](https://datatracker.ietf.org/doc/html/rfc9457)' required: - type - title - status properties: detail: type: - string - 'null' description: Optional details about the error example: 'Low Level OS Error #1234' instance: type: - string - 'null' format: uri-reference description: A human-readable explanation specific to this occurrence of the problem example: null status: type: integer format: int32 description: The HTTP status code generated by the origin server for this occurrence of the problem example: 500 maximum: 599 minimum: 100 title: type: string description: Human-readable error message. example: Something went wrong in the backend. type: type: string format: uri-reference description: 'A URI reference that identifies the problem type The last part of the URI is always a `ErrorId`' example: /u-os-adm/api/v1/errors/set-security-settings TimeConfig: type: object description: Time configuration for `GET /time/config` and `PUT /time/config`. required: - timezone - source properties: source: $ref: '#/components/schemas/TimeConfigSource' timezone: type: string description: 'IANA timezone name to apply to the system, e.g. `"Europe/Berlin"`. DST transitions are handled automatically based on the IANA rules for the given timezone. The full list of accepted values is available via `GET /time/timezones`. This timezone controls local time representation (including DST) used by the system and API responses.' example: Europe/Berlin TimeStateResponse: type: object required: - local_time properties: local_time: type: string format: date-time description: Current local time in the configured timezone, RFC 3339 formatted with UTC offset. example: 2026-01-15 12:00:00+02:00 ntp: oneOf: - type: 'null' - $ref: '#/components/schemas/NtpRuntimeState' description: Runtime NTP status details (present only when NTP is configured). example: local_time: 2026-01-15 12:00:00+02:00 ntp: current_server: time1.google.com link_ntp_servers: - time1.google.com - time2.google.com ntp_synchronized: true ListTimezonesResponse: type: object required: - items properties: items: type: array items: $ref: '#/components/schemas/TimezoneItem' TimezoneItem: type: object description: A single timezone entry with base and currently active seasonal offsets. required: - name - base_offset - actual_offset properties: actual_offset: type: integer format: int32 description: 'Currently applicable UTC offset in minutes for this timezone. This is the offset that is used now and can differ from `base_offset` due to seasonal timezone rules.' example: 60 base_offset: type: integer format: int32 description: 'Standard UTC offset in minutes (without DST), e.g. `60` for UTC+01:00 or `-300` for UTC-05:00. This is the fixed base offset defined by the timezone rules. The currently used offset is returned in `actual_offset`.' example: 60 name: type: string description: IANA timezone name, e.g. `"Europe/Berlin"`. example: Europe/Berlin TimeConfigSource: oneOf: - $ref: '#/components/schemas/NtpSettings' - $ref: '#/components/schemas/ManualTimeSettings' description: Discriminates between NTP and manual time synchronization methods. examples: - method: NTP ntp_servers: - pool.ntp.org - time.google.com discriminator: propertyName: method mapping: MANUAL: '#/components/schemas/ManualTimeSettings' NTP: '#/components/schemas/NtpSettings' securitySchemes: OAuth2: type: oauth2 flows: clientCredentials: tokenUrl: /oauth2/token scopes: u-os-adm.firewall.readonly: Read access for firewall endpoints u-os-adm.firewall.readwrite: Read and write access for firewall endpoints u-os-adm.logging.readonly: Read access for logging endpoints u-os-adm.network.readonly: Read access for network endpoints u-os-adm.network.readwrite: Read and write access for network endpoints u-os-adm.realtime.readonly: Read access for realtime endpoints u-os-adm.realtime.readwrite: Read and write access for realtime endpoints u-os-adm.recovery.readwrite: Read and write access for recovery endpoints u-os-adm.security.readonly: Read access for security endpoints u-os-adm.security.readwrite: Read and write access for security endpoints u-os-adm.serial-interfaces.readonly: Read access for serial interface configuration endpoints u-os-adm.serial-interfaces.readwrite: Read and write access for serial interface configuration endpoints u-os-adm.syslog.readonly: Read access for syslog endpoints u-os-adm.syslog.readwrite: Read and write access for syslog endpoints u-os-adm.system.readonly: Read access for system endpoints u-os-adm.system.readwrite: Read and write access for system endpoints u-os-adm.time.readonly: Read access for time settings endpoints u-os-adm.time.readwrite: Read and write access for time settings endpoints u-os-adm.update.readonly: Read access for update endpoints u-os-adm.update.readwrite: Read and write access for update endpoints description: The HTTP API uses the OAuth2 client credentials flow. x-refined-from: - administration-openapi.yaml - weidmueller-administration-openapi.yml