From 83bb086e2bd11802be5f77f174a819129eb58c27 Mon Sep 17 00:00:00 2001 From: Josh Carp Date: Mon, 12 Jan 2026 13:57:33 -0500 Subject: [PATCH 1/3] Add initial agents/claude tooling. Add AGENTS.md, along with a CLAUDE.md that symlinks to the former, and a `fetch-spec` claude skill. --- .claude/commands/fetch-spec.md | 42 ++++++++++++++++++++++++++ AGENTS.md | 54 ++++++++++++++++++++++++++++++++++ CLAUDE.md | 1 + 3 files changed, 97 insertions(+) create mode 100644 .claude/commands/fetch-spec.md create mode 100644 AGENTS.md create mode 120000 CLAUDE.md diff --git a/.claude/commands/fetch-spec.md b/.claude/commands/fetch-spec.md new file mode 100644 index 0000000..356dc10 --- /dev/null +++ b/.claude/commands/fetch-spec.md @@ -0,0 +1,42 @@ +# Fetch OpenAPI Specification + +Fetch the upstream Oxide API OpenAPI specification from the Omicron repository. + +## Instructions + +Always fetch fresh to ensure the spec matches the current `VERSION_OMICRON`. + +1. Read the `VERSION_OMICRON` file to get the Omicron commit hash + +2. Use WebFetch to get the symlink target: + - URL: `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/nexus-latest.json` + - The response body contains the versioned filename (e.g., `nexus-2025120300.0.0.json`) + +3. Download the actual OpenAPI spec to a temp file using curl: + ```bash + curl -sL "https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/{versioned-filename}" -o /tmp/oxide-openapi-spec.json + ``` + +4. Report what you found: + - The Omicron commit version + - The versioned spec filename + - Confirm the spec was saved to `/tmp/oxide-openapi-spec.json` + - The API version from the spec's `info.version` field + - A brief summary: count of paths (endpoints) and count of components/schemas + +5. The spec is now available at `/tmp/oxide-openapi-spec.json` for further analysis + +## Optional Arguments + +If the user provides arguments like: +- `--endpoint ` or `endpoint `: Search for and display details about a specific endpoint +- `--schema ` or `schema ` or `type `: Search for and display a specific schema/type definition +- `--search `: Search endpoints and schemas for the given term + +Use `jq` or read the temp file to fulfill these queries. + +## Notes + +- The spec is large (~2MB JSON), so summarize rather than output the entire thing +- If fetching fails, suggest checking if VERSION_OMICRON contains a valid commit hash +- Reference `internal/generate/main.go:getOpenAPISpecURL` for the canonical implementation diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..dd94717 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,54 @@ +# AGENTS.md + +This file provides context for AI coding assistants working on this codebase. + +## Project Overview + +**oxide.go** is the official Go SDK for administrating an Oxide rack. It's an OpenAPI-generated client library providing programmatic access to the Oxide infrastructure management API. + +## Build and Test Commands + +```bash +make all # Run fmt, lint, test, staticcheck, vet +make test # Run tests +make lint # Run golangci-lint +make generate # Regenerate SDK from OpenAPI spec +``` + +Note: prefer to run make targets like `make generate` over one-off `go generate` or `go run` commands. The make targets include additional steps and context that are needed for correct behavior. + +Note: unless otherwise specified, we should update generated code and run unit tests before considering a change complete. + +## Key Patterns + +### Code Generation + +The SDK is generated from the Oxide API's OpenAPI specification: + +- Source spec version tracked in `VERSION_OMICRON` +- Generator in `internal/generate/` +- Templates in `internal/generate/templates/` +- **Do not manually edit** `types.go`, `paths.go`, `responses.go`, or `version.go` + +### Finding the OpenAPI Specification + +To fetch the upstream OpenAPI spec manually: + +1. Read `VERSION_OMICRON` to get the Omicron commit hash (e.g., `06c0808`) +2. Fetch `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/nexus-latest.json` +3. This file is a symlink - the response body contains the versioned filename (e.g., `nexus-2025120300.0.0.json`) +4. Fetch the actual spec at `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/{versioned-filename}` + +See `getOpenAPISpecURL` in `internal/generate/main.go` for the full implementation. + +For local testing, set `OPENAPI_SPEC_PATH` environment variable to use a local spec file instead. + +**Claude skill:** Use `/fetch-spec` to automatically fetch the spec and save it to `/tmp/oxide-openapi-spec.json`. Supports arguments like `/fetch-spec endpoint disk` or `/fetch-spec schema Instance`. + +## Code Style + +- Mozilla Public License headers on all files +- Run `make fmt` before committing +- Run `make lint` to check for issues +- Unexported functions/constants by default +- Clear godoc comments on public APIs diff --git a/CLAUDE.md b/CLAUDE.md new file mode 120000 index 0000000..47dc3e3 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1 @@ +AGENTS.md \ No newline at end of file From 30331a1aed1c0c6f72520858fe9dd41a59e3ad26 Mon Sep 17 00:00:00 2001 From: Josh Carp Date: Mon, 12 Jan 2026 14:56:15 -0500 Subject: [PATCH 2/3] Auto-format markdown. --- .claude/commands/fetch-spec.md | 42 -- .claude/skills/fetch-spec/SKILL.md | 61 +++ .github/ISSUE_TEMPLATE/release_checklist.md | 21 +- .prettierrc | 4 + AGENTS.md | 24 +- CHANGELOG.md | 529 +++++++++++++------- CONTRIBUTING.md | 24 +- Makefile | 5 + README.md | 14 +- 9 files changed, 471 insertions(+), 253 deletions(-) delete mode 100644 .claude/commands/fetch-spec.md create mode 100644 .claude/skills/fetch-spec/SKILL.md create mode 100644 .prettierrc diff --git a/.claude/commands/fetch-spec.md b/.claude/commands/fetch-spec.md deleted file mode 100644 index 356dc10..0000000 --- a/.claude/commands/fetch-spec.md +++ /dev/null @@ -1,42 +0,0 @@ -# Fetch OpenAPI Specification - -Fetch the upstream Oxide API OpenAPI specification from the Omicron repository. - -## Instructions - -Always fetch fresh to ensure the spec matches the current `VERSION_OMICRON`. - -1. Read the `VERSION_OMICRON` file to get the Omicron commit hash - -2. Use WebFetch to get the symlink target: - - URL: `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/nexus-latest.json` - - The response body contains the versioned filename (e.g., `nexus-2025120300.0.0.json`) - -3. Download the actual OpenAPI spec to a temp file using curl: - ```bash - curl -sL "https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/{versioned-filename}" -o /tmp/oxide-openapi-spec.json - ``` - -4. Report what you found: - - The Omicron commit version - - The versioned spec filename - - Confirm the spec was saved to `/tmp/oxide-openapi-spec.json` - - The API version from the spec's `info.version` field - - A brief summary: count of paths (endpoints) and count of components/schemas - -5. The spec is now available at `/tmp/oxide-openapi-spec.json` for further analysis - -## Optional Arguments - -If the user provides arguments like: -- `--endpoint ` or `endpoint `: Search for and display details about a specific endpoint -- `--schema ` or `schema ` or `type `: Search for and display a specific schema/type definition -- `--search `: Search endpoints and schemas for the given term - -Use `jq` or read the temp file to fulfill these queries. - -## Notes - -- The spec is large (~2MB JSON), so summarize rather than output the entire thing -- If fetching fails, suggest checking if VERSION_OMICRON contains a valid commit hash -- Reference `internal/generate/main.go:getOpenAPISpecURL` for the canonical implementation diff --git a/.claude/skills/fetch-spec/SKILL.md b/.claude/skills/fetch-spec/SKILL.md new file mode 100644 index 0000000..8e0bb18 --- /dev/null +++ b/.claude/skills/fetch-spec/SKILL.md @@ -0,0 +1,61 @@ +# Fetch OpenAPI Specification + +## Description + +Use this skill when you need to look up details about the Oxide API, including: +- Finding endpoint definitions, paths, or HTTP methods +- Looking up schema/type definitions from the API spec +- Understanding request/response formats for API operations +- Investigating API changes or additions +- Comparing generated code against the source OpenAPI spec + +## Instructions + +1. Read the `VERSION_OMICRON` file to get the Omicron commit hash + +2. Check if a cached spec exists for this version: + + ```bash + test -f /tmp/oxide-openapi-spec-{commit}.json && echo "cached" + ``` + + If the file exists, skip to step 5 - the spec is already cached. Report that the cached spec is + being used. + +3. Use curl to get the symlink target (the versioned filename): + + ```bash + curl -sL "https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/nexus-latest.json" + ``` + + The response body contains the versioned filename (e.g., `nexus-2026010800.0.0-1844ae.json`) + +4. Download the actual OpenAPI spec: + + ```bash + curl -sL "https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/{versioned-filename}" -o /tmp/oxide-openapi-spec-{commit}.json + ``` + +5. Report what you found: + - The Omicron commit version + - Whether the spec was fetched fresh or loaded from cache + - Confirm the spec is available at `/tmp/oxide-openapi-spec-{commit}.json` + +6. The spec is now available at `/tmp/oxide-openapi-spec-{commit}.json` for further analysis + +## Optional Arguments + +If the user provides arguments like: + +- `--endpoint ` or `endpoint `: Search for and display details about a specific endpoint +- `--schema ` or `schema ` or `type `: Search for and display a specific + schema/type definition +- `--search `: Search endpoints and schemas for the given term + +Use `jq` or read the temp file to fulfill these queries. + +## Notes + +- The spec is large (~2MB JSON), so summarize rather than output the entire thing +- If fetching fails, suggest checking if VERSION_OMICRON contains a valid commit hash +- Reference `internal/generate/main.go:getOpenAPISpecURL` for the canonical implementation diff --git a/.github/ISSUE_TEMPLATE/release_checklist.md b/.github/ISSUE_TEMPLATE/release_checklist.md index 40c9cef..7264537 100644 --- a/.github/ISSUE_TEMPLATE/release_checklist.md +++ b/.github/ISSUE_TEMPLATE/release_checklist.md @@ -2,21 +2,28 @@ name: Release checklist about: Steps to take when releasing a new version (only for Oxide release team). labels: release - --- ## Release checklist - -- [ ] Make sure the [VERSION](https://github.com/oxidecomputer/oxide.go/blob/main/VERSION) file has the new version you want to release. -- [ ] Make sure the changelog file in the `.changelog/` directory is set to the new version you want to release. + +- [ ] Make sure the [VERSION](https://github.com/oxidecomputer/oxide.go/blob/main/VERSION) file has + the new version you want to release. +- [ ] Make sure the changelog file in the `.changelog/` directory is set to the new version you want + to release. - [ ] Make sure all examples and docs reference the new version. -- [ ] Make sure you've pulled the latest tag on main, and generate changelog by running `make changelog`. Add the date of the release to the title, and update associated Oxide API version. +- [ ] Make sure you've pulled the latest tag on main, and generate changelog by running + `make changelog`. Add the date of the release to the title, and update associated Oxide API + version. - [ ] Release the new version by running `make tag`. - [ ] Update GitHub release description with release notes generated from `make changelog`. - [ ] Create a release branch from the commit of the release tag. -- [ ] Bump the version in [VERSION](https://github.com/oxidecomputer/oxide.go/blob/main/VERSION) and run `make generate` to update the generated files. -- [ ] Create a new file for the next release in [.changelog/](https://github.com/oxidecomputer/oxide.go/blob/main/.changelog/). +- [ ] Bump the version in [VERSION](https://github.com/oxidecomputer/oxide.go/blob/main/VERSION) and + run `make generate` to update the generated files. +- [ ] Create a new file for the next release in + [.changelog/](https://github.com/oxidecomputer/oxide.go/blob/main/.changelog/). diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..cc14a89 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "proseWrap": "always", + "printWidth": 100 +} diff --git a/AGENTS.md b/AGENTS.md index dd94717..8763d2f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,8 @@ This file provides context for AI coding assistants working on this codebase. ## Project Overview -**oxide.go** is the official Go SDK for administrating an Oxide rack. It's an OpenAPI-generated client library providing programmatic access to the Oxide infrastructure management API. +**oxide.go** is the official Go SDK for administrating an Oxide rack. It's an OpenAPI-generated +client library providing programmatic access to the Oxide infrastructure management API. ## Build and Test Commands @@ -15,9 +16,12 @@ make lint # Run golangci-lint make generate # Regenerate SDK from OpenAPI spec ``` -Note: prefer to run make targets like `make generate` over one-off `go generate` or `go run` commands. The make targets include additional steps and context that are needed for correct behavior. +Note: prefer to run make targets like `make generate` over one-off `go generate` or `go run` +commands. The make targets include additional steps and context that are needed for correct +behavior. -Note: unless otherwise specified, we should update generated code and run unit tests before considering a change complete. +Note: unless otherwise specified, we should update generated code and run unit tests before +considering a change complete. ## Key Patterns @@ -35,15 +39,21 @@ The SDK is generated from the Oxide API's OpenAPI specification: To fetch the upstream OpenAPI spec manually: 1. Read `VERSION_OMICRON` to get the Omicron commit hash (e.g., `06c0808`) -2. Fetch `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/nexus-latest.json` -3. This file is a symlink - the response body contains the versioned filename (e.g., `nexus-2025120300.0.0.json`) -4. Fetch the actual spec at `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/{versioned-filename}` +2. Fetch + `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/nexus-latest.json` +3. This file is a symlink - the response body contains the versioned filename (e.g., + `nexus-2025120300.0.0.json`) +4. Fetch the actual spec at + `https://raw.githubusercontent.com/oxidecomputer/omicron/{commit}/openapi/nexus/{versioned-filename}` See `getOpenAPISpecURL` in `internal/generate/main.go` for the full implementation. For local testing, set `OPENAPI_SPEC_PATH` environment variable to use a local spec file instead. -**Claude skill:** Use `/fetch-spec` to automatically fetch the spec and save it to `/tmp/oxide-openapi-spec.json`. Supports arguments like `/fetch-spec endpoint disk` or `/fetch-spec schema Instance`. +**Skill:** The `fetch-spec` skill automatically fetches the spec and saves it to +`/tmp/oxide-openapi-spec.json`. Claude will use this skill automatically when looking up API +details, or you can invoke it explicitly with `/fetch-spec endpoint disk` or +`/fetch-spec schema Instance`. ## Code Style diff --git a/CHANGELOG.md b/CHANGELOG.md index 1abfbec..e11c267 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,97 +1,142 @@ # v0.7.0 (2025/Nov/11) -Generated from Oxide API version [20251008.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v17/rc3/openapi/nexus.json) +Generated from Oxide API version +[20251008.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v17/rc3/openapi/nexus.json) ### Enhancements -- **Support `OXIDE_PROFILE`:** Added support for specifying the Oxide profile via the `OXIDE_PROFILE` environment variable. [#332](https://github.com/oxidecomputer/oxide.go/pull/332) +- **Support `OXIDE_PROFILE`:** Added support for specifying the Oxide profile via the + `OXIDE_PROFILE` environment variable. [#332](https://github.com/oxidecomputer/oxide.go/pull/332) ### Bug fixes -- **Handle `map[string]any` types:** Updated the SDK to correctly handle `map[string]any` types. [#325](https://github.com/oxidecomputer/oxide.go/pull/325) -- **Handle required nullable types:** Updated the SDK to correctly handle required nullable types. [#329](https://github.com/oxidecomputer/oxide.go/pull/329) +- **Handle `map[string]any` types:** Updated the SDK to correctly handle `map[string]any` types. + [#325](https://github.com/oxidecomputer/oxide.go/pull/325) +- **Handle required nullable types:** Updated the SDK to correctly handle required nullable types. + [#329](https://github.com/oxidecomputer/oxide.go/pull/329) ### List of commits - [2a9e69d](https://github.com/oxidecomputer/oxide.go/commit/2a9e69d) chore: update changelog (#335) - [9eaced7](https://github.com/oxidecomputer/oxide.go/commit/9eaced7) feat: bump to r17-rc3 (#334) -- [e0646c8](https://github.com/oxidecomputer/oxide.go/commit/e0646c8) oxide: bump API to 48c0c1b (#333) -- [a9bbb37](https://github.com/oxidecomputer/oxide.go/commit/a9bbb37) client: add support for OXIDE_PROFILE (#332) -- [bd541f4](https://github.com/oxidecomputer/oxide.go/commit/bd541f4) Make buildRequest method public. (#331) -- [b94b9b5](https://github.com/oxidecomputer/oxide.go/commit/b94b9b5) Bump actions/setup-go from 5 to 6 (#326) -- [b8c3f7e](https://github.com/oxidecomputer/oxide.go/commit/b8c3f7e) Handle required nullable types. (#329) -- [02b6f67](https://github.com/oxidecomputer/oxide.go/commit/02b6f67) omicron: bump to commit e44ad55. (#327) -- [75e4f83](https://github.com/oxidecomputer/oxide.go/commit/75e4f83) Bump github.com/getkin/kin-openapi from 0.132.0 to 0.133.0 (#323) -- [3e0eed0](https://github.com/oxidecomputer/oxide.go/commit/3e0eed0) generate: handle map[string]any types correctly. (#325) -- [d5356df](https://github.com/oxidecomputer/oxide.go/commit/d5356df) Bump github.com/stretchr/testify from 1.11.0 to 1.11.1 (#324) -- [c22ab12](https://github.com/oxidecomputer/oxide.go/commit/c22ab12) Bump github.com/stretchr/testify from 1.10.0 to 1.11.0 (#322) -- [729a349](https://github.com/oxidecomputer/oxide.go/commit/729a349) misc: sort type properties before generating. (#320) -- [7037f6b](https://github.com/oxidecomputer/oxide.go/commit/7037f6b) misc: update deprecated actions syntax. (#321) -- [ee0ab7a](https://github.com/oxidecomputer/oxide.go/commit/ee0ab7a) oxide: bump omicron to 71fbb2b. (#319) +- [e0646c8](https://github.com/oxidecomputer/oxide.go/commit/e0646c8) oxide: bump API to 48c0c1b + (#333) +- [a9bbb37](https://github.com/oxidecomputer/oxide.go/commit/a9bbb37) client: add support for + OXIDE_PROFILE (#332) +- [bd541f4](https://github.com/oxidecomputer/oxide.go/commit/bd541f4) Make buildRequest method + public. (#331) +- [b94b9b5](https://github.com/oxidecomputer/oxide.go/commit/b94b9b5) Bump actions/setup-go from 5 + to 6 (#326) +- [b8c3f7e](https://github.com/oxidecomputer/oxide.go/commit/b8c3f7e) Handle required nullable + types. (#329) +- [02b6f67](https://github.com/oxidecomputer/oxide.go/commit/02b6f67) omicron: bump to commit + e44ad55. (#327) +- [75e4f83](https://github.com/oxidecomputer/oxide.go/commit/75e4f83) Bump + github.com/getkin/kin-openapi from 0.132.0 to 0.133.0 (#323) +- [3e0eed0](https://github.com/oxidecomputer/oxide.go/commit/3e0eed0) generate: handle + map[string]any types correctly. (#325) +- [d5356df](https://github.com/oxidecomputer/oxide.go/commit/d5356df) Bump + github.com/stretchr/testify from 1.11.0 to 1.11.1 (#324) +- [c22ab12](https://github.com/oxidecomputer/oxide.go/commit/c22ab12) Bump + github.com/stretchr/testify from 1.10.0 to 1.11.0 (#322) +- [729a349](https://github.com/oxidecomputer/oxide.go/commit/729a349) misc: sort type properties + before generating. (#320) +- [7037f6b](https://github.com/oxidecomputer/oxide.go/commit/7037f6b) misc: update deprecated + actions syntax. (#321) +- [ee0ab7a](https://github.com/oxidecomputer/oxide.go/commit/ee0ab7a) oxide: bump omicron to + 71fbb2b. (#319) - [b56a0b2](https://github.com/oxidecomputer/oxide.go/commit/b56a0b2) misc: bump to v0.7.0 (#318) # v0.6.0 (2025/Aug/13) -Generated from Oxide API version [20250730.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v16/rc0/openapi/nexus.json) +Generated from Oxide API version +[20250730.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v16/rc0/openapi/nexus.json) ### Breaking changes -- **`VpcFirewallRuleProtocol` type change:** Changed the type of the `VpcFirewallRuleProtocol` struct to reflect upstream API changes. [#304](https://github.com/oxidecomputer/oxide.go/pull/304) +- **`VpcFirewallRuleProtocol` type change:** Changed the type of the `VpcFirewallRuleProtocol` + struct to reflect upstream API changes. [#304](https://github.com/oxidecomputer/oxide.go/pull/304) ### List of commits -- [289bbe3](https://github.com/oxidecomputer/oxide.go/commit/289bbe3) Bump actions/checkout from 4 to 5 (#312) -- [6291866](https://github.com/oxidecomputer/oxide.go/commit/6291866) oxide: update omicron version to dfac975. (#313) -- [ad9db82](https://github.com/oxidecomputer/oxide.go/commit/ad9db82) ci/cd: trigger on all push events (#315) -- [bc81674](https://github.com/oxidecomputer/oxide.go/commit/bc81674) actions: update triggers. (#314) -- [e5de454](https://github.com/oxidecomputer/oxide.go/commit/e5de454) oxide: optionally build from local openapi spec. (#311) +- [289bbe3](https://github.com/oxidecomputer/oxide.go/commit/289bbe3) Bump actions/checkout from 4 + to 5 (#312) +- [6291866](https://github.com/oxidecomputer/oxide.go/commit/6291866) oxide: update omicron version + to dfac975. (#313) +- [ad9db82](https://github.com/oxidecomputer/oxide.go/commit/ad9db82) ci/cd: trigger on all push + events (#315) +- [bc81674](https://github.com/oxidecomputer/oxide.go/commit/bc81674) actions: update triggers. + (#314) +- [e5de454](https://github.com/oxidecomputer/oxide.go/commit/e5de454) oxide: optionally build from + local openapi spec. (#311) - [3145079](https://github.com/oxidecomputer/oxide.go/commit/3145079) Update codeowners file (#310) -- [62f5313](https://github.com/oxidecomputer/oxide.go/commit/62f5313) misc: use github team for codeowners (#308) -- [d8df86d](https://github.com/oxidecomputer/oxide.go/commit/d8df86d) oxide: update to omicron version 68a8c4b (#307) -- [34f4570](https://github.com/oxidecomputer/oxide.go/commit/34f4570) oxide: update to omicron version 53aea85 (#304) -- [01e729a](https://github.com/oxidecomputer/oxide.go/commit/01e729a) [bugfix] Use the correct type for arrays (#305) +- [62f5313](https://github.com/oxidecomputer/oxide.go/commit/62f5313) misc: use github team for + codeowners (#308) +- [d8df86d](https://github.com/oxidecomputer/oxide.go/commit/d8df86d) oxide: update to omicron + version 68a8c4b (#307) +- [34f4570](https://github.com/oxidecomputer/oxide.go/commit/34f4570) oxide: update to omicron + version 53aea85 (#304) +- [01e729a](https://github.com/oxidecomputer/oxide.go/commit/01e729a) [bugfix] Use the correct type + for arrays (#305) - [83ef11f](https://github.com/oxidecomputer/oxide.go/commit/83ef11f) misc: add codeowners (#301) -- [a8e00fb](https://github.com/oxidecomputer/oxide.go/commit/a8e00fb) misc: update readme example code (#300) -- [a289a27](https://github.com/oxidecomputer/oxide.go/commit/a289a27) Add missing fields to network types (#278) -- [a65e25f](https://github.com/oxidecomputer/oxide.go/commit/a65e25f) Update to Omicron 1b4b019 (#298) -- [c63d62d](https://github.com/oxidecomputer/oxide.go/commit/c63d62d) Bump SDK version to v0.6.0 (#297) +- [a8e00fb](https://github.com/oxidecomputer/oxide.go/commit/a8e00fb) misc: update readme example + code (#300) +- [a289a27](https://github.com/oxidecomputer/oxide.go/commit/a289a27) Add missing fields to network + types (#278) +- [a65e25f](https://github.com/oxidecomputer/oxide.go/commit/a65e25f) Update to Omicron 1b4b019 + (#298) +- [c63d62d](https://github.com/oxidecomputer/oxide.go/commit/c63d62d) Bump SDK version to v0.6.0 + (#297) # v0.5.0 (2025/Jun/11) -Generated from Oxide API version [20250604.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v15/rc1/openapi/nexus.json) +Generated from Oxide API version +[20250604.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v15/rc1/openapi/nexus.json) ### Breaking changes -- **Go version update:** Updated the SDK's Go version to Go 1.24. Consumers of this SDK will need to update to Go 1.24 as well. [#291](https://github.com/oxidecomputer/oxide.go/pull/291) -- **Set `omitzero` on specific types:** Clients can pass an empty slice and have it serialized as `[]`. Requires Go 1.24 or later. [#289](https://github.com/oxidecomputer/oxide.go/pull/289) +- **Go version update:** Updated the SDK's Go version to Go 1.24. Consumers of this SDK will need to + update to Go 1.24 as well. [#291](https://github.com/oxidecomputer/oxide.go/pull/291) +- **Set `omitzero` on specific types:** Clients can pass an empty slice and have it serialized as + `[]`. Requires Go 1.24 or later. [#289](https://github.com/oxidecomputer/oxide.go/pull/289) ### New features -- **SiloAuthSettings:** Methods to view and update authentication settings. Namely, set token expiration. [#294](https://github.com/oxidecomputer/oxide.go/pull/294) -- **CurrentUserAccessToken:** Methods to view and delete a current user's auth tokens. [#294](https://github.com/oxidecomputer/oxide.go/pull/294) +- **SiloAuthSettings:** Methods to view and update authentication settings. Namely, set token + expiration. [#294](https://github.com/oxidecomputer/oxide.go/pull/294) +- **CurrentUserAccessToken:** Methods to view and delete a current user's auth tokens. + [#294](https://github.com/oxidecomputer/oxide.go/pull/294) ### Bug fixes -- **Type fields:** All arrays that are nullable in the API no longer have `omitempty` to avoid panics if unset. [#283](https://github.com/oxidecomputer/oxide.go/pull/283) +- **Type fields:** All arrays that are nullable in the API no longer have `omitempty` to avoid + panics if unset. [#283](https://github.com/oxidecomputer/oxide.go/pull/283) ### List of commits - [a3144ae](https://github.com/oxidecomputer/oxide.go/commit/a3144ae) Update omicron to rc15 (#295) -- [c075870](https://github.com/oxidecomputer/oxide.go/commit/c075870) Update to omicron 760d1b0 (#294) -- [ecfa72d](https://github.com/oxidecomputer/oxide.go/commit/ecfa72d) generate: set omitzero on specific types (#289) +- [c075870](https://github.com/oxidecomputer/oxide.go/commit/c075870) Update to omicron 760d1b0 + (#294) +- [ecfa72d](https://github.com/oxidecomputer/oxide.go/commit/ecfa72d) generate: set omitzero on + specific types (#289) - [855352f](https://github.com/oxidecomputer/oxide.go/commit/855352f) go: update to 1.24 (#291) -- [2e4943b](https://github.com/oxidecomputer/oxide.go/commit/2e4943b) Bump github.com/getkin/kin-openapi from 0.131.0 to 0.132.0 (#286) -- [65b1d0f](https://github.com/oxidecomputer/oxide.go/commit/65b1d0f) Update to omicron 5cfd735 (#284) +- [2e4943b](https://github.com/oxidecomputer/oxide.go/commit/2e4943b) Bump + github.com/getkin/kin-openapi from 0.131.0 to 0.132.0 (#286) +- [65b1d0f](https://github.com/oxidecomputer/oxide.go/commit/65b1d0f) Update to omicron 5cfd735 + (#284) - [719d3ae](https://github.com/oxidecomputer/oxide.go/commit/719d3ae) Handle nullable arrays (#283) - [a79eb2c](https://github.com/oxidecomputer/oxide.go/commit/a79eb2c) Bump version to v0.5.0 (#281) # v0.4.0 (2025/Apr/15) -Generated from Oxide API version [20250409.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v14/rc1/openapi/nexus.json) +Generated from Oxide API version +[20250409.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v14/rc1/openapi/nexus.json) ### Breaking changes -- **Integers as pointers:** All integers within the SDK's types are now `*int`. This is due to Go's handling of 0 as the empty value. This is specifically necessary when a field is an integer and also not required. [#274](https://github.com/oxidecomputer/oxide.go/pull/274) +- **Integers as pointers:** All integers within the SDK's types are now `*int`. This is due to Go's + handling of 0 as the empty value. This is specifically necessary when a field is an integer and + also not required. [#274](https://github.com/oxidecomputer/oxide.go/pull/274) ### New features @@ -99,165 +144,228 @@ Generated from Oxide API version [20250409.0.0](https://github.com/oxidecomputer ### List of commits -- [0083f51](https://github.com/oxidecomputer/oxide.go/commit/0083f51) Update omicron version to rel/v14/rc1 (#279) -- [894605d](https://github.com/oxidecomputer/oxide.go/commit/894605d) Update to Omicron 0dad016 (#276) +- [0083f51](https://github.com/oxidecomputer/oxide.go/commit/0083f51) Update omicron version to + rel/v14/rc1 (#279) +- [894605d](https://github.com/oxidecomputer/oxide.go/commit/894605d) Update to Omicron 0dad016 + (#276) - [845061b](https://github.com/oxidecomputer/oxide.go/commit/845061b) Documentation fix (#275) -- [c8be658](https://github.com/oxidecomputer/oxide.go/commit/c8be658) Set integer fields as pointers (#274) -- [39db29e](https://github.com/oxidecomputer/oxide.go/commit/39db29e) Bump github.com/getkin/kin-openapi from 0.129.0 to 0.131.0 (#272) -- [5fd2848](https://github.com/oxidecomputer/oxide.go/commit/5fd2848) Update to omicron 8a40bb8 (#269) -- [9d49348](https://github.com/oxidecomputer/oxide.go/commit/9d49348) Update to version v0.4.0 (#268) +- [c8be658](https://github.com/oxidecomputer/oxide.go/commit/c8be658) Set integer fields as pointers + (#274) +- [39db29e](https://github.com/oxidecomputer/oxide.go/commit/39db29e) Bump + github.com/getkin/kin-openapi from 0.129.0 to 0.131.0 (#272) +- [5fd2848](https://github.com/oxidecomputer/oxide.go/commit/5fd2848) Update to omicron 8a40bb8 + (#269) +- [9d49348](https://github.com/oxidecomputer/oxide.go/commit/9d49348) Update to version v0.4.0 + (#268) # v0.3.0 (2025/Feb/18) -Generated from Oxide API version [20250212.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v13/rc0/openapi/nexus.json) +Generated from Oxide API version +[20250212.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v13/rc0/openapi/nexus.json) ### New features -- **Switch Port LLDP Neighbors:** CRUD functionality for LLDP neighbors seen on a switch port. [#263](https://github.com/oxidecomputer/oxide.go/pull/263) +- **Switch Port LLDP Neighbors:** CRUD functionality for LLDP neighbors seen on a switch port. + [#263](https://github.com/oxidecomputer/oxide.go/pull/263) ### List of commits -- [96d5f51](https://github.com/oxidecomputer/oxide.go/commit/96d5f51) Update to omicron rel/v13/rc0 (#266) -- [6d04e20](https://github.com/oxidecomputer/oxide.go/commit/6d04e20) Update SDK to omicron e036c80 (#263) -- [0a7b464](https://github.com/oxidecomputer/oxide.go/commit/0a7b464) Bump kin-openapi to 0.129.0 (#262) -- [05e4807](https://github.com/oxidecomputer/oxide.go/commit/05e4807) Improve contributing docs (#261) +- [96d5f51](https://github.com/oxidecomputer/oxide.go/commit/96d5f51) Update to omicron rel/v13/rc0 + (#266) +- [6d04e20](https://github.com/oxidecomputer/oxide.go/commit/6d04e20) Update SDK to omicron e036c80 + (#263) +- [0a7b464](https://github.com/oxidecomputer/oxide.go/commit/0a7b464) Bump kin-openapi to 0.129.0 + (#262) +- [05e4807](https://github.com/oxidecomputer/oxide.go/commit/05e4807) Improve contributing docs + (#261) - [ea1d4d0](https://github.com/oxidecomputer/oxide.go/commit/ea1d4d0) Bump to version v0.3.0 (#259) # v0.2.0 (2025/Jan/07) -Generated from Oxide API version [20241204.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v12/rc1/openapi/nexus.json) +Generated from Oxide API version +[20241204.0.0](https://github.com/oxidecomputer/omicron/blob/rel/v12/rc1/openapi/nexus.json) ### Notes -This release is solely a version bump. Since pkg.go.dev does not recognise git tags with metadata suffixes, -we are not able to set build metadata like the previous version. See associated [commit](https://go-review.googlesource.com/c/pkgsite/+/343631). +This release is solely a version bump. Since pkg.go.dev does not recognise git tags with metadata +suffixes, we are not able to set build metadata like the previous version. See associated +[commit](https://go-review.googlesource.com/c/pkgsite/+/343631). ### List of commits -- [8357536](https://github.com/oxidecomputer/oxide.go/commit/8357536) Bump version for release v0.2.0 (#257) -- [f314faf](https://github.com/oxidecomputer/oxide.go/commit/f314faf) release: bump to next version (#255) -- [230e0cc](https://github.com/oxidecomputer/oxide.go/commit/230e0cc) release: v0.1.0+20241204.0.0 (#254) +- [8357536](https://github.com/oxidecomputer/oxide.go/commit/8357536) Bump version for release + v0.2.0 (#257) +- [f314faf](https://github.com/oxidecomputer/oxide.go/commit/f314faf) release: bump to next version + (#255) +- [230e0cc](https://github.com/oxidecomputer/oxide.go/commit/230e0cc) release: v0.1.0+20241204.0.0 + (#254) # v0.1.0+20241204.0.0 (2025/Jan/06) ### Breaking changes -- **Instance Update:** It's now possible to modify an instance's Memory and Ncpus count. When using the `InstanceUpdate` method, all parameters must be set. Otherwise, the values used will be 0. [247](https://github.com/oxidecomputer/oxide.go/pull/247) +- **Instance Update:** It's now possible to modify an instance's Memory and Ncpus count. When using + the `InstanceUpdate` method, all parameters must be set. Otherwise, the values used will be 0. + [247](https://github.com/oxidecomputer/oxide.go/pull/247) ### New features -- **Authenticate using Oxide credentials.toml:** Add option to authenticate using the `credentials.toml` file generated by the Oxide CLI. [244](https://github.com/oxidecomputer/oxide.go/pull/244) +- **Authenticate using Oxide credentials.toml:** Add option to authenticate using the + `credentials.toml` file generated by the Oxide CLI. + [244](https://github.com/oxidecomputer/oxide.go/pull/244) ### Enhancements -- **Update Go version:** The SDK's version has been updated to 1.22. [243](https://github.com/oxidecomputer/oxide.go/pull/243) +- **Update Go version:** The SDK's version has been updated to 1.22. + [243](https://github.com/oxidecomputer/oxide.go/pull/243) ### List of commits -- [727dc6f](https://github.com/oxidecomputer/oxide.go/commit/727dc6f) Update to Omicron rel/v12/rc0 (#253) -- [ed39445](https://github.com/oxidecomputer/oxide.go/commit/ed39445) Bump version to v0.1.0+20241204.0.0 (#252) -- [eb153ea](https://github.com/oxidecomputer/oxide.go/commit/eb153ea) Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 (#250) -- [291b784](https://github.com/oxidecomputer/oxide.go/commit/291b784) Split long doc strings over multiple lines (#249) -- [6bce2f6](https://github.com/oxidecomputer/oxide.go/commit/6bce2f6) Update to Omicron 9c8aa53 (#247) -- [18592bd](https://github.com/oxidecomputer/oxide.go/commit/18592bd) Add option to use credentials from CLI (#244) +- [727dc6f](https://github.com/oxidecomputer/oxide.go/commit/727dc6f) Update to Omicron rel/v12/rc0 + (#253) +- [ed39445](https://github.com/oxidecomputer/oxide.go/commit/ed39445) Bump version to + v0.1.0+20241204.0.0 (#252) +- [eb153ea](https://github.com/oxidecomputer/oxide.go/commit/eb153ea) Bump + github.com/stretchr/testify from 1.9.0 to 1.10.0 (#250) +- [291b784](https://github.com/oxidecomputer/oxide.go/commit/291b784) Split long doc strings over + multiple lines (#249) +- [6bce2f6](https://github.com/oxidecomputer/oxide.go/commit/6bce2f6) Update to Omicron 9c8aa53 + (#247) +- [18592bd](https://github.com/oxidecomputer/oxide.go/commit/18592bd) Add option to use credentials + from CLI (#244) - [88b2bfd](https://github.com/oxidecomputer/oxide.go/commit/88b2bfd) Makefile cleanup (#246) -- [35e937c](https://github.com/oxidecomputer/oxide.go/commit/35e937c) Update Go version to 1.22 (#243) -- [4e5a60a](https://github.com/oxidecomputer/oxide.go/commit/4e5a60a) version bump to 0.1.0-beta10 (#242) -- [51cac24](https://github.com/oxidecomputer/oxide.go/commit/51cac24) Bump github.com/getkin/kin-openapi from 0.127.0 to 0.128.0 (#239) +- [35e937c](https://github.com/oxidecomputer/oxide.go/commit/35e937c) Update Go version to 1.22 + (#243) +- [4e5a60a](https://github.com/oxidecomputer/oxide.go/commit/4e5a60a) version bump to 0.1.0-beta10 + (#242) +- [51cac24](https://github.com/oxidecomputer/oxide.go/commit/51cac24) Bump + github.com/getkin/kin-openapi from 0.127.0 to 0.128.0 (#239) # v0.1.0-beta9 (2024/Oct/21) ### Breaking changes -- **OneOf generic types:** All struct field types that have different property types in the OpenAPI spec have now been set to `any`. [#234](https://github.com/oxidecomputer/oxide.go/pull/234) -- **NetworkingBgpAnnounceSet type:** Small change in fields. [236](https://github.com/oxidecomputer/oxide.go/pull/236) +- **OneOf generic types:** All struct field types that have different property types in the OpenAPI + spec have now been set to `any`. [#234](https://github.com/oxidecomputer/oxide.go/pull/234) +- **NetworkingBgpAnnounceSet type:** Small change in fields. + [236](https://github.com/oxidecomputer/oxide.go/pull/236) ### New features -- **Helper function:** New `NewPointer` function that returns a pointer to a given value. [235](https://github.com/oxidecomputer/oxide.go/pull/235) -- **New fields for Instance:** It is now possible to specify a boot disk and update it. Additionally, instances now have 'autorestart' functionality, where if set the control plane to automatically restart it if it enters the `Failed` state. [236](https://github.com/oxidecomputer/oxide.go/pull/236) -- **New types and methods:** Create, list, view and delete methods for InternetGatewayIpAddress and InternetGatewayIpPool. [240](https://github.com/oxidecomputer/oxide.go/pull/240) - +- **Helper function:** New `NewPointer` function that returns a pointer to a given value. + [235](https://github.com/oxidecomputer/oxide.go/pull/235) +- **New fields for Instance:** It is now possible to specify a boot disk and update it. + Additionally, instances now have 'autorestart' functionality, where if set the control plane to + automatically restart it if it enters the `Failed` state. + [236](https://github.com/oxidecomputer/oxide.go/pull/236) +- **New types and methods:** Create, list, view and delete methods for InternetGatewayIpAddress and + InternetGatewayIpPool. [240](https://github.com/oxidecomputer/oxide.go/pull/240) ### Bug fixes -- **Fix for fields of type `time.Time`:** Change encoding of time parameters to RFC3339. [232](https://github.com/oxidecomputer/oxide.go/pull/232) -- **Fix for types:** Account for additional fields 'array' types that don't specify map keys. [235](https://github.com/oxidecomputer/oxide.go/pull/235) +- **Fix for fields of type `time.Time`:** Change encoding of time parameters to RFC3339. + [232](https://github.com/oxidecomputer/oxide.go/pull/232) +- **Fix for types:** Account for additional fields 'array' types that don't specify map keys. + [235](https://github.com/oxidecomputer/oxide.go/pull/235) ### List of commits -- [7c3ac3b](https://github.com/oxidecomputer/oxide.go/commit/7c3ac3b) Update to omicron rel/v11/rc1 (#240) -- [92053e1](https://github.com/oxidecomputer/oxide.go/commit/92053e1) Fix nullable BootDisk field (#237) -- [cadd7b6](https://github.com/oxidecomputer/oxide.go/commit/cadd7b6) Update to omicron f14b561 (#236) -- [5f5c339](https://github.com/oxidecomputer/oxide.go/commit/5f5c339) Account for additional fields "array" types that don't specify map keys (#235) -- [7b8deef](https://github.com/oxidecomputer/oxide.go/commit/7b8deef) Fix OneOf type templates when property types differ (#234) -- [2633306](https://github.com/oxidecomputer/oxide.go/commit/2633306) Change encoding of time parameters to RFC3339 (#232) -- [645ab82](https://github.com/oxidecomputer/oxide.go/commit/645ab82) Remove outdated checks in Makefile and bump tools (#230) -- [db1cf82](https://github.com/oxidecomputer/oxide.go/commit/db1cf82) Remove executable bit from generated source files (#229) -- [2d91c54](https://github.com/oxidecomputer/oxide.go/commit/2d91c54) Don't hardcode Bash path in Makefile (#228) -- [ab549ae](https://github.com/oxidecomputer/oxide.go/commit/ab549ae) Bump version to v0.1.0-beta9 (#227) +- [7c3ac3b](https://github.com/oxidecomputer/oxide.go/commit/7c3ac3b) Update to omicron rel/v11/rc1 + (#240) +- [92053e1](https://github.com/oxidecomputer/oxide.go/commit/92053e1) Fix nullable BootDisk field + (#237) +- [cadd7b6](https://github.com/oxidecomputer/oxide.go/commit/cadd7b6) Update to omicron f14b561 + (#236) +- [5f5c339](https://github.com/oxidecomputer/oxide.go/commit/5f5c339) Account for additional fields + "array" types that don't specify map keys (#235) +- [7b8deef](https://github.com/oxidecomputer/oxide.go/commit/7b8deef) Fix OneOf type templates when + property types differ (#234) +- [2633306](https://github.com/oxidecomputer/oxide.go/commit/2633306) Change encoding of time + parameters to RFC3339 (#232) +- [645ab82](https://github.com/oxidecomputer/oxide.go/commit/645ab82) Remove outdated checks in + Makefile and bump tools (#230) +- [db1cf82](https://github.com/oxidecomputer/oxide.go/commit/db1cf82) Remove executable bit from + generated source files (#229) +- [2d91c54](https://github.com/oxidecomputer/oxide.go/commit/2d91c54) Don't hardcode Bash path in + Makefile (#228) +- [ab549ae](https://github.com/oxidecomputer/oxide.go/commit/ab549ae) Bump version to v0.1.0-beta9 + (#227) # v0.1.0-beta8 (2024/Sep/3) ### Breaking changes -- **Enums:** All 'enum' collection variables have been changed. The word 'Collection' has been appended to all variable names. [#223](https://github.com/oxidecomputer/oxide.go/pull/223) -- **Instances:** The migration endpoint has been removed. [#223](https://github.com/oxidecomputer/oxide.go/pull/223) +- **Enums:** All 'enum' collection variables have been changed. The word 'Collection' has been + appended to all variable names. [#223](https://github.com/oxidecomputer/oxide.go/pull/223) +- **Instances:** The migration endpoint has been removed. + [#223](https://github.com/oxidecomputer/oxide.go/pull/223) ### New features -- **Networking:** New BGP related methods. [#225](https://github.com/oxidecomputer/oxide.go/pull/225) +- **Networking:** New BGP related methods. + [#225](https://github.com/oxidecomputer/oxide.go/pull/225) ### Enhancements -- **Metrics:** The 'TimeseriesSchema' type now has additional fields. [#223](https://github.com/oxidecomputer/oxide.go/pull/223) +- **Metrics:** The 'TimeseriesSchema' type now has additional fields. + [#223](https://github.com/oxidecomputer/oxide.go/pull/223) ### List of commits -- [b4aa1b2](https://github.com/oxidecomputer/oxide.go/commit/b4aa1b2) Update to omircon rel/v10/rc001 (#225) -- [3ece271](https://github.com/oxidecomputer/oxide.go/commit/3ece271) Update to Omicron ede17c7 and refactor enum collections (#223) -- [942bccc](https://github.com/oxidecomputer/oxide.go/commit/942bccc) Bump github.com/getkin/kin-openapi from 0.126.0 to 0.127.0 (#222) +- [b4aa1b2](https://github.com/oxidecomputer/oxide.go/commit/b4aa1b2) Update to omircon + rel/v10/rc001 (#225) +- [3ece271](https://github.com/oxidecomputer/oxide.go/commit/3ece271) Update to Omicron ede17c7 and + refactor enum collections (#223) +- [942bccc](https://github.com/oxidecomputer/oxide.go/commit/942bccc) Bump + github.com/getkin/kin-openapi from 0.126.0 to 0.127.0 (#222) - [9c89a17](https://github.com/oxidecomputer/oxide.go/commit/9c89a17) Version bump (#221) # v0.1.0-beta7 (2024/Jul/23) ### Breaking changes -- **Networking:** The `NetworkingBgpAnnounceSetCreate` method has been replaced by `NetworkingBgpAnnounceSetUpdate` [#218](https://github.com/oxidecomputer/oxide.go/pull/218). +- **Networking:** The `NetworkingBgpAnnounceSetCreate` method has been replaced by + `NetworkingBgpAnnounceSetUpdate` [#218](https://github.com/oxidecomputer/oxide.go/pull/218). ### New features - **New APIs:** Several new endpoints in [#216](https://github.com/oxidecomputer/oxide.go/pull/216) - - VpcRouterRouteList: List routes - - VpcRouterRouteListAllPages: List routes - - VpcRouterRouteCreate: Create route - - VpcRouterRouteView: Fetch route - - VpcRouterRouteUpdate: Update route - - VpcRouterRouteDelete: Delete route - - VpcRouterList: List routers - - VpcRouterListAllPages: List routers - - VpcRouterCreate: Create VPC router - - VpcRouterView: Fetch router - - VpcRouterUpdate: Update router + - VpcRouterRouteList: List routes + - VpcRouterRouteListAllPages: List routes + - VpcRouterRouteCreate: Create route + - VpcRouterRouteView: Fetch route + - VpcRouterRouteUpdate: Update route + - VpcRouterRouteDelete: Delete route + - VpcRouterList: List routers + - VpcRouterListAllPages: List routers + - VpcRouterCreate: Create VPC router + - VpcRouterView: Fetch router + - VpcRouterUpdate: Update router - VpcRouterDelete: Delete router ### List of commits -- [3682a00](https://github.com/oxidecomputer/oxide.go/commit/3682a00) Update to omicron bedb238 (#218) -- [c52f6e0](https://github.com/oxidecomputer/oxide.go/commit/c52f6e0) Bump github.com/getkin/kin-openapi from 0.125.0 to 0.126.0 (#217) -- [06dd780](https://github.com/oxidecomputer/oxide.go/commit/06dd780) Update to Omicron 97fe552 (#216) -- [e44fdd5](https://github.com/oxidecomputer/oxide.go/commit/e44fdd5) Bump github.com/getkin/kin-openapi from 0.124.0 to 0.125.0 (#215) +- [3682a00](https://github.com/oxidecomputer/oxide.go/commit/3682a00) Update to omicron bedb238 + (#218) +- [c52f6e0](https://github.com/oxidecomputer/oxide.go/commit/c52f6e0) Bump + github.com/getkin/kin-openapi from 0.125.0 to 0.126.0 (#217) +- [06dd780](https://github.com/oxidecomputer/oxide.go/commit/06dd780) Update to Omicron 97fe552 + (#216) +- [e44fdd5](https://github.com/oxidecomputer/oxide.go/commit/e44fdd5) Bump + github.com/getkin/kin-openapi from 0.124.0 to 0.125.0 (#215) - [4151b01](https://github.com/oxidecomputer/oxide.go/commit/4151b01) Version bump (#214) # v0.1.0-beta6 (2024/May/9) ### Breaking changes -- **Types:** Changes to BGP related types. [#212](https://github.com/oxidecomputer/oxide.go/pull/212) +- **Types:** Changes to BGP related types. + [#212](https://github.com/oxidecomputer/oxide.go/pull/212) ### List of commits -- [a4018ce](https://github.com/oxidecomputer/oxide.go/commit/a4018ce) Update to omicron c1f9e8f (#212) +- [a4018ce](https://github.com/oxidecomputer/oxide.go/commit/a4018ce) Update to omicron c1f9e8f + (#212) - [bb16ad2](https://github.com/oxidecomputer/oxide.go/commit/bb16ad2) Version bump (#210) # v0.1.0-beta5 (2024/May/6) @@ -265,106 +373,171 @@ we are not able to set build metadata like the previous version. See associated ### New features - **New APIs:** Several new endpoints in [#208](https://github.com/oxidecomputer/oxide.go/pull/208) - - NetworkingAllowListView: Get user-facing services IP allowlist - - NetworkingAllowListUpdate: Update user-facing services IP allowlist + - NetworkingAllowListView: Get user-facing services IP allowlist + - NetworkingAllowListUpdate: Update user-facing services IP allowlist - NetworkingSwitchPortStatus: Get switch port status ### List of commits -- [75ad608](https://github.com/oxidecomputer/oxide.go/commit/75ad608) Update to omicron f2602b5 (#208) -- [44a6751](https://github.com/oxidecomputer/oxide.go/commit/44a6751) Update kin-openapi to 0.124.0 (#206) +- [75ad608](https://github.com/oxidecomputer/oxide.go/commit/75ad608) Update to omicron f2602b5 + (#208) +- [44a6751](https://github.com/oxidecomputer/oxide.go/commit/44a6751) Update kin-openapi to 0.124.0 + (#206) - [b4e284c](https://github.com/oxidecomputer/oxide.go/commit/b4e284c) Version bump (#204) # v0.1.0-beta4 (2024/Apr/3) ### New features -- **New API endpoints:** Floating IP update, IP pool utilization view, physical disk view, timeseries query, timeseries schema list, and BGP message history. [#195](https://github.com/oxidecomputer/oxide.go/pull/195), [#201](https://github.com/oxidecomputer/oxide.go/pull/201), [#202](https://github.com/oxidecomputer/oxide.go/pull/202) +- **New API endpoints:** Floating IP update, IP pool utilization view, physical disk view, + timeseries query, timeseries schema list, and BGP message history. + [#195](https://github.com/oxidecomputer/oxide.go/pull/195), + [#201](https://github.com/oxidecomputer/oxide.go/pull/201), + [#202](https://github.com/oxidecomputer/oxide.go/pull/202) ### Enhancements -- **Documentation:** Go doc comments now include which fields are required for each type. [#198](https://github.com/oxidecomputer/oxide.go/pull/198) +- **Documentation:** Go doc comments now include which fields are required for each type. + [#198](https://github.com/oxidecomputer/oxide.go/pull/198) ### List of commits -- [f488d8e](https://github.com/oxidecomputer/oxide.go/commit/f488d8e) Update to omicron afb2e9a (#202) -- [f7d1056](https://github.com/oxidecomputer/oxide.go/commit/f7d1056) Update to omicron a3fa540 (#201) -- [35ead62](https://github.com/oxidecomputer/oxide.go/commit/35ead62) Bump softprops/action-gh-release from 1 to 2 (#199) -- [8359042](https://github.com/oxidecomputer/oxide.go/commit/8359042) Document required fields (#198) -- [2d221d4](https://github.com/oxidecomputer/oxide.go/commit/2d221d4) Remove unecessary env var from GH action (#197) -- [9b0cf8d](https://github.com/oxidecomputer/oxide.go/commit/9b0cf8d) Bump github.com/stretchr/testify from 1.8.4 to 1.9.0 (#196) -- [043c873](https://github.com/oxidecomputer/oxide.go/commit/043c873) Update SDK to Omicron dcd3d9e (#195) -- [20c490d](https://github.com/oxidecomputer/oxide.go/commit/20c490d) Write correct date on changelog (#193) -- [38e6c01](https://github.com/oxidecomputer/oxide.go/commit/38e6c01) Bump version for next release (#192) +- [f488d8e](https://github.com/oxidecomputer/oxide.go/commit/f488d8e) Update to omicron afb2e9a + (#202) +- [f7d1056](https://github.com/oxidecomputer/oxide.go/commit/f7d1056) Update to omicron a3fa540 + (#201) +- [35ead62](https://github.com/oxidecomputer/oxide.go/commit/35ead62) Bump + softprops/action-gh-release from 1 to 2 (#199) +- [8359042](https://github.com/oxidecomputer/oxide.go/commit/8359042) Document required fields + (#198) +- [2d221d4](https://github.com/oxidecomputer/oxide.go/commit/2d221d4) Remove unecessary env var from + GH action (#197) +- [9b0cf8d](https://github.com/oxidecomputer/oxide.go/commit/9b0cf8d) Bump + github.com/stretchr/testify from 1.8.4 to 1.9.0 (#196) +- [043c873](https://github.com/oxidecomputer/oxide.go/commit/043c873) Update SDK to Omicron dcd3d9e + (#195) +- [20c490d](https://github.com/oxidecomputer/oxide.go/commit/20c490d) Write correct date on + changelog (#193) +- [38e6c01](https://github.com/oxidecomputer/oxide.go/commit/38e6c01) Bump version for next release + (#192) # v0.1.0-beta3 (2024/Feb/13) ### Breaking changes -- **Go version:** Minimum required Go version has been updated to 1.21. [#179](https://github.com/oxidecomputer/oxide.go/pull/179) -- **NewClient API change:** The `NewClient` function has been updated to no longer require a user agent parameter. [#180](https://github.com/oxidecomputer/oxide.go/pull/180) -- **NewClientFromEnv removal:** The `NewClientFromEnv` function has been removed. Users should use `NewClient` instead. [#180](https://github.com/oxidecomputer/oxide.go/pull/180) -- **Method renames:** Several methods have had slight name changes to better reflect their functionality. [#182](https://github.com/oxidecomputer/oxide.go/pull/182) -- **Types:** Several types have added fields and/or renames. [#182](https://github.com/oxidecomputer/oxide.go/pull/182), [#185](https://github.com/oxidecomputer/oxide.go/pull/185), [#190](https://github.com/oxidecomputer/oxide.go/pull/190) +- **Go version:** Minimum required Go version has been updated to 1.21. + [#179](https://github.com/oxidecomputer/oxide.go/pull/179) +- **NewClient API change:** The `NewClient` function has been updated to no longer require a user + agent parameter. [#180](https://github.com/oxidecomputer/oxide.go/pull/180) +- **NewClientFromEnv removal:** The `NewClientFromEnv` function has been removed. Users should use + `NewClient` instead. [#180](https://github.com/oxidecomputer/oxide.go/pull/180) +- **Method renames:** Several methods have had slight name changes to better reflect their + functionality. [#182](https://github.com/oxidecomputer/oxide.go/pull/182) +- **Types:** Several types have added fields and/or renames. + [#182](https://github.com/oxidecomputer/oxide.go/pull/182), + [#185](https://github.com/oxidecomputer/oxide.go/pull/185), + [#190](https://github.com/oxidecomputer/oxide.go/pull/190) ### New features -- **New instance APIs:** Live attach and detach of external IPs to an instance. [#182](https://github.com/oxidecomputer/oxide.go/pull/182) -- **New IP pool APIs:** Several silo IP pool maintenance endpoints. [#182](https://github.com/oxidecomputer/oxide.go/pull/182), [#187](https://github.com/oxidecomputer/oxide.go/pull/187) -- **New SSH keys APIs:** Endpoint to list SSH keys that were added to an instance on create. [#185](https://github.com/oxidecomputer/oxide.go/pull/185) -- **New networking APIs:** Enable, disable and see status of BFD sessions. [#190](https://github.com/oxidecomputer/oxide.go/pull/190) +- **New instance APIs:** Live attach and detach of external IPs to an instance. + [#182](https://github.com/oxidecomputer/oxide.go/pull/182) +- **New IP pool APIs:** Several silo IP pool maintenance endpoints. + [#182](https://github.com/oxidecomputer/oxide.go/pull/182), + [#187](https://github.com/oxidecomputer/oxide.go/pull/187) +- **New SSH keys APIs:** Endpoint to list SSH keys that were added to an instance on create. + [#185](https://github.com/oxidecomputer/oxide.go/pull/185) +- **New networking APIs:** Enable, disable and see status of BFD sessions. + [#190](https://github.com/oxidecomputer/oxide.go/pull/190) ### List of commits -- [428a544](https://github.com/oxidecomputer/oxide.go/commit/428a544) Update to omicron 7e0ce99 (#190) -- [a4b7143](https://github.com/oxidecomputer/oxide.go/commit/a4b7143) []NameOrID values should not be omitempty (#189) +- [428a544](https://github.com/oxidecomputer/oxide.go/commit/428a544) Update to omicron 7e0ce99 + (#190) +- [a4b7143](https://github.com/oxidecomputer/oxide.go/commit/a4b7143) []NameOrID values should not + be omitempty (#189) - [b965f6a](https://github.com/oxidecomputer/oxide.go/commit/b965f6a) Tweak release checklist (#188) -- [2362321](https://github.com/oxidecomputer/oxide.go/commit/2362321) Update to Omicron 6491841 (#187) -- [8375384](https://github.com/oxidecomputer/oxide.go/commit/8375384) Rename the server field to host in the Client struct (#186) -- [6a0a73b](https://github.com/oxidecomputer/oxide.go/commit/6a0a73b) Update to Omicron 5780ff6 (#185) -- [fb28e16](https://github.com/oxidecomputer/oxide.go/commit/fb28e16) Small fix on release template (#184) -- [c9a7efb](https://github.com/oxidecomputer/oxide.go/commit/c9a7efb) Update to Omicron cc64304 (#182) -- [6a54c0b](https://github.com/oxidecomputer/oxide.go/commit/6a54c0b) Bump github.com/getkin/kin-openapi from 0.122.0 to 0.123.0 (#181) -- [172bbb1](https://github.com/oxidecomputer/oxide.go/commit/172bbb1) oxide: refactor exported client API (#180) +- [2362321](https://github.com/oxidecomputer/oxide.go/commit/2362321) Update to Omicron 6491841 + (#187) +- [8375384](https://github.com/oxidecomputer/oxide.go/commit/8375384) Rename the server field to + host in the Client struct (#186) +- [6a0a73b](https://github.com/oxidecomputer/oxide.go/commit/6a0a73b) Update to Omicron 5780ff6 + (#185) +- [fb28e16](https://github.com/oxidecomputer/oxide.go/commit/fb28e16) Small fix on release template + (#184) +- [c9a7efb](https://github.com/oxidecomputer/oxide.go/commit/c9a7efb) Update to Omicron cc64304 + (#182) +- [6a54c0b](https://github.com/oxidecomputer/oxide.go/commit/6a54c0b) Bump + github.com/getkin/kin-openapi from 0.122.0 to 0.123.0 (#181) +- [172bbb1](https://github.com/oxidecomputer/oxide.go/commit/172bbb1) oxide: refactor exported + client API (#180) - [3d15f3d](https://github.com/oxidecomputer/oxide.go/commit/3d15f3d) Update to Go 1.21 (#179) -- [157d746](https://github.com/oxidecomputer/oxide.go/commit/157d746) [github] Feature request issue template (#178) -- [0dea647](https://github.com/oxidecomputer/oxide.go/commit/0dea647) [github] Add issue templates (#177) -- [642f5f4](https://github.com/oxidecomputer/oxide.go/commit/642f5f4) Update to upcoming version (#176) -- [c5e0e7e](https://github.com/oxidecomputer/oxide.go/commit/c5e0e7e) Temporarily change version to retracted (#175) +- [157d746](https://github.com/oxidecomputer/oxide.go/commit/157d746) [github] Feature request issue + template (#178) +- [0dea647](https://github.com/oxidecomputer/oxide.go/commit/0dea647) [github] Add issue templates + (#177) +- [642f5f4](https://github.com/oxidecomputer/oxide.go/commit/642f5f4) Update to upcoming version + (#176) +- [c5e0e7e](https://github.com/oxidecomputer/oxide.go/commit/c5e0e7e) Temporarily change version to + retracted (#175) - [9e77c0e](https://github.com/oxidecomputer/oxide.go/commit/9e77c0e) Fix version retraction (#174) # v0.1.0-beta2 (2023/Dec/18) ### Breaking changes -- **ListAll methods:** These methods now return slices instead of a pointer to a slice. [#150](https://github.com/oxidecomputer/oxide.go/pull/150) -- **Error handling:** The HTTPError type has been modified to include the HTTP response and the API's ErrorResponse type. [#145](https://github.com/oxidecomputer/oxide.go/pull/145) -- **context.Context support:** Callers are now able to specify cancellation or timeout logic. Method signatures have been modified to enable this feature. [#144](https://github.com/oxidecomputer/oxide.go/pull/144) -- **Fix generated numeric types:** Some numeric types differed to the OpenAPI spec. They are now consistent. [#142](https://github.com/oxidecomputer/oxide.go/pull/142) +- **ListAll methods:** These methods now return slices instead of a pointer to a slice. + [#150](https://github.com/oxidecomputer/oxide.go/pull/150) +- **Error handling:** The HTTPError type has been modified to include the HTTP response and the + API's ErrorResponse type. [#145](https://github.com/oxidecomputer/oxide.go/pull/145) +- **context.Context support:** Callers are now able to specify cancellation or timeout logic. Method + signatures have been modified to enable this feature. + [#144](https://github.com/oxidecomputer/oxide.go/pull/144) +- **Fix generated numeric types:** Some numeric types differed to the OpenAPI spec. They are now + consistent. [#142](https://github.com/oxidecomputer/oxide.go/pull/142) ### Bug fixes -- **Fix delete VPC firewall rules:** By removing `omitempty` when parsing the rules, we are able to pass an empty array to delete all firewall rules. [#158](https://github.com/oxidecomputer/oxide.go/pull/158) +- **Fix delete VPC firewall rules:** By removing `omitempty` when parsing the rules, we are able to + pass an empty array to delete all firewall rules. + [#158](https://github.com/oxidecomputer/oxide.go/pull/158) ### List of commits -- [9a7cd14](https://github.com/oxidecomputer/oxide.go/commit/9a7cd14) Update version for next release (#171) -- [f95114c](https://github.com/oxidecomputer/oxide.go/commit/f95114c) Update to omicron 5827188 (#169) -- [4350767](https://github.com/oxidecomputer/oxide.go/commit/4350767) Bump github.com/getkin/kin-openapi from 0.121.0 to 0.122.0 (#163) -- [ad617b2](https://github.com/oxidecomputer/oxide.go/commit/ad617b2) Bump actions/setup-go from 4 to 5 (#160) +- [9a7cd14](https://github.com/oxidecomputer/oxide.go/commit/9a7cd14) Update version for next + release (#171) +- [f95114c](https://github.com/oxidecomputer/oxide.go/commit/f95114c) Update to omicron 5827188 + (#169) +- [4350767](https://github.com/oxidecomputer/oxide.go/commit/4350767) Bump + github.com/getkin/kin-openapi from 0.121.0 to 0.122.0 (#163) +- [ad617b2](https://github.com/oxidecomputer/oxide.go/commit/ad617b2) Bump actions/setup-go from 4 + to 5 (#160) - [a594c9d](https://github.com/oxidecomputer/oxide.go/commit/a594c9d) Fix Makefile (#162) -- [d342cda](https://github.com/oxidecomputer/oxide.go/commit/d342cda) Update to Omicron 75cdeeb (#159) -- [fdcdc66](https://github.com/oxidecomputer/oxide.go/commit/fdcdc66) Fix VPC firewall rules delete action (#158) -- [e68d19a](https://github.com/oxidecomputer/oxide.go/commit/e68d19a) Bump github.com/getkin/kin-openapi from 0.120.0 to 0.121.0 (#154) -- [dcac177](https://github.com/oxidecomputer/oxide.go/commit/dcac177) Implement changelog automation and makefile clean up (#152) -- [ff50f82](https://github.com/oxidecomputer/oxide.go/commit/ff50f82) Retract unecessary versions (#151) -- [469b142](https://github.com/oxidecomputer/oxide.go/commit/469b142) Do not return pointer on ListAll methods (#150) -- [e20dc58](https://github.com/oxidecomputer/oxide.go/commit/e20dc58) Update SDK to Omicron f513182 (#149) -- [1c58324](https://github.com/oxidecomputer/oxide.go/commit/1c58324) Improved error handling with HTTPError type (#145) -- [9cac5e9](https://github.com/oxidecomputer/oxide.go/commit/9cac5e9) oxide: support specifying a context.Context (#144) -- [2bfa4c0](https://github.com/oxidecomputer/oxide.go/commit/2bfa4c0) Simplify detection of a list endpoint (#143) -- [772d387](https://github.com/oxidecomputer/oxide.go/commit/772d387) Fix generated numeric types (#142) -- [45e76db](https://github.com/oxidecomputer/oxide.go/commit/45e76db) Update README to reflect current methods (#141) -- [1a52f43](https://github.com/oxidecomputer/oxide.go/commit/1a52f43) Bump github.com/getkin/kin-openapi from 0.119.0 to 0.120.0 (#136) -- [7d2566a](https://github.com/oxidecomputer/oxide.go/commit/7d2566a) Bump actions/checkout from 3 to 4 (#135) - +- [d342cda](https://github.com/oxidecomputer/oxide.go/commit/d342cda) Update to Omicron 75cdeeb + (#159) +- [fdcdc66](https://github.com/oxidecomputer/oxide.go/commit/fdcdc66) Fix VPC firewall rules delete + action (#158) +- [e68d19a](https://github.com/oxidecomputer/oxide.go/commit/e68d19a) Bump + github.com/getkin/kin-openapi from 0.120.0 to 0.121.0 (#154) +- [dcac177](https://github.com/oxidecomputer/oxide.go/commit/dcac177) Implement changelog automation + and makefile clean up (#152) +- [ff50f82](https://github.com/oxidecomputer/oxide.go/commit/ff50f82) Retract unecessary versions + (#151) +- [469b142](https://github.com/oxidecomputer/oxide.go/commit/469b142) Do not return pointer on + ListAll methods (#150) +- [e20dc58](https://github.com/oxidecomputer/oxide.go/commit/e20dc58) Update SDK to Omicron f513182 + (#149) +- [1c58324](https://github.com/oxidecomputer/oxide.go/commit/1c58324) Improved error handling with + HTTPError type (#145) +- [9cac5e9](https://github.com/oxidecomputer/oxide.go/commit/9cac5e9) oxide: support specifying a + context.Context (#144) +- [2bfa4c0](https://github.com/oxidecomputer/oxide.go/commit/2bfa4c0) Simplify detection of a list + endpoint (#143) +- [772d387](https://github.com/oxidecomputer/oxide.go/commit/772d387) Fix generated numeric types + (#142) +- [45e76db](https://github.com/oxidecomputer/oxide.go/commit/45e76db) Update README to reflect + current methods (#141) +- [1a52f43](https://github.com/oxidecomputer/oxide.go/commit/1a52f43) Bump + github.com/getkin/kin-openapi from 0.119.0 to 0.120.0 (#136) +- [7d2566a](https://github.com/oxidecomputer/oxide.go/commit/7d2566a) Bump actions/checkout from 3 + to 4 (#135) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6daac5b..c55ce1b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,13 +2,13 @@ ## Generating the SDK -You can trigger a build with the GitHub action to generate the client. This will -automatically update the client to the latest version based on the Omicron commit hash -in the [`VERSION_OMICRON`](./VERSION_OMICRON) file. +You can trigger a build with the GitHub action to generate the client. This will automatically +update the client to the latest version based on the Omicron commit hash in the +[`VERSION_OMICRON`](./VERSION_OMICRON) file. -Alternatively, if you wish to generate the client locally with your changes, update -the [`VERSION_OMICRON`](./VERSION_OMICRON) file with the git hash of the omicron branch -you wish to generate the SDK from, and run: +Alternatively, if you wish to generate the client locally with your changes, update the +[`VERSION_OMICRON`](./VERSION_OMICRON) file with the git hash of the omicron branch you wish to +generate the SDK from, and run: ```bash $ make all @@ -17,13 +17,13 @@ $ make all ## Releasing a new SDK version 1. Update the [`VERSION`](./VERSION) file with the new version you want to release. - - The [`oxide/version.go`](./oxide/version.go) file will be automatically updated when you run `make generate` -2. Make sure you have run `make all` and pushed any changes. The release - will fail if running `make all` causes any changes to the generated - code. + - The [`oxide/version.go`](./oxide/version.go) file will be automatically updated when you run + `make generate` +2. Make sure you have run `make all` and pushed any changes. The release will fail if running + `make all` causes any changes to the generated code. 3. Generate the changelog with `make changelog`. 4. Run `make tag` from your local `main` branch. This is just a command for making a git tag formatted correctly with the version. 5. Push the tag (the result of `make tag` gives instructions for this) to this repository. -6. Everything else is triggered from the tag push. Just make sure all the tests - pass on the `main` branch before making and pushing a new tag. +6. Everything else is triggered from the tag push. Just make sure all the tests pass on the `main` + branch before making and pushing a new tag. diff --git a/Makefile b/Makefile index 4dc275a..627d548 100644 --- a/Makefile +++ b/Makefile @@ -41,6 +41,11 @@ fmt: ## Verifies all files have been `gofmt`ed. exit 1; \ fi +.PHONY: fmt-md +fmt-md: ## Formats markdown files with prettier. + @ echo "+ Formatting markdown files..." + @ npx prettier --write "**/*.md" + .PHONY: lint lint: tools ## Verifies `golangci-lint` passes. @ echo "+ Running Go linters..." diff --git a/README.md b/README.md index c54a6e5..16a9eec 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ _**IMPORTANT:** This SDK is under heavy development and will have constant break The Go [API](https://docs.oxide.computer) client for administrating an Oxide rack. -To contribute to this repository make sure you read the contributing [documentation](./CONTRIBUTING.md). +To contribute to this repository make sure you read the contributing +[documentation](./CONTRIBUTING.md). ## Getting started @@ -101,10 +102,9 @@ The client supports several authentication methods. client, err := oxide.NewClient(oxide.WithDefaultProfile()) ``` -When using profiles, the client reads from the Oxide credentials file -located at `$HOME/.config/oxide/credentials.toml`, or a custom directory via -`WithConfigDir`. +When using profiles, the client reads from the Oxide credentials file located at +`$HOME/.config/oxide/credentials.toml`, or a custom directory via `WithConfigDir`. -Options override environment variables. Configuring both profile and host/token -options is disallowed and will return an error, as will configuring both -`WithProfile` and `WithDefaultProfile`. +Options override environment variables. Configuring both profile and host/token options is +disallowed and will return an error, as will configuring both `WithProfile` and +`WithDefaultProfile`. From a3ee332305f43db52a9b444143a6bd517361ca36 Mon Sep 17 00:00:00 2001 From: Josh Carp Date: Wed, 14 Jan 2026 11:48:31 -0500 Subject: [PATCH 3/3] Move skills to generic .agents directory. --- {.claude => .agents}/skills/fetch-spec/SKILL.md | 5 +++++ .claude/skills | 1 + 2 files changed, 6 insertions(+) rename {.claude => .agents}/skills/fetch-spec/SKILL.md (91%) create mode 120000 .claude/skills diff --git a/.claude/skills/fetch-spec/SKILL.md b/.agents/skills/fetch-spec/SKILL.md similarity index 91% rename from .claude/skills/fetch-spec/SKILL.md rename to .agents/skills/fetch-spec/SKILL.md index 8e0bb18..584ad3d 100644 --- a/.claude/skills/fetch-spec/SKILL.md +++ b/.agents/skills/fetch-spec/SKILL.md @@ -54,6 +54,11 @@ If the user provides arguments like: Use `jq` or read the temp file to fulfill these queries. +## Output Format + +- **Default to YAML** when displaying schemas or endpoint details (use `yq` or `jq ... | yq -P`) +- Only use JSON or table format if the user explicitly requests it (e.g., `--json` or `--table`) + ## Notes - The spec is large (~2MB JSON), so summarize rather than output the entire thing diff --git a/.claude/skills b/.claude/skills new file mode 120000 index 0000000..2b7a412 --- /dev/null +++ b/.claude/skills @@ -0,0 +1 @@ +../.agents/skills \ No newline at end of file