# **`mock-scaleway` — the Scaleway Instance API v1, faithfully wrong.**
#
# A real HTTP server that answers the part of Scaleway's Instance API v1 a cloud
# guest calls (servers and their actions, volumes, snapshots, images, security
# groups and their rules, flexible IPs, user data, the product catalog), out of
# a state machine, so the Scaleway guest in monetize-impl is driven without an
# account, a key or a card. It is OPEN for the same reason mock-upcloud is: the
# API it imitates is public and the defects it reproduces are the provider's.
#
# It sits BESIDE mock-upcloud and reuses its machine seam (`kvm::GuestEngine`,
# `kvm::Machine`) and its container engine (`container::ContainerEngine`): one
# engine, two clouds in front of it. Both crates resolve from crates.io alone.
#
# cargo run -p mock-scaleway -- --port 8098 --speed 0
# SCW_API_URL=http://127.0.0.1:8098 SCW_SECRET_KEY=scw-mock-key …
[package]
name = "mock-scaleway"
description = "A faithful fake of the Scaleway Instance API v1 — its traps included — with mock-upcloud's container engine behind every server"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
repository = "https://git.gunnar.rs/nordisk/monetize"
license.workspace = true
authors.workspace = true
publish = false
[[bin]]
name = "mock-scaleway"
path = "src/bin/mock-scaleway.rs"
[dependencies]
serde.workspace = true
serde_json.workspace = true
# The machine seam and the container engine (one engine behind two cloud mocks).
mock-upcloud = { path = "../mock-upcloud" }
# No HTTP client in the dev-dependencies: the tests speak HTTP/1.1 over std's TcpStream
# (`mock_scaleway::client`), so the open lock gains nothing.