This folder contains a rendered OpenAPI file for each group/version. The “real” OpenAPI is generated by the running server, but the files here are used to build static frontend clients.

## Generating RTK API Clients

The RTK API clients are generated from processed OpenAPI files using the `packages/grafana-openapi/src/scripts/process-specs.ts` script. The source files are in `pkg/tests/apis/openapi_snapshots`, and the processed files are stored in the `packages/grafana-openapi/src/apis` directory. Spec processing happens as part of `yarn generate-apis` task, but can also be triggered separately (see below).

To generate or update the RTK API clients:

1. _If generating or updating an RTK client for the first time_, update `scripts/generate-rtk-apis.js` so `schemaFile` points to the processed spec files, for example:
   ```typescript
   '../public/app/features/dashboards/api/endpoints.gen.ts': {
     schemaFile: 'packages/grafana-openapi/src/apis/dashboard.grafana.app-v0alpha1.json',
   },
   ```

2. Generate or update the OpenAPI spec files by running:
   ```bash
   go test pkg/tests/apis/openapi_test.go
   ```
   _If generating an RTK client for a new API_, also add a new group/version of the API to the `groups` slice. If the API is behind a feature toggle, add the toggle to `EnableFeatureToggles` in `pkg/tests/apis/openapi_test.go`.


3. Run:
   ```bash
   yarn generate-apis
   ```
   This command generates (or updates) the spec files in the `packages/grafana-openapi/src/apis` directory and generates the RTK API clients.

If you want to process the OpenAPI files without generating the RTK API clients (for example, if you have a separate `generate-rtk-apis` file), run:
```bash
yarn workspace @grafana/openapi process-specs
```
