openapi: 3.2.0 info: title: Weidmueller Serial Interfaces API version: 1.5.0-next contact: name: Weidmüller license: name: MIT identifier: MIT description: 'Operations tagged serial-interfaces 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: serial-interfaces description: API for u-OS serial interface settings paths: /serial-interfaces/config: get: tags: - serial-interfaces summary: Read the serial interface configuration for the system description: 'For systems that support u-extend modules, the config may also contain interfaces that are currently not present on the system. This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).' operationId: get_serial_interface_config responses: '200': description: Configuration read successfully. content: application/json: schema: $ref: '#/components/schemas/SerialInterfacesConfig' 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.serial-interfaces.readonly - OAuth2: - u-os-adm.serial-interfaces.readwrite put: tags: - serial-interfaces summary: Set the serial interface configuration for the system description: 'You must always at least include all interfaces that are currently present on the system in the request payload. For systems that support u-extend modules, the config may also contain interfaces that are currently not present on the system. This allows to configure interfaces before they get connected. This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).' operationId: set_serial_interface_config requestBody: description: Configuration to update content: application/json: schema: $ref: '#/components/schemas/SerialInterfacesConfig' required: true responses: '200': description: Configuration updated successfully. content: application/json: schema: $ref: '#/components/schemas/SerialInterfacesConfig' 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.serial-interfaces.readwrite patch: tags: - serial-interfaces summary: Update the serial interface configuration for the system description: 'For systems that support u-extend modules, the config may also contain interfaces that are currently not present on the system. This allows to configure interfaces before they get connected. This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).' operationId: update_serial_interface_config requestBody: description: Configuration to update content: application/json: schema: $ref: '#/components/schemas/PartialSerialInterfacesConfig' required: true responses: '200': description: Configuration updated successfully. content: application/json: schema: $ref: '#/components/schemas/SerialInterfacesConfig' 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.serial-interfaces.readwrite servers: - url: /u-os-adm/api/v1 /serial-interfaces/state: get: tags: - serial-interfaces summary: Get the current state of the serial interfaces on the system description: 'The state only includes interfaces that are currently present on the system and contains their current, active state. This endpoint is only available on platforms with configurable serial interfaces (e.g. R-Series or M-Series).' operationId: get_serial_interface_state responses: '200': description: State read successfully. content: application/json: schema: $ref: '#/components/schemas/SerialInterfacesState' 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.serial-interfaces.readonly - OAuth2: - u-os-adm.serial-interfaces.readwrite servers: - url: /u-os-adm/api/v1 components: schemas: RsInterfaceConfig: oneOf: - $ref: '#/components/schemas/Rs232Config' - $ref: '#/components/schemas/Rs485Config' description: 'Current operation mode of a RS interface (RS-232 or RS-485). The `mode` field is the discriminator selecting the variant. For RS-485 interfaces, this also includes whether the termination resistor is enabled or disabled. Please note that some interfaces may only support RS-232 or RS-485 mode. For example, tty-x3 on R-Series only supports RS-485 mode.' examples: - enable_termination_resistor: true mode: RS485 discriminator: propertyName: mode mapping: RS232: '#/components/schemas/Rs232Config' RS485: '#/components/schemas/Rs485Config' RsInterfaceState: type: object required: - name - device_path - supported_modes - state properties: device_path: type: string description: The device path in /dev that belong to the RS interface. This is the path that should be used to open the interface for reading/writing. example: /dev/tty-x3 name: type: string description: Name of the RS interface. Used for configuration. example: tty-x3 state: $ref: '#/components/schemas/RsInterfaceConfig' description: Current configuration of the RS interface (RS-232 or RS-485) supported_modes: type: array items: $ref: '#/components/schemas/AllowedRsMode' description: 'Returns the supported operation modes for this interface. Some interfaces may only support RS-232 or RS-485 mode. For example, tty-x3 on R-Series only supports RS-485 mode.' example: - RS232 - RS485 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 CanInterfaceState: type: object required: - name - alt_names - termination_resistance_ohm properties: alt_names: type: array items: type: string description: List of alternate names for the CAN interface, if any example: - can0 name: type: string description: Primary name of the CAN interface example: can-fm0-em0 termination_resistance_ohm: type: integer format: int32 description: 'Current termination resistor value for the CAN interface, in Ohms. A value of 0 indicates that the termination resistor is disabled. Reports the terminator controlled by the local interface, not the effective resistance of the entire bus.' example: 120 minimum: 0 PartialSerialInterfacesConfig: type: object description: Configuration settings for all serial interfaces (CAN, RS-232, RS-485) on the system. (PATCH) properties: can_interfaces: type: object description: 'Configuration settings for all CAN interfaces on the system, keyed by interface name. Keys may contain interfaces that are currently not present on the system. For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected. You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules.' additionalProperties: true example: can-fm0-em0: enable_termination_resistor: true rs_interfaces: type: object description: 'Configuration settings for all RS interfaces (RS-232, RS-485) on the system, keyed by u-OS interface name. Keys may contain interfaces that are currently not present on the system. For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected. You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules. Note that the u-OS interface name is not the same as the device path in `/dev`. The u-OS interface name is used to configure the interface, while the device path is used to open the interface for reading/writing. You can obtain the device path from the state endpoint.' additionalProperties: true example: tty-fm0-em1: enable_termination_resistor: false mode: RS485 tty-fm1-em1: null Rs232Config: type: object description: RS-232 mode configuration. required: - mode properties: mode: type: string enum: - RS232 SerialInterfacesConfig: type: object description: Configuration settings for all serial interfaces (CAN, RS-232, RS-485) on the system. required: - can_interfaces - rs_interfaces properties: can_interfaces: type: object description: 'Configuration settings for all CAN interfaces on the system, keyed by interface name. Keys may contain interfaces that are currently not present on the system. For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected. You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules.' additionalProperties: $ref: '#/components/schemas/CanInterfaceConfig' propertyNames: type: string example: can-fm0-em0: enable_termination_resistor: true can-fm0-em1: enable_termination_resistor: false rs_interfaces: type: object description: 'Configuration settings for all RS interfaces (RS-232, RS-485) on the system, keyed by u-OS interface name. Keys may contain interfaces that are currently not present on the system. For each existing interface, a configuration must be provided. If an interface is missing, the request will be rejected. You may delete configuration of interfaces which are no longer present, e.g. for u-extend modules. Note that the u-OS interface name is not the same as the device path in `/dev`. The u-OS interface name is used to configure the interface, while the device path is used to open the interface for reading/writing. You can obtain the device path from the state endpoint.' additionalProperties: $ref: '#/components/schemas/RsInterfaceConfig' propertyNames: type: string example: tty-fm0-em1: mode: RS232 tty-x3: enable_termination_resistor: true mode: RS485 SerialInterfacesState: type: object description: 'Current state of all serial interfaces (CAN, RS-232, RS-485) on the system. Unlike the configuration struct, this only contains interfaces that are currently present on the system.' required: - allow_add_can_interfaces - allow_add_rs_interfaces - can_interfaces - rs_interfaces properties: allow_add_can_interfaces: type: boolean description: 'If set to true, the system allows adding new CAN interfaces. This is the case for systems which allow expansion (e.g. u-extend) with new interfaces.' allow_add_rs_interfaces: type: boolean description: 'If set to true, the system allows adding new RS interfaces. This is the case for systems which allow expansion (e.g. u-extend) with new interfaces.' can_interfaces: type: array items: $ref: '#/components/schemas/CanInterfaceState' description: Current state of all CAN interfaces on the system. rs_interfaces: type: array items: $ref: '#/components/schemas/RsInterfaceState' description: Current state of all RS interfaces (RS-232, RS-485) on the system. CanInterfaceConfig: type: object required: - enable_termination_resistor properties: enable_termination_resistor: type: boolean description: If set to true, a termination resistor will be enabled on the CAN interface. If set to false, the termination resistor will be disabled. AllowedRsMode: type: string description: 'Represents the allowed operation modes for a RS interface. This determines which config variants are allowed for the interface. For example, some interfaces may only support RS-232 or RS-485 mode. For example, tty-x3 on R-Series only supports RS-485 mode.' enum: - RS232 - RS485 Rs485Config: type: object description: RS-485 mode configuration. required: - mode - enable_termination_resistor properties: enable_termination_resistor: type: boolean description: If set to true, a termination resistor will be enabled on the RS-485 interface. If set to false, the termination resistor will be disabled. mode: type: string enum: - RS485 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