Commit Graph

210 Commits

Author SHA1 Message Date
liffy 4e2dcc5365
Generate a Client method for Dropshot websocket channels (#183)
Generated methods return `ResponseValue<reqwest::Upgrade`, which may be
passed to a websocket protocol implementation such as
`tokio_tungstenite::WebSocketStream::from_raw_stream(rv.into_inner(), ...)`
for the purpose of implementing against the raw websocket connection, but
may later be extended as a generic to allow higher-level channel message
definitions.

Per the changelog, consumers will need to depend on reqwest 0.11.12 or
newer for HTTP Upgrade support, as well as base64 and rand if any
endpoints are websocket channels:
```
[dependencies]
reqwest = { version = "0.11.12" features = ["json", "stream"] }
base64 = "0.13"
rand = "0.8"
```

Co-authored-by: lif <>
2022-09-28 13:40:07 -07:00
dependabot[bot] c9a1a224e8
Bump unicode-ident from 1.0.3 to 1.0.4 (#195)
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident) from 1.0.3 to 1.0.4.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.3...1.0.4)

---
updated-dependencies:
- dependency-name: unicode-ident
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-19 11:10:59 -07:00
Adam H. Leventhal af1d01c264 starting progenitor 0.2.1-dev after releasing 0.2.0 2022-09-10 17:19:08 -07:00
Adam H. Leventhal 96179efc18 release progenitor 0.2.0 2022-09-10 17:16:50 -07:00
Adam Leventhal 7e5dc6586c
gussy up docs for release (#193)
make TryInto use fully specified as std::convert::TryInto
2022-09-10 17:15:14 -07:00
Adam H. Leventhal ad8be1fdd5 update to typify 0.0.10 2022-09-10 09:41:07 -07:00
Adam Leventhal eac966effc
move format checking from the command to the library (#179) 2022-08-29 11:16:34 -07:00
Adam Leventhal fa4e09f00a
sync w/ typify and add a test (#178) 2022-08-27 09:31:35 -07:00
Adam Leventhal e79ac19ae7
Add prelude for Client and extension traits (when they exist) (#176) 2022-08-27 08:23:02 -07:00
Adam Leventhal e4221a1350
Typify update for builder structs (#171) 2022-08-18 11:58:55 -07:00
dependabot[bot] 7244f4a6f0
Bump unicode-ident from 1.0.2 to 1.0.3 (#161)
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.2...1.0.3)

---
updated-dependencies:
- dependency-name: unicode-ident
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-10 09:58:27 -07:00
Karen Cárcamo ba00230176
Derive Debug for types (#145)
* Derive Debug for client and types

* run tests

* update changelog

* refactor
2022-08-03 13:18:43 +12:00
Adam Leventhal ea5a6a5a79
update nexus and typify (#142) 2022-07-26 21:23:01 -07:00
Adam H. Leventhal 4dce0641e2 typos 2022-07-20 17:03:25 -07:00
Adam Leventhal bfd194f39c
Change builder methods for setting a parameter with type T to accept a TryInto<T> (#133)
This makes constrained types a bit more
ergonomic and will allow us to accept fallible builders more easily
2022-07-18 11:55:21 -07:00
dependabot[bot] 244972129b
Bump unicode-ident from 1.0.1 to 1.0.2 (#131)
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.1...1.0.2)

---
updated-dependencies:
- dependency-name: unicode-ident
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-17 21:29:06 -07:00
Adam H. Leventhal a149b40923 missing quotes on regress version 2022-07-17 09:54:16 -07:00
Joshua M. Clulow 8ad09386a7
code generation fixes after 03e2cfad3c (#124) 2022-07-15 13:59:09 -07:00
Adam Leventhal 0c7cace799
add context to error messages (#127) 2022-07-14 21:25:48 -07:00
Adam Leventhal 9f6f940705
update nexus openapi (#126) 2022-07-14 20:59:36 -07:00
dependabot[bot] 75519247fa
Bump typify from `7b5f72b` to `f58c5e2` (#117)
* Bump typify from `7b5f72b` to `f58c5e2`

Bumps [typify](https://github.com/oxidecomputer/typify) from `7b5f72b` to `f58c5e2`.
- [Release notes](https://github.com/oxidecomputer/typify/releases)
- [Commits](7b5f72b1e4...f58c5e23b1)

---
updated-dependencies:
- dependency-name: typify
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>

* fixups and output update

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adam H. Leventhal <ahl@oxide.computer>
2022-07-12 10:57:06 -07:00
dependabot[bot] 6769899bfc
Bump hyper from 0.14.19 to 0.14.20 (#114)
Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.19 to 0.14.20.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/v0.14.20/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.19...v0.14.20)

---
updated-dependencies:
- dependency-name: hyper
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-11 14:00:13 -07:00
dependabot[bot] 6b178efb3e
Bump regex from 1.5.6 to 1.6.0 (#115)
Bumps [regex](https://github.com/rust-lang/regex) from 1.5.6 to 1.6.0.
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.5.6...1.6.0)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-11 14:00:08 -07:00
Joshua M. Clulow 6e90509eef
improved template parsing (#111) 2022-07-08 16:54:53 -07:00
Adam Leventhal 03e2cfad3c
add support for application/x-www-form-urlencoded bodies (#109)
* add support for application/x-www-form-urlencoded bodies

* self review

* alphabetizing

* remove commented code

* update changelog
2022-07-07 18:35:36 -07:00
Adam Leventhal 20e80c6312
fix typify dependency on github (#108) 2022-07-05 10:42:01 -07:00
Adam Leventhal 6796e0c1ca
extra derives are accidentally ignored (#105) 2022-07-02 22:28:06 -07:00
Adam Leventhal 9b28ac87c6
add an optional builder pattern as well as extension traits for tags when using the builder interface (#86) 2022-07-02 19:09:38 -07:00
dependabot[bot] 9e84bde032
Bump indexmap from 1.8.2 to 1.9.1 (#99)
Bumps [indexmap](https://github.com/bluss/indexmap) from 1.8.2 to 1.9.1.
- [Release notes](https://github.com/bluss/indexmap/releases)
- [Changelog](https://github.com/bluss/indexmap/blob/master/RELEASES.md)
- [Commits](https://github.com/bluss/indexmap/compare/1.8.2...1.9.1)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 19:05:58 -07:00
dependabot[bot] feb72e35bc
Bump rustfmt-wrapper from 0.1.0 to 0.2.0 (#97)
Bumps [rustfmt-wrapper](https://github.com/oxidecomputer/rustfmt-wrapper) from 0.1.0 to 0.2.0.
- [Release notes](https://github.com/oxidecomputer/rustfmt-wrapper/releases)
- [Changelog](https://github.com/oxidecomputer/rustfmt-wrapper/blob/main/CHANGELOG.adoc)
- [Commits](https://github.com/oxidecomputer/rustfmt-wrapper/compare/v0.1.0...v0.2.0)

---
updated-dependencies:
- dependency-name: rustfmt-wrapper
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 18:56:22 -07:00
dependabot[bot] 25b284f3dc
Bump http from 0.2.7 to 0.2.8 (#89)
Bumps [http](https://github.com/hyperium/http) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/hyperium/http/releases)
- [Changelog](https://github.com/hyperium/http/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/http/compare/v0.2.7...v0.2.8)

---
updated-dependencies:
- dependency-name: http
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-02 09:59:30 -07:00
dependabot[bot] f4ca5ba79f
Bump hyper from 0.14.18 to 0.14.19 (#78)
Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.18 to 0.14.19.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.18...v0.14.19)

---
updated-dependencies:
- dependency-name: hyper
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-01 12:59:17 -07:00
Adam Leventhal 24fb7b9611
switch from unicode_xid to unicode_ident (#73) 2022-05-23 08:56:35 -07:00
Adam Leventhal 3bc3d5972b
update nexus spec (#72) 2022-05-23 08:49:37 -07:00
dependabot[bot] 1ff7a900fa
Bump typify from 0.0.7 to 0.0.8 (#69)
* Bump typify from 0.0.7 to 0.0.8

Bumps [typify](https://github.com/oxidecomputer/typify) from 0.0.7 to 0.0.8.
- [Release notes](https://github.com/oxidecomputer/typify/releases)
- [Changelog](https://github.com/oxidecomputer/typify/blob/main/CHANGELOG.adoc)
- [Commits](https://github.com/oxidecomputer/typify/commits)

---
updated-dependencies:
- dependency-name: typify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* overwrite

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adam H. Leventhal <ahl@oxide.computer>
2022-05-21 21:22:10 -07:00
Adam Leventhal eec8526ba5
cleanup and documentation (#67) 2022-05-21 18:00:05 -07:00
Adam Leventhal 3cd1eae3f5
improve docs and uuid version handling (#65) 2022-05-20 14:52:37 -07:00
dependabot[bot] 4b15f8a607
Bump typify from 0.0.6 to 0.0.7 (#61)
* Bump typify from 0.0.6 to 0.0.7

Bumps [typify](https://github.com/oxidecomputer/typify) from 0.0.6 to 0.0.7.
- [Release notes](https://github.com/oxidecomputer/typify/releases)
- [Changelog](https://github.com/oxidecomputer/typify/blob/main/CHANGELOG.adoc)
- [Commits](https://github.com/oxidecomputer/typify/compare/v0.0.6...v0.0.7)

---
updated-dependencies:
- dependency-name: typify
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* nudge to uuid v1.0.0

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Adam H. Leventhal <ahl@oxide.computer>
2022-05-18 15:18:52 -07:00
dependabot[bot] 0ca0630c9e
Bump hyper from 0.14.17 to 0.14.18 (#56)
Bumps [hyper](https://github.com/hyperium/hyper) from 0.14.17 to 0.14.18.
- [Release notes](https://github.com/hyperium/hyper/releases)
- [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.17...v0.14.18)

---
updated-dependencies:
- dependency-name: hyper
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-17 10:22:46 -07:00
Adam H. Leventhal eb14e8bbb8 starting progenitor 0.1.2-dev after releasing 0.1.1 2022-05-13 10:49:50 -07:00
Adam H. Leventhal 160190ff5a update to 0.1.1 2022-05-13 10:30:50 -07:00
Adam Leventhal 131ad61e6b
prep for initial release (#51) 2022-05-12 16:18:12 -07:00
Adam Leventhal 1af79ebec7
honor default values for struct properties (#50) 2022-05-12 15:07:48 -07:00
Adam Leventhal 7f1b98f7b1
pull in the most recent typify (#44)
change symbol sanitization accordingly (use heck rather than convert_case)
fix: OpenAPI -> JSON Schema conversion was losing title and docs
remove assert that there are no tag (but still ignore them)
2022-05-09 17:30:08 -07:00
Adam Leventhal bbf81dfe7d
reorganize some code in anticipation of some larger changes (#40) 2022-04-01 22:30:23 -07:00
Adam Leventhal 75348207d7
improve rustdoc output for generated crates (#37) 2022-03-17 23:54:10 -07:00
Adam Leventhal ea80069ef3
Handle byte streams for both success and error responses (#35) 2022-03-15 16:11:47 -07:00
Adam Leventhal ae7c178e21
Correct renaming of path component identifiers (#34) 2022-03-08 14:31:56 -08:00
Adam Leventhal 305635e779
update (#33) 2022-03-07 23:22:44 -08:00
Adam Leventhal 579260a943
correct handling of parameters (#32)
- improve parameter handling for names that are invalid rust identifiers
- fix broken logic for non-optional query parameters
2022-03-04 10:58:16 -08:00
Adam Leventhal 25192b5dc1
Add a wrapper types for success and error responses (#26) 2022-02-08 08:59:38 -08:00
Adam H. Leventhal f1f9e2e938 improve santization 2022-01-16 09:09:30 -08:00
Adam Leventhal aff25f2292
Allow consumers to specify additional derive macros for generated types (#21) 2022-01-14 18:01:59 -08:00
Adam Leventhal e47fc93748
generate iterators over dropshot paginated interfaces (#19)
* Adds support for interating with Streams over interfaces that are tagged
with the x-dropshot-pagination extension. This requires clients to use
the futures crate.

Adds tests that compile generated clients.

Updates nexus.json to reflect a more recent omicron API.

Changes all generated methods to have a lifetime ('a) bound on all
references. This isn't necessary for most methods, but greatly
simplifies generation of the associated paginated interface.
2022-01-05 12:02:46 -08:00
Adam Leventhal e58ebd18fa
introduce an intermediate form (#18)
introduce an intermediate form; this is going to be used to generate a few different things:
- an interator interface for paginated APIs; the IR will let us re-use
  the typify types
- a CLI generator that will generate calls into the generated client
- an automated test harness that will validate the generated client
  against a mock server
2021-12-09 18:15:24 -08:00
Adam H. Leventhal 75b224c047 Handle operations whose response is a `null` 2021-11-09 23:27:07 -08:00
Adam Leventhal a3fbbc06ba
fixes to support omicron clients (#14) 2021-11-06 23:24:03 -07:00
Adam Leventhal 05dcf08091
update for typify (#13) 2021-11-02 11:16:55 -07:00
Adam Leventhal 7934be90b9
a variety of improvements to support omicron clients (#12)
- add the start of a client support crate
- add support for pre/post request hooks with consumer-specific data
- suggest type names for parameter and response types in case those
  types are unnamed
- handle more reference types by resolving them properly
- improve optional parameter generation
2021-10-29 07:16:39 -07:00
Adam Leventhal 97857c347c
convert from executable -> executable + library with macro and builder options (#9) 2021-10-17 10:40:22 -07:00