> openapi-lint
> npx --yes @redocly/cli lint ./api/openapi.yml

validating ./api/openapi.yml...
[1] api/openapi.yml:2:1 at #/openapi

Servers must be present.

1 | # yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json
2 | openapi: 3.1.0
3 | info:
4 |   title: CrossLab Forwarding Service REST API (internal)

Warning was generated by the no-empty-servers rule.


[2] api/openapi.yml:3:1 at #/info

Info object should contain `license` field.

1 | # yaml-language-server: $schema=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/main/schemas/v3.1/schema.json
2 | openapi: 3.1.0
3 | info:
4 |   title: CrossLab Forwarding Service REST API (internal)
5 |   description: |-

Warning was generated by the info-license rule.


[3] api/resources/rooms.yml:2:1 at #/get

Every operation should have security defined on it or on the root level.

1 | # yaml-language-server: $schema=https://cross-lab-project.github.io/crosslab/meta-schemas/openapi-resource.json
2 | get:
3 |   operationId: list_rooms
4 |   summary: List rooms

Warning was generated by the security-defined rule.


[4] api/resources/rooms.yml:23:1 at #/post

Every operation should have security defined on it or on the root level.

21 |     500:
22 |       description: Server Error.
23 | post:
24 |   operationId: create_room
25 |   summary: Create a new room

Warning was generated by the security-defined rule.


[5] api/resources/room.yml:2:1 at #/get

Every operation should have security defined on it or on the root level.

1 | # yaml-language-server: $schema=https://cross-lab-project.github.io/crosslab/meta-schemas/openapi-resource.json
2 | get:
3 |   operationId: get_room
4 |   summary: View a registered room

Warning was generated by the security-defined rule.


[6] api/resources/room.yml:54:1 at #/delete

Every operation should have security defined on it or on the root level.

52 |     500:
53 |       description: Server Error.
54 | delete:
55 |   operationId: delete_room
56 |   summary: Delete a registered room

Warning was generated by the security-defined rule.


[7] api/resources/room.yml:25:1 at #/patch

Every operation should have security defined on it or on the root level.

23 |     500:
24 |       description: Server Error.
25 | patch:
26 |   operationId: update_room
27 |   summary: Update an existing room

Warning was generated by the security-defined rule.


./api/openapi.yml: validated in 35ms

Woohoo! Your API description is valid. 🎉
You have 7 warnings.