openstack 0.6.0

OpenStack SDK for Rust
Documentation
# Change Log

## 0.6.0 (2025-01-05)

#### Breaking Changes

* **compute:**  rework the server's flavor field handling (closes #146) ([febff387]https://github.com/dtantsur/rust-openstack/commit/febff3876ccdfb3280d4b8b3a1d4734fbfc35ba0)

#### Features

*   update to osauth 0.5.0 ([25be88d0]https://github.com/dtantsur/rust-openstack/commit/25be88d0b8dd6ae449b15032ac2ac4644d37b534)
* **baremetal:**  support reading baremetal nodes ([6c6eb458]https://github.com/dtantsur/rust-openstack/commit/6c6eb458031c5f1858eefe23045036dcdd2c024d)
* **block-storage:**  Add Block Storage API (#151) ([318cba3e]https://github.com/dtantsur/rust-openstack/commit/318cba3ea314c65fd4586ffc7f8184b42302cbd9)
* **compute:**
  *  explicit get_console_output ([e9ceafb9]https://github.com/dtantsur/rust-openstack/commit/e9ceafb9fb00f55e816c70a12dd64939352a5d8f)
  *  add missing fields to public API ([e76c99dc]https://github.com/dtantsur/rust-openstack/commit/e76c99dc112da681531fb0bb8f2346eb42953ddf)
  *  add all function to DetailedServerQuery ([6b614260]https://github.com/dtantsur/rust-openstack/commit/6b61426086a8f3fdd5f84f52dc96578d78f3b5aa)
  *  add all_tenants function to ServerQuery implementation ([19417caa]https://github.com/dtantsur/rust-openstack/commit/19417caa952899fa187cd767bc865285aba48e10)
  *  rework the server's flavor field handling (closes #146) ([febff387]https://github.com/dtantsur/rust-openstack/commit/febff3876ccdfb3280d4b8b3a1d4734fbfc35ba0)

#### Bug Fixes

* **cargo:**  add missing identity feature ([4269a20f]https://github.com/dtantsur/rust-openstack/commit/4269a20fe4ecfaae98e2ad7034504db905a7aa42)
* **ci:**  change minimal rust version to test to 1.70 ([5e3b183f]https://github.com/dtantsur/rust-openstack/commit/5e3b183f42ef3eaf81d4a6d3219ebaa1e3dac89a)
* **common:**
  *  change SnapshotRef feature to block-storage-snapshot ([f42fe8c4]https://github.com/dtantsur/rust-openstack/commit/f42fe8c49f986a436226a76d86a08ff269c671b2)
  *  change VolumeRef feature to block-storage ([6ef5ba83]https://github.com/dtantsur/rust-openstack/commit/6ef5ba833827ee2b5e4943b9753774f629cf4ef1)
* **github:**  this replaces the setup-rust action with setup-rust-toolchain ([800b1711]https://github.com/dtantsur/rust-openstack/commit/800b1711ae9dfe08535294f463b64dd73e79764b)

## 0.5.0 (2023-03-10)

This is a very significant release that has breaking changes everywhere in
the public API because of the switch to async/await.

#### Features

*   reimport Waiter and drop WaiterCurrentState ([1ba18d91]https://github.com/dtantsur/rust-openstack/commit/1ba18d91e95d6db057b60106d747acbaecafa370)
*   move to `async/.await` (#131) ([88a964dc]https://github.com/dtantsur/rust-openstack/commit/88a964dc9a9a219114598e9054dc6e76e9e30705)
*   bump MSRV to 1.58 (because of dependencies) ([19e0b7e8]https://github.com/dtantsur/rust-openstack/commit/19e0b7e8eb262d76b44c96022f27237258e2777a)

## 0.4.2  (2022-09-26)

No code changes, updated README and links on crates.io.

## 0.4.1  (2022-09-26)

#### Features

*   implement router api (#117) ([87887e6f]https://github.com/dtantsur/rust-openstack/commit/87887e6f26c2c61d245d25e05edc7e97a673841e)
* **object-storage:**  add hash to objects (#125) ([887895ca]https://github.com/dtantsur/rust-openstack/commit/887895ca770d71632db4f2812c2be45e4aeb4d3d)

## 0.4.0 (2020-05-23)

#### Breaking Changes

* Update to osauth 0.3.0 brings some breaking changes in `Session` and authentication. See
  [changelog]https://github.com/dtantsur/rust-osauth/blob/master/CHANGELOG.md#030-2020-05-21.
* When creating objects from a reader, the reader must be Sync.
* An endpoint interface is now an [InterfaceType]https://docs.rs/osauth/0.3.0/osauth/enum.InterfaceType.html
  rather than a string. Non-standard interfaces are now impossible.

#### Features

*   update to osauth 0.3, osproto 0.2 and reqwest 0.10 ([9ab38089]https://github.com/dtantsur/rust-openstack/commit/9ab38089f925434ea33dc9b2c5d4ca8a23d0eec5, breaks [#]https://github.com/dtantsur/rust-openstack/issues/)

## 0.3.3 (2020-04-15)

#### Features

* **compute:**  support OS-EXT-SRV-ATTR:instance_name ([40546499]https://github.com/dtantsur/rust-openstack/commit/4054649930e864fc67979c698d3e180ef24404c1)
* **object-storage:**
  *  add support for X-Delete-After and X-Delete-At (#109) ([a65598c5]https://github.com/dtantsur/rust-openstack/commit/a65598c55491e8fa664317278a5cfd78f5ed0b65)
  *  add url method to Object (#110) ([e465058f]https://github.com/dtantsur/rust-openstack/commit/e465058f5464eb264bb875a045fff205029e0675)

## 0.3.2 (2019-12-03)

* **compute:** Allow to set availability zone for new servers
* **network:**
  * Derive Eq and PartialEq for trivial networking API protocol bits
  * Allow setting 'shared' on NewNetwork

## 0.3.1 (2019-10-13)

#### Features

*   implement basic Object Storage API ([92d730f1]https://github.com/dtantsur/rust-openstack/commit/92d730f1399acaf89699647a4033540d37fef70b)
*   support rustls instead of native-tls to avoid non-Rust dependencies (#96) ([24c8a0c43]https://github.com/dtantsur/rust-openstack/commit/24c8a0c43955cd75b082187d07fd207c02342efb)
* **compute:**  add config_drive, user_data and security_groups fields (#95) ([c58772aa]https://github.com/dtantsur/rust-openstack/commit/c58772aa2c9f28373d3a789cf47903aabddcaa79)

## 0.3.0 (2019-07-20)

#### Breaking Changes

*   switch to osauth for session and authentication ([61d55ec6]https://github.com/dtantsur/rust-openstack/commit/61d55ec61930988d650b0dfdc64d1cc4680d94ed)

    This is a major breaking change. Starting with 0.3.0, rust-openstack no
    longer contains the authentication code. Instead, the rust-osauth crate
    is used.

    The `Session` structure has been removed in favour of the synchronous
    session from rust-osauth.

    Most of removed structures are reimported in their old locations. However,
    `RequestBuilderExt` is gone and `AuthMethod` has been renamed to `AuthType`
    to match the official Python SDK.

*   bump fallible-iterator to 0.2 and update other dependencies ([7ecf317f]https://github.com/dtantsur/rust-openstack/commit/7ecf317f0d18e27818ee47a5a7bf73b677aad416

    The new version of fallible-iterator has slightly different public API.

## 0.2.3 (2019-02-16)

#### Features

* **compute:**  implement block device mapping (closes #76) ([19094080]https://github.com/dtantsur/rust-openstack/commit/19094080bdd08084a0c6cbe7026986f14cbeb64c)

#### Bug Fixes

*   allow inlining trivial accessors ([51a3286f]https://github.com/dtantsur/rust-openstack/commit/51a3286f4af43a0f321dfeed207d01f12572b137)
* **auth:**  do not fail when clouds.yaml contain unscoped entries ([b41666ce]https://github.com/dtantsur/rust-openstack/commit/b41666ce84fb8a9232488b6ad3554d0dd08450c4)
* **common:**  correctly parse JSON error messages (fixes #61) ([21b62c01]https://github.com/dtantsur/rust-openstack/commit/21b62c011fc52df1775d4d91b0f21d824bb82acd)

## 0.2.2 (2018-12-30)

#### Features

* **common:**  Support services without version discovery ([598ceabd]https://github.com/dtantsur/rust-openstack/commit/598ceabd179dc35171e52e82fbb67bda67d71a9b)
* **compute:**  finish creating key pairs, deprecate old names ([c88d7164]https://github.com/dtantsur/rust-openstack/commit/c88d71649173a3fb8075fe6a082035878487d194)
* **network:**  add missing Network.status() (fixes #27) ([f1dc2e28]https://github.com/dtantsur/rust-openstack/commit/f1dc2e288292a85da25fa1f7f2bc54b972543e53)

## 0.2.1 (2018-11-25)

#### Features

* **network:**
  *  updating networks (closes #50) ([d9c676de]https://github.com/dtantsur/rust-openstack/commit/d9c676de31d0bc75e6c102a7232f873c3dcb6b0a)
  *  updating subnets (closes #33) ([5e4fba5b]https://github.com/dtantsur/rust-openstack/commit/5e4fba5b14a9758d86150b4a759033dd0a249c73)

#### Bug Fixes

* **common:**
  *  only consider stable major versions ([825e371c]https://github.com/dtantsur/rust-openstack/commit/825e371ce58ec7d2c972acb8b46caa04c53878bb)
* **network:**
  *  validate and convert IDs when querying subnets and floating IPs ([87c9a57f]https://github.com/dtantsur/rust-openstack/commit/87c9a57f3ed4650e94d93525c94fa8c1e131b5e9)
  *  validate and convert network ID when querying ports ([88b61bff]https://github.com/dtantsur/rust-openstack/commit/88b61bffd0d2f52291bdbc0f92d8414ddfc2a890)

## 0.2.0 (2018-11-11)

#### Breaking Changes

* **auth:**
  * `AuthMethod::request` and `Session::request` now return `Result` with `RequestBuilder` from `reqwest` ([abed6bd7]https://github.com/dtantsur/rust-openstack/commit/abed6bd7da9a25c706dc3d5129ed39f52daf7d28)
  * `Identity` is now called `Password`, `PasswordAuth` was removed ([83dddc52]https://github.com/dtantsur/rust-openstack/commit/83dddc52d7b4f2a61a014bf9949a3237f2d85cf1)
  * `Password::new` and `NoAuth::new` now return the `Result<Error>` ([abed6bd7]https://github.com/dtantsur/rust-openstack/commit/abed6bd7da9a25c706dc3d5129ed39f52daf7d28)
* **common:**
  * The type parameter of `ResourceIterator` is now a `ResourceQuery`, not a resource ([a6c65463]https://github.com/dtantsur/rust-openstack/commit/a6c65463bd9a61c287a00945ef57fed1103e18eb)
  * `ResourceId` and `ListResources` replaced by new `ResourceQuery` ([a822aad3]https://github.com/dtantsur/rust-openstack/commit/a822aad38b69af263d2c7ae7561ff399d4d02bdb)
* **network:**
  * `Network::name()` is now `Option<String>` ([33177fc9]https://github.com/dtantsur/rust-openstack/commit/33177fc9262abe2242797ca25f08efbefca9785b)
* **session:**
  * The `ServiceInfo` structure is now private and cannot be accessed ([9742b2d5]https://github.com/dtantsur/rust-openstack/commit/9742b2d51d771e53a047b9b44d1f8efcb213458f)
  * Changed `ServiceType::api_version_headers` to `set_api_version_headers` ([abed6bd7]https://github.com/dtantsur/rust-openstack/commit/abed6bd7da9a25c706dc3d5129ed39f52daf7d28)
  * `Session.get_service_info` is replaced by more specific methods on `Session` ([9742b2d5]https://github.com/dtantsur/rust-openstack/commit/9742b2d51d771e53a047b9b44d1f8efcb213458f)

#### Features

*   update to reqwest 0.9 (some breaking changes) ([abed6bd7]https://github.com/dtantsur/rust-openstack/commit/abed6bd7da9a25c706dc3d5129ed39f52daf7d28)
* **auth:**
  *  simplify password authentication (fixes #8) ([83dddc52]https://github.com/dtantsur/rust-openstack/commit/83dddc52d7b4f2a61a014bf9949a3237f2d85cf1)
  *  support clouds.yaml ([ddda7bbb]https://github.com/dtantsur/rust-openstack/commit/ddda7bbbc6312246c85e6b6f4eead253a6722137)
* **common:**
  *  support for several major versions (first bits) ([80fb53c5]https://github.com/dtantsur/rust-openstack/commit/80fb53c58ba7ba5363fb6ee6bf0d906a662d7b80)
  *  derive Hash for ApiVersion and ErrorKind, Clone for Error (fixes #3) ([fbc9ac27]https://github.com/dtantsur/rust-openstack/commit/fbc9ac27d8deb5fdb23203a5cb8c19b988c6db12)
* **compute:**
  *  implement extra_specs and description for flavors ([48ed83cf]https://github.com/dtantsur/rust-openstack/commit/48ed83cfcbbcbc62cd0a82a2fd2c7f2ea2f64623)
  *  more server fields ([f439690f]https://github.com/dtantsur/rust-openstack/commit/f439690f991645fbc0bf88fd7794b5e2517344cf)
* **network:**
  *  creating subnets (#33) ([86c3ce3e]https://github.com/dtantsur/rust-openstack/commit/86c3ce3e5d5b7b6c3ed15b0b67ca66edbb161618)
  *  creating and deleting networks (#50) ([3e66df1e]https://github.com/dtantsur/rust-openstack/commit/3e66df1e1df3f0d2711a40a2fcf059281685876c)
  *  updating floating IPs (fixes #26) ([f9daad98]https://github.com/dtantsur/rust-openstack/commit/f9daad98a5d6d30fab904ec0868f45deee39fff4)
  *  creating floating IPs (#26) ([1fd3f1a9]https://github.com/dtantsur/rust-openstack/commit/1fd3f1a94e8128549ab1613edf714e8301ceabf1)
  *  getting, listing, deleting floating IPs (#26) ([5c214806]https://github.com/dtantsur/rust-openstack/commit/5c21480683e03f113c628b3124f0f6d3953234d0)
  *  updating ports ([2a7009b7]https://github.com/dtantsur/rust-openstack/commit/2a7009b77b446acea3b0188def934145bcd22305)
  *  accept fixed IP on port creation (fixes #28) ([dd9d361a]https://github.com/dtantsur/rust-openstack/commit/dd9d361a216fc557e2f94c644421b3364811afb9)
  *  rectify fixed IPs support in ports ([cb552ae7]https://github.com/dtantsur/rust-openstack/commit/cb552ae768d551baf8e155f9df2de67c1247d6d8)
  *  listing, getting, deleting subnets (#33) ([608448d2]https://github.com/dtantsur/rust-openstack/commit/608448d28e521bcbc2d83d00fc527497bc596bdb)
  *  creating and deleting ports (#28) ([01916711]https://github.com/dtantsur/rust-openstack/commit/019167113f4b115219a10bf59e90f1c6b70a6761)
  *  getting and listing ports (#28) ([f8f6fc58]https://github.com/dtantsur/rust-openstack/commit/f8f6fc587df5f56814e82bb037c6de02ccd046be)
* **session:**  stop exposing ServiceInfo ([9742b2d5]https://github.com/dtantsur/rust-openstack/commit/9742b2d51d771e53a047b9b44d1f8efcb213458f)

#### Bug Fixes

*   do not lookup by name in Refresh implementations ([5ecf0d44]https://github.com/dtantsur/rust-openstack/commit/5ecf0d447072404a0d06e6ece4ecd72dbad1f72c)
* **auth:**  avoid deprecated std::env::home_dir ([be49a3e0]https://github.com/dtantsur/rust-openstack/commit/be49a3e0425cf357319b32755202afea090c8ce7)
* **common:**  hide ResourceId and ListResources ([a822aad3]https://github.com/dtantsur/rust-openstack/commit/a822aad38b69af263d2c7ae7561ff399d4d02bdb)
* **compute:**  verify port supplied to NewServer ([13962afb]https://github.com/dtantsur/rust-openstack/commit/13962afbc68f5f2387aefa0b824611b3aba1d9d1)
* **network:**  network names are optional, change to Option<String> ([33177fc9]https://github.com/dtantsur/rust-openstack/commit/33177fc9262abe2242797ca25f08efbefca9785b)