Something went wrong. Try again.
Deployment and lifecycle management for Nix
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552{ "components": { "responses": {}, "schemas": { "Nix Cache": { "description": "A Nix binary cache", "example": { "public_key": "my.cache.org:1111111111111111", "sid": "example4ser3adju75ddusbr", "url": "https://my.cache.org" }, "properties": { "public_key": { "description": "Trusted public key for signed NARs", "type": "string", "x-struct": null, "x-validate": null }, "sid": { "description": "sid of the nix cache", "readOnly": true, "type": "string", "x-struct": null, "x-validate": null }, "url": { "description": "URL to binary cache", "type": "string", "x-struct": null, "x-validate": null } }, "required": [ "name", "seed_type" ], "title": "Nix Cache", "type": "object", "x-struct": "Elixir.SowerWeb.Schemas.Nix.Cache", "x-validate": null }, "Seed": { "description": "A seed is an installable unit", "example": { "id": "example4ser3adju75ddusbr", "name": "myhost", "seed_type": "nixos" }, "properties": { "name": { "description": "Name of the seed", "type": "string", "x-struct": null, "x-validate": null }, "seed_type": { "description": "Type of the seed", "enum": [ "nixos", "home-manager", "nix-darwin" ], "type": "string", "x-struct": null, "x-validate": null }, "sid": { "description": "sid of the seed", "readOnly": true, "type": "string", "x-struct": null, "x-validate": null } }, "required": [ "name", "seed_type" ], "title": "Seed", "type": "object", "x-struct": "Elixir.SowerWeb.Schemas.Seed", "x-validate": null }, "StorePath": { "description": "A store path is a Nix store path that can by installed by a client", "example": { "path": "/nix/store/examplehxpf8d7x5ys5p9v0z9x587hs1-...", "path_digest": "examplehxpf8d7x5ys5p9v0z9x587hs1" }, "properties": { "path": { "description": "Nix store path", "type": "string", "x-struct": null, "x-validate": null }, "path_digest": { "description": "id of the store path", "readOnly": true, "type": "string", "x-struct": null, "x-validate": null } }, "required": [ "path" ], "title": "StorePath", "type": "object", "x-struct": "Elixir.SowerWeb.Schemas.StorePath", "x-validate": null } }, "securitySchemes": { "authorization": { "bearerFormat": "sower", "description": "sower api token", "scheme": "bearer", "type": "http" } } }, "info": { "title": "sower", "version": "0.4.5" }, "openapi": "3.0.0", "paths": { "/api/nix/caches": { "get": { "callbacks": {}, "operationId": "ListNixCaches", "parameters": [], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Nix Cache" }, "type": "array", "x-struct": null, "x-validate": null } } }, "description": "Nix Cache response" }, "401": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Unauthorized" } }, "summary": "List Nix Caches", "tags": [] } }, "/api/seeds": { "get": { "callbacks": {}, "operationId": "ListSeeds", "parameters": [ { "description": "Seed name", "example": "host1", "in": "query", "name": "name", "required": false, "schema": { "type": "string", "x-struct": null, "x-validate": null } }, { "description": "Seed type (nixos, home-manager, etc.)", "example": "nixos", "in": "query", "name": "seed_type", "required": false, "schema": { "type": "string", "x-struct": null, "x-validate": null } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/Seed" }, "type": "array", "x-struct": null, "x-validate": null } } }, "description": "Seed response" }, "401": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Unauthorized" }, "404": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Seed error response" } }, "summary": "List Seeds", "tags": [] }, "post": { "callbacks": {}, "operationId": "NewSeed", "parameters": [], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Seed" } } }, "description": "Seed params", "required": false }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Seed" } } }, "description": "Seed response" }, "401": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Unauthorized" }, "409": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Seed conflict response" } }, "summary": "New Seed", "tags": [] } }, "/api/seeds/{sid}": { "get": { "callbacks": {}, "operationId": "GetSeed", "parameters": [ { "description": "Seed SID", "example": "example4ser3adju75ddusbr", "in": "path", "name": "sid", "required": true, "schema": { "type": "string", "x-struct": null, "x-validate": null } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Seed" } } }, "description": "Seed response" }, "401": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Unauthorized" }, "404": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Seed error response" } }, "summary": "Get Seed", "tags": [] } }, "/api/seeds/{sid}/paths": { "post": { "callbacks": {}, "operationId": "NewSeedStorePath", "parameters": [ { "description": "Seed SID", "example": "example4ser3adju75ddusbr", "in": "path", "name": "sid", "required": true, "schema": { "type": "string", "x-struct": null, "x-validate": null } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StorePath" } } }, "description": "Seed params", "required": false }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StorePath" } } }, "description": "Seed response" }, "401": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Unauthorized" } }, "summary": "New Seed Store Path", "tags": [] } }, "/api/seeds/{sid}/paths/latest": { "get": { "callbacks": {}, "operationId": "LatestStorePathBySeed", "parameters": [ { "description": "Seed SID", "example": "example4ser3adju75ddusbr", "in": "path", "name": "sid", "required": true, "schema": { "type": "string", "x-struct": null, "x-validate": null } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StorePath" } } }, "description": "Seed response" }, "401": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Unauthorized" }, "404": { "content": { "application/json": { "schema": { "properties": { "error": { "type": "string", "x-struct": null, "x-validate": null } }, "type": "object", "x-struct": null, "x-validate": null } } }, "description": "Store Path error response" } }, "summary": "Get latest Store Path for a Seed", "tags": [] } } }, "security": [ { "authorization": [] } ], "servers": [ { "url": "http://localhost:4002" } ], "tags": []}