openapi: 3.1.0 info: title: OpenBMC Redfish API description: >- OpenBMC exposes a Redfish-conformant REST API over HTTPS for managing server baseboard management controllers (BMCs). The API provides programmatic access to chassis, manager, system, power, log, event, and update services. Authentication is performed via a session token returned from the SessionService and supplied in the X-Auth-Token header on subsequent requests. This OpenAPI definition reflects the endpoints documented in the OpenBMC Redfish cheatsheet. version: "1.0.0" contact: name: OpenBMC Documentation url: https://github.com/openbmc/docs servers: - url: https://{bmc}/redfish/v1 description: OpenBMC Redfish service root on a BMC host variables: bmc: default: bmc.example.com description: Hostname or IP address of the OpenBMC-managed BMC security: - SessionToken: [] paths: /: get: summary: Get Redfish service root description: Returns the Redfish service root document describing top-level collections and capabilities. operationId: getServiceRoot security: [] responses: "200": description: Service root document content: application/json: schema: type: object /SessionService/Sessions: post: summary: Create a Redfish session description: Authenticates a user and creates a session. The X-Auth-Token response header value must be sent on subsequent requests. operationId: createSession security: [] requestBody: required: true content: application/json: schema: type: object required: - UserName - Password properties: UserName: type: string Password: type: string responses: "201": description: Session created headers: X-Auth-Token: schema: type: string description: Session authentication token content: application/json: schema: type: object /Chassis: get: summary: List chassis objects operationId: listChassis responses: "200": description: Chassis collection content: application/json: schema: type: object /Managers: get: summary: List manager objects operationId: listManagers responses: "200": description: Managers collection content: application/json: schema: type: object /Systems: get: summary: List system objects operationId: listSystems responses: "200": description: Systems collection content: application/json: schema: type: object /Systems/system/Actions/ComputerSystem.Reset: post: summary: Reset host computer system description: Controls host power by issuing a ComputerSystem.Reset action. operationId: resetComputerSystem requestBody: required: true content: application/json: schema: type: object properties: ResetType: type: string description: Reset action type (e.g. On, ForceOff, GracefulShutdown, GracefulRestart) responses: "200": description: Action accepted "204": description: Action accepted with no body /Managers/bmc/Actions/Manager.Reset: post: summary: Reboot the BMC operationId: resetBmc requestBody: required: false content: application/json: schema: type: object properties: ResetType: type: string responses: "200": description: Action accepted "204": description: Action accepted with no body /Managers/bmc/Actions/Manager.ResetToDefaults: post: summary: Factory reset the BMC operationId: resetBmcToDefaults requestBody: required: false content: application/json: schema: type: object responses: "200": description: Action accepted "204": description: Action accepted with no body /Systems/system/LogServices/EventLog/Entries: get: summary: Get system event log entries operationId: getEventLogEntries responses: "200": description: Event log entries collection content: application/json: schema: type: object /UpdateService: get: summary: Get firmware update service operationId: getUpdateService responses: "200": description: Update service resource content: application/json: schema: type: object /AccountService/Accounts/root: patch: summary: Update the root account description: Modifies the root account, for example to change the password. operationId: patchRootAccount requestBody: required: true content: application/json: schema: type: object properties: Password: type: string responses: "200": description: Account updated /EventService/Subscriptions: get: summary: List event subscriptions operationId: listEventSubscriptions responses: "200": description: Event subscriptions collection content: application/json: schema: type: object post: summary: Create an event subscription operationId: createEventSubscription requestBody: required: true content: application/json: schema: type: object properties: Destination: type: string EventTypes: type: array items: type: string Context: type: string Protocol: type: string responses: "201": description: Subscription created components: securitySchemes: SessionToken: type: apiKey in: header name: X-Auth-Token description: Redfish session token obtained from POST /SessionService/Sessions