{ "openapi": "3.0.2", "info": { "title": "Pollination Server", "description": "Pollination Server OpenAPI Defintion", "version": "0.0.0", "contact": { "name": "PollinationSolutions", "url": "https://pollination.cloud", "email": "info@pollination.cloud" } }, "servers": [ { "url": "https://api.pollination.cloud", "description": "The production API server" }, { "url": "https://api.staging.pollination.cloud", "description": "The staging/Q&A API server" }, { "url": "http://localhost:8000", "description": "The local development server" } ], "paths": { "/accounts": { "get": { "tags": [ "Accounts" ], "summary": "List Accounts on the Pollination platform", "description": "List accounts", "operationId": "list_accounts", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "Search string to find accounts", "required": false, "schema": { "title": "Search Query", "type": "string", "description": "Search string to find accounts" }, "name": "search", "in": "query" }, { "description": "Whether the account is for a user or an org", "required": false, "schema": { "title": "Account Type", "type": "string", "description": "Whether the account is for a user or an org" }, "name": "type", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicAccountList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/accounts/{name}": { "get": { "tags": [ "Accounts" ], "summary": "Get an account by name", "description": "Retrieve an account by name", "operationId": "get_account", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/tokens": { "get": { "tags": [ "API Tokens" ], "summary": "List user API tokens", "description": "List API tokens for the authenticated user", "operationId": "list_tokens", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APITokenList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "API Tokens" ], "summary": "Create a new API token", "description": "Create a new API token", "operationId": "create_token", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APITokenCreate" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APITokenPrivate" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/user": { "get": { "tags": [ "User" ], "summary": "Get authenticated user profile.", "description": "Get authenticated user profile", "operationId": "get_me", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPrivate" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/user/roles": { "get": { "tags": [ "User" ], "summary": "Get the authenticated user roles", "operationId": "get_roles", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "title": "Response Get Roles User Roles Get", "type": "array", "items": { "type": "string" } } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/users": { "get": { "tags": [ "Users" ], "summary": "List Users", "operationId": "list_users", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "Username of the user to search for", "required": false, "schema": { "title": "Username", "type": "array", "items": { "type": "string" }, "description": "Username of the user to search for" }, "name": "username", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublicList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/check_username/{username}": { "get": { "tags": [ "Users" ], "summary": "Check if a username is already taken", "description": "Check if a username is already taken by a user or an org", "operationId": "check_username", "parameters": [ { "required": true, "schema": { "title": "Username", "type": "string" }, "name": "username", "in": "path" } ], "responses": { "200": { "description": "Username not taken", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/users/{name}": { "get": { "tags": [ "Users" ], "summary": "Get a specific user profile", "description": "Get a specific user profile by name", "operationId": "get_one_user", "parameters": [ { "required": true, "schema": { "title": "Username", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPublic" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/orgs": { "get": { "tags": [ "Orgs" ], "summary": "List Orgs", "description": "search for orgs using query parameters", "operationId": "list_orgs", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "You know, for search", "required": false, "schema": { "title": "Search query", "type": "array", "items": { "type": "string" }, "description": "You know, for search", "default": [] }, "name": "search", "in": "query" }, { "description": "The account name", "required": false, "schema": { "title": "Account Name", "type": "array", "items": { "type": "string" }, "description": "The account name", "default": [] }, "name": "name", "in": "query" }, { "description": "The ID of a user", "required": false, "schema": { "title": "Member ID", "type": "array", "items": { "type": "string" }, "description": "The ID of a user", "default": [] }, "name": "member", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "Orgs" ], "summary": "Create an Org", "description": "Create a new org.", "operationId": "create_org", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationCreate" } } }, "required": true }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "202": { "description": "Accepted" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{name}": { "get": { "tags": [ "Orgs" ], "summary": "Get an Org", "description": "Retrieve a org by name", "operationId": "get_org", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Organization" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "put": { "tags": [ "Orgs" ], "summary": "Update an Org", "description": "Update a org (must have org `owner` role)", "operationId": "update_org", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationUpdate" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Orgs" ], "summary": "Delete an Org", "description": "Delete a org (must have `admin` permission)", "operationId": "delete_org", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{name}/members": { "get": { "tags": [ "Orgs" ], "summary": "List organization members", "description": "Retrieve a org's members", "operationId": "get_org_members", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationMemberList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/orgs/{name}/members/{username}/{role}": { "patch": { "tags": [ "Orgs" ], "summary": "Add or update the role of an Org Member", "description": "Upsert a member role to the org (must have org `owner` role)", "operationId": "upsert_org_member", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Username", "type": "string" }, "name": "username", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/OrganizationRoleEnum" }, "name": "role", "in": "path" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{name}/members/{username}": { "delete": { "tags": [ "Orgs" ], "summary": "Remove an Org member", "description": "Remove a member from the org (must have org `owner` role)", "operationId": "delete_org_member", "parameters": [ { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Username", "type": "string" }, "name": "username", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{org_name}/teams": { "get": { "tags": [ "Teams" ], "summary": "List Teams", "description": "search for orgs using query parameters", "operationId": "list_org_teams", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "You know, for search", "required": false, "schema": { "title": "Search query", "type": "array", "items": { "type": "string" }, "description": "You know, for search" }, "name": "search", "in": "query" }, { "description": "The account name", "required": false, "schema": { "title": "Account Name", "type": "array", "items": { "type": "string" }, "description": "The account name" }, "name": "name", "in": "query" }, { "description": "The ID of a user", "required": false, "schema": { "title": "Member ID", "type": "array", "items": { "type": "string" }, "description": "The ID of a user" }, "name": "member", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Teams" ], "summary": "Create a Team", "description": "Create a new team (must be parent org member)", "operationId": "create_team", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamCreate" } } }, "required": true }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "202": { "description": "Accepted" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{org_name}/teams/{team_slug}": { "get": { "tags": [ "Teams" ], "summary": "Get a Team", "description": "Retrieve a team by name", "operationId": "get_team", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "required": true, "schema": { "title": "Team Slug", "type": "string" }, "name": "team_slug", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Team" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Teams" ], "summary": "Update a Team", "description": "Update a team (must have team or org `owner` role)", "operationId": "update_team", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "required": true, "schema": { "title": "Team Slug", "type": "string" }, "name": "team_slug", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamUpdate" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Teams" ], "summary": "Delete a Team", "description": "Delete a team (must have team or org `owner` role)", "operationId": "delete_team", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "required": true, "schema": { "title": "Team Slug", "type": "string" }, "name": "team_slug", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{org_name}/teams/{team_slug}/members": { "get": { "tags": [ "Teams" ], "summary": "List team members", "description": "Retrieve a tean's members", "operationId": "get_org_team_members", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "required": true, "schema": { "title": "Team Slug", "type": "string" }, "name": "team_slug", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMemberList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/orgs/{org_name}/teams/{team_slug}/members/{username}/{role}": { "patch": { "tags": [ "Teams" ], "summary": "Add or update the role of an Team Member", "description": "Upsert a member role to the team (must have org or team `owner` role)", "operationId": "upsert_org_team_member", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "required": true, "schema": { "title": "Team Slug", "type": "string" }, "name": "team_slug", "in": "path" }, { "required": true, "schema": { "title": "Username", "type": "string" }, "name": "username", "in": "path" }, { "required": true, "schema": { "$ref": "#/components/schemas/TeamRoleEnum" }, "name": "role", "in": "path" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/orgs/{org_name}/teams/{team_slug}/members/{username}": { "delete": { "tags": [ "Teams" ], "summary": "Remove a team member", "description": "Remove a member from the org (must have org `owner` role)", "operationId": "delete_org_team_member", "parameters": [ { "required": true, "schema": { "title": "Org Name", "type": "string" }, "name": "org_name", "in": "path" }, { "required": true, "schema": { "title": "Team Slug", "type": "string" }, "name": "team_slug", "in": "path" }, { "required": true, "schema": { "title": "Username", "type": "string" }, "name": "username", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/operators": { "get": { "tags": [ "Operators" ], "summary": "List operators", "operationId": "list_operators", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "You know, for search", "required": false, "schema": { "title": "Search query", "type": "array", "items": { "type": "string" }, "description": "You know, for search" }, "name": "search", "in": "query" }, { "description": "The account name", "required": false, "schema": { "title": "Repository Name", "type": "array", "items": { "type": "string" }, "description": "The account name" }, "name": "name", "in": "query" }, { "description": "Owner of the project", "required": false, "schema": { "title": "Repository Owner", "type": "array", "items": { "type": "string" }, "description": "Owner of the project" }, "name": "owner", "in": "query" }, { "description": "Boolean check for public/private projects", "required": false, "schema": { "title": "Public Repository", "type": "boolean", "description": "Boolean check for public/private projects" }, "name": "public", "in": "query" }, { "description": "A keyword to index the repository by", "required": false, "schema": { "title": "Repository Keywords", "type": "array", "items": { "type": "string" }, "description": "A keyword to index the repository by" }, "name": "keyword", "in": "query" }, { "description": "Filter by permission on given resource", "required": false, "schema": { "title": "Permission Name", "type": "array", "items": { "type": "string" }, "description": "Filter by permission on given resource" }, "name": "permission", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/operators/{owner}": { "post": { "tags": [ "Operators" ], "summary": "Create an Operator", "description": "Create a new operator.", "operationId": "create_operator", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryCreate" } } }, "required": true }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "202": { "description": "Accepted" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/operators/{owner}/{name}": { "get": { "tags": [ "Operators" ], "summary": "Get an operator", "description": "Retrieve an operator by name", "operationId": "get_operator", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Repository" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "put": { "tags": [ "Operators" ], "summary": "Update an Operator", "description": "Update an operator (must have `contribute` permission)", "operationId": "update_operator", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryUpdate" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Operators" ], "summary": "Delete an Operator", "description": "Delete an operator (must have `admin` permission)", "operationId": "delete_operator", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/operators/{owner}/{name}/tags": { "get": { "tags": [ "Operators" ], "summary": "Get an operator tags", "description": "Retrieve an operator by name", "operationId": "list_operator_tags", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryPackageList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "Operators" ], "summary": "Create a new Operator package", "description": "Create a new operator package version", "operationId": "create_operator_package", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewOperatorPackage" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/operators/{owner}/{name}/tags/{tag}": { "get": { "tags": [ "Operators" ], "summary": "Get an operator tag", "description": "Retrieve an operator tag by name and tag", "operationId": "get_operator_by_tag", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Tag", "type": "string" }, "name": "tag", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OperatorPackage" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/operators/{owner}/{name}/permissions": { "get": { "tags": [ "Operators" ], "summary": "Get operator access permissions", "description": "Retrieve a operator's access permissions (must have `contribute` permission)", "operationId": "get_operator_access_permissions", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "The type of access policy subject", "required": false, "schema": { "title": "Subject Type", "type": "array", "items": { "type": "string" }, "description": "The type of access policy subject" }, "name": "subject_type", "in": "query" }, { "description": "An access policy permission string", "required": false, "schema": { "title": "PERMISSION", "type": "array", "items": { "type": "string" }, "description": "An access policy permission string" }, "name": "permission", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryAccessPolicyList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Operators" ], "summary": "Remove a Repository permissions", "description": "Delete a operator's access policy (must have `admin` permission)", "operationId": "delete_operator_org_permission", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryPolicySubject" } } }, "required": true }, "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "patch": { "tags": [ "Operators" ], "summary": "Upsert a new permission to a operator", "description": "Upsert a operator's access policy (must have `admin` permission)", "operationId": "upsert_operator_permission", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryAccessPolicy" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/recipes": { "get": { "tags": [ "Recipes" ], "summary": "List recipes", "operationId": "list_recipes", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "You know, for search", "required": false, "schema": { "title": "Search query", "type": "array", "items": { "type": "string" }, "description": "You know, for search" }, "name": "search", "in": "query" }, { "description": "The account name", "required": false, "schema": { "title": "Repository Name", "type": "array", "items": { "type": "string" }, "description": "The account name" }, "name": "name", "in": "query" }, { "description": "Owner of the project", "required": false, "schema": { "title": "Repository Owner", "type": "array", "items": { "type": "string" }, "description": "Owner of the project" }, "name": "owner", "in": "query" }, { "description": "Boolean check for public/private projects", "required": false, "schema": { "title": "Public Repository", "type": "boolean", "description": "Boolean check for public/private projects" }, "name": "public", "in": "query" }, { "description": "A keyword to index the repository by", "required": false, "schema": { "title": "Repository Keywords", "type": "array", "items": { "type": "string" }, "description": "A keyword to index the repository by" }, "name": "keyword", "in": "query" }, { "description": "Filter by permission on given resource", "required": false, "schema": { "title": "Permission Name", "type": "array", "items": { "type": "string" }, "description": "Filter by permission on given resource" }, "name": "permission", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/recipes/{owner}": { "post": { "tags": [ "Recipes" ], "summary": "Create a Recipe", "description": "Create a new recipe.", "operationId": "create_recipe", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryCreate" } } }, "required": true }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "202": { "description": "Accepted" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/recipes/{owner}/{name}": { "get": { "tags": [ "Recipes" ], "summary": "Get a recipe", "description": "Retrieve a recipe by name", "operationId": "get_recipe", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Repository" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "put": { "tags": [ "Recipes" ], "summary": "Update a Recipe", "description": "Update a recipe (must have `contribute` permission)", "operationId": "update_recipe", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryUpdate" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Recipes" ], "summary": "Delete a Recipe", "description": "Delete a recipe (must have `admin` permission)", "operationId": "delete_recipe", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/recipes/{owner}/{name}/tags": { "get": { "tags": [ "Recipes" ], "summary": "Get a recipe tags", "description": "Retrieve a recipe by name", "operationId": "list_recipe_tags", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryPackageList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "Recipes" ], "summary": "Create a new Recipe package", "description": "Create a new recipe package version", "operationId": "create_recipe_package", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "required": false, "schema": { "title": "Authorization", "type": "string" }, "name": "authorization", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewRecipePackage" } } }, "required": true }, "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/recipes/{owner}/{name}/tags/{tag}": { "get": { "tags": [ "Recipes" ], "summary": "Get a recipe tag", "description": "Retrieve a recipe tag by name and tag", "operationId": "get_recipe_by_tag", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Tag", "type": "string" }, "name": "tag", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RecipePackage" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/recipes/{owner}/{name}/permissions": { "get": { "tags": [ "Recipes" ], "summary": "Get recipe access permissions", "description": "Retrieve a recipe's access permissions (must have `contribute` permission)", "operationId": "get_recipe_access_permissions", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "The type of access policy subject", "required": false, "schema": { "title": "Subject Type", "type": "array", "items": { "type": "string" }, "description": "The type of access policy subject" }, "name": "subject_type", "in": "query" }, { "description": "An access policy permission string", "required": false, "schema": { "title": "PERMISSION", "type": "array", "items": { "type": "string" }, "description": "An access policy permission string" }, "name": "permission", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryAccessPolicyList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Recipes" ], "summary": "Remove a Repository permissions", "description": "Delete a recipe's access policy (must have `admin` permission)", "operationId": "delete_recipe_org_permission", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryPolicySubject" } } }, "required": true }, "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "patch": { "tags": [ "Recipes" ], "summary": "Upsert a new permission to a recipe", "description": "Upsert a recipe's access policy (must have `admin` permission)", "operationId": "upsert_recipe_permission", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryAccessPolicy" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/registries/{owner}/index.json": { "get": { "tags": [ "Registries" ], "summary": "Get Registry Index", "operationId": "get_registry_index", "parameters": [ { "required": true, "schema": { "title": "Registry Owner", "type": "string" }, "name": "owner", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryIndex" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/registries/{owner}/{type}/{name}/{digest}": { "get": { "tags": [ "Registries" ], "summary": "Get Package", "operationId": "get_package", "parameters": [ { "required": true, "schema": { "title": "Registry Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Repository Type", "type": "string" }, "name": "type", "in": "path" }, { "required": true, "schema": { "title": "Repository Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Package Digest", "type": "string" }, "name": "digest", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": {} }, "application/x-tar": {} } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/registries/{owner}/operators": { "post": { "tags": [ "Registries" ], "summary": "Push an Operator to the registry", "operationId": "post_operator", "parameters": [ { "required": true, "schema": { "title": "Registry Owner", "type": "string" }, "name": "owner", "in": "path" } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_post_operator_registries__owner__operators_post" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/registries/{owner}/recipes": { "post": { "tags": [ "Registries" ], "summary": "Push an Recipe to the registry", "operationId": "post_recipe", "parameters": [ { "required": true, "schema": { "title": "Registry Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": false, "schema": { "title": "Authorization", "type": "string" }, "name": "authorization", "in": "header" } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_post_recipe_registries__owner__recipes_post" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects": { "get": { "tags": [ "Projects" ], "summary": "List Projects", "description": "search for projects using query parameters", "operationId": "list_projects", "parameters": [ { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "You know, for search", "required": false, "schema": { "title": "Search query", "type": "array", "items": { "type": "string" }, "description": "You know, for search" }, "name": "search", "in": "query" }, { "description": "The ID of a project to search for", "required": false, "schema": { "title": "Project ID", "type": "array", "items": { "type": "string" }, "description": "The ID of a project to search for" }, "name": "id", "in": "query" }, { "description": "The account name", "required": false, "schema": { "title": "Account Name", "type": "array", "items": { "type": "string" }, "description": "The account name" }, "name": "name", "in": "query" }, { "description": "Owner of the project", "required": false, "schema": { "title": "Project Owner", "type": "array", "items": { "type": "string" }, "description": "Owner of the project" }, "name": "owner", "in": "query" }, { "description": "Boolean check for public/private projects", "required": false, "schema": { "title": "Public Project", "type": "boolean", "description": "Boolean check for public/private projects" }, "name": "public", "in": "query" }, { "description": "Filter by permission on given resource", "required": false, "schema": { "title": "Permission Name", "type": "array", "items": { "type": "string" }, "description": "Filter by permission on given resource" }, "name": "permission", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}": { "post": { "tags": [ "Projects" ], "summary": "Create a Project", "description": "Create a new project.", "operationId": "create_project", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectCreate" } } }, "required": true }, "responses": { "201": { "description": "Success", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "202": { "description": "Accepted" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}": { "get": { "tags": [ "Projects" ], "summary": "Get a project", "description": "Retrieve a project by name", "operationId": "get_project", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Project" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "put": { "tags": [ "Projects" ], "summary": "Update a Project", "description": "Update a project (must have `contribute` permission)", "operationId": "update", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectUpdate" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Projects" ], "summary": "Delete a Project", "description": "Delete a project (must have `admin` permission)", "operationId": "delete_project", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/permissions": { "get": { "tags": [ "Projects" ], "summary": "Get project access permissions", "description": "Retrieve a project's access permissions (must have `contribute` permission)", "operationId": "get_project_access_permissions", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "The type of access policy subject", "required": false, "schema": { "title": "Subject Type", "type": "array", "items": { "type": "string" }, "description": "The type of access policy subject" }, "name": "subject_type", "in": "query" }, { "description": "An access policy permission string", "required": false, "schema": { "title": "PERMISSION", "type": "array", "items": { "type": "string" }, "description": "An access policy permission string" }, "name": "permission", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectAccessPolicyList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Projects" ], "summary": "Remove a Project permissions", "description": "Delete a project's access policy (must have `admin` permission)", "operationId": "delete_project_org_permission", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectPolicySubject" } } }, "required": true }, "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "patch": { "tags": [ "Projects" ], "summary": "Upsert a new permission to a project", "description": "Upsert a project's access policy (must have `admin` permission)", "operationId": "upsert_project_permission", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectAccessPolicy" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations": { "get": { "tags": [ "Simulations" ], "summary": "List simulations", "description": "Retrieve a list of simulations.", "operationId": "list_simulations", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "The ID of a simulation to search for", "required": false, "schema": { "title": "Simulation ID", "type": "array", "items": { "type": "string" }, "description": "The ID of a simulation to search for" }, "name": "id", "in": "query" }, { "description": "The status of the simulation to filter by", "required": false, "schema": { "title": "Simulation Status", "type": "array", "items": { "type": "string" }, "description": "The status of the simulation to filter by" }, "name": "status", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SimulationList" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "Simulations" ], "summary": "Schedule a simulation", "description": "Create a new simulation.", "operationId": "create_simulation", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": false, "schema": { "title": "Authorization", "type": "string" }, "name": "authorization", "in": "header" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubmitSimulation" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedContent" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}": { "get": { "tags": [ "Simulations" ], "summary": "Get a Simulation", "description": "Retrieve a simulation.", "operationId": "get_simulation", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation ID", "type": "string" }, "name": "simulation_id", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Simulation" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/stop": { "put": { "tags": [ "Simulations" ], "summary": "Stop a simulation", "description": "Stop a simulation.", "operationId": "stop_simulation", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Workflow id.", "type": "string" }, "name": "simulation_id", "in": "path" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/suspend": { "put": { "tags": [ "Simulations" ], "summary": "Suspend a simulation", "description": "Suspend a simulation.", "operationId": "suspend_simulation", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Workflow id.", "type": "string" }, "name": "simulation_id", "in": "path" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/resume": { "put": { "tags": [ "Simulations" ], "summary": "resume a simulation", "description": "resume a simulation", "operationId": "resume_simulation", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Workflow id.", "type": "string" }, "name": "simulation_id", "in": "path" } ], "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Accepted" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/inputs": { "get": { "tags": [ "Simulations" ], "summary": "Get simulation inputs", "description": "get simulation inputs", "operationId": "get_simulation_inputs", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation ID", "type": "string" }, "name": "simulation_id", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/logs": { "get": { "tags": [ "Simulations" ], "summary": "Get simulation logs", "description": "get simulation logs", "operationId": "get_simulation_logs", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation ID", "type": "string" }, "name": "simulation_id", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/outputs/artifacts/{artifact_name}": { "get": { "tags": [ "Simulations" ], "summary": "Get simulation output artifact by name", "description": "get simulation output artifact", "operationId": "get_simulation_output_artifact", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation ID", "type": "string" }, "name": "simulation_id", "in": "path" }, { "required": true, "schema": { "title": "Output Artifact Name", "type": "string" }, "name": "artifact_name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/task/{task_id}/logs": { "get": { "tags": [ "Simulations" ], "summary": "Get simulation logs", "description": "get simulation task logs", "operationId": "get_simulation_task_logs", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation id.", "type": "string" }, "name": "simulation_id", "in": "path" }, { "required": true, "schema": { "title": "Simulation Task name.", "type": "string" }, "name": "task_id", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "title": "Response Get Task Logs Projects Owner Name Simulations Simulation Id Task Task Id Logs Get", "type": "string" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/artifacts": { "get": { "tags": [ "Simulations" ], "summary": "List artifacts in a simulation folder", "description": "Retrieve a list of artifacts in a simulation folder", "operationId": "list_simulation_artifacts", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation id.", "type": "string" }, "name": "simulation_id", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "The path to an file within a project folder", "required": false, "schema": { "title": "Project File Path", "type": "array", "items": { "type": "string" }, "description": "The path to an file within a project folder" }, "name": "path", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "title": "Response Get List Artifacts Projects Owner Name Simulations Simulation Id Artifacts Get", "type": "array", "items": { "$ref": "#/components/schemas/FileMeta" } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/simulations/{simulation_id}/artifacts/download": { "get": { "tags": [ "Simulations" ], "summary": "Download an artifact from the simulation folder", "description": "Get a download link for an artifact in a simulation folder", "operationId": "download_simulation_artifact", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "required": true, "schema": { "title": "Simulation id.", "type": "string" }, "name": "simulation_id", "in": "path" }, { "description": "The path to an file within a project folder", "required": false, "schema": { "title": "Project File Path", "type": "string", "description": "The path to an file within a project folder" }, "name": "path", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/artifacts": { "get": { "tags": [ "Artifacts" ], "summary": "List artifacts in a project folder", "description": "Retrieve a list of artifacts.", "operationId": "list_artifacts", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" }, { "description": "The path to an file within a project folder", "required": false, "schema": { "title": "Project File Path", "type": "array", "items": { "type": "string" }, "description": "The path to an file within a project folder" }, "name": "path", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "title": "Response Get List Artifacts Projects Owner Name Artifacts Get", "type": "array", "items": { "$ref": "#/components/schemas/FileMeta" } } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "Artifacts" ], "summary": "Get an Artifact upload link.", "description": "Create a new artifact.", "operationId": "create_artifact", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/S3UploadRequest" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Artifacts" ], "summary": "Delete one or many artifacts by key/prefix", "description": "Delete one or multiple artifacts based on key prefix", "operationId": "delete_artifact", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "The path to an file within a project folder", "required": false, "schema": { "title": "Project File Path", "type": "array", "items": { "type": "string" }, "description": "The path to an file within a project folder" }, "name": "path", "in": "query" } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/artifacts/download": { "get": { "tags": [ "Artifacts" ], "summary": "Download an artifact from the project folder", "description": "Retrieve a list of artifacts.", "operationId": "download_artifact", "parameters": [ { "required": true, "schema": { "title": "Project Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Project Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "The path to an file within a project folder", "required": false, "schema": { "title": "Project File Path", "type": "string", "description": "The path to an file within a project folder" }, "name": "path", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": {} } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/recipes": { "get": { "tags": [ "Projects" ], "summary": "Get project recipes", "description": "Retrieve a project's access permissions (must have `read` permission)", "operationId": "get_project_recipes", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" }, { "description": "Page number starting from 1", "required": false, "schema": { "title": "Page number", "minimum": 1.0, "type": "integer", "description": "Page number starting from 1", "default": 1 }, "name": "page", "in": "query" }, { "description": "Number of items per page", "required": false, "schema": { "title": "Items per page", "maximum": 100.0, "type": "integer", "description": "Number of items per page", "default": 25 }, "name": "per-page", "in": "query" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepositoryList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } }, "/projects/{owner}/{name}/recipes/filters": { "get": { "tags": [ "Projects" ], "summary": "Get project recipe filters", "description": "Retrieve a project's access permissions (must have `read` permission)", "operationId": "get_project_recipe_filters", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "responses": { "200": { "description": "Retrieved", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectRecipeFilterList" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "post": { "tags": [ "Projects" ], "summary": "Upsert a recipe filter to a project", "description": "Upsert a project's access policy (must have `admin` permission)", "operationId": "create_project_recipe_filter", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectRecipeFilter" } } }, "required": true }, "responses": { "202": { "description": "Accepted", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAccepted" } } } }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "404": { "description": "Not found" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] }, "delete": { "tags": [ "Projects" ], "summary": "Remove a Project permissions", "description": "Delete a project's access policy (must have `admin` permission)", "operationId": "delete_project_recipe_filter", "parameters": [ { "required": true, "schema": { "title": "Owner", "type": "string" }, "name": "owner", "in": "path" }, { "required": true, "schema": { "title": "Name", "type": "string" }, "name": "name", "in": "path" } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectRecipeFilter" } } }, "required": true }, "responses": { "204": { "description": "Accepted" }, "403": { "description": "Access forbidden" }, "500": { "description": "Server error" }, "400": { "description": "Invalid request" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "JWTAuth": [] }, { "APIKeyAuth": [] } ] } } }, "components": { "schemas": { "APIToken": { "title": "APIToken", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The user friendly name of the API token" }, "claims": { "title": "Claims", "type": "object", "additionalProperties": { "type": "string" }, "description": "Key value pairs of auth claims the API token is entitled to", "default": {} } } }, "APITokenCreate": { "title": "APITokenCreate", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The user friendly name of the API token" }, "claims": { "title": "Claims", "type": "object", "additionalProperties": { "type": "string" }, "description": "Key value pairs of auth claims the API token is entitled to", "default": {} } } }, "APITokenList": { "title": "APITokenList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/APIToken" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "APITokenPrivate": { "title": "APITokenPrivate", "required": [ "name", "token" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The user friendly name of the API token" }, "token": { "title": "Token", "type": "string", "description": "The decoded API token" }, "claims": { "title": "Claims", "type": "object", "additionalProperties": { "type": "string" }, "description": "Key value pairs of auth claims the API token is entitled to", "default": {} } } }, "Accepted": { "title": "Accepted", "required": [ "url" ], "type": "object", "properties": { "url": { "title": "Url", "maxLength": 2083, "minLength": 1, "type": "string", "description": "Url to access the requested resource.", "format": "uri" }, "message": { "title": "Message", "type": "string", "description": " A human readable message", "default": "The request is accepted. Use url to access the resource once ready.", "example": "The request is accepted. Use url to access the resource once ready." } }, "description": "Accepted request response." }, "AccountPublic": { "title": "AccountPublic", "required": [ "id", "type", "name" ], "type": "object", "properties": { "id": { "title": "Id", "type": "string", "example": "0ad77f99-8043-46e4-8220-7221487c3ee5" }, "type": { "title": "Type", "type": "string", "example": "user", "readOnly": true }, "name": { "title": "Name", "type": "string", "example": "LadybugBot" } } }, "ArgumentArtifact": { "title": "ArgumentArtifact", "required": [ "name", "source" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the artifact" }, "source": { "title": "Source", "anyOf": [ { "$ref": "#/components/schemas/HTTPSource" }, { "$ref": "#/components/schemas/S3Source" }, { "$ref": "#/components/schemas/ProjectFolderSource" } ], "description": "The source to pull the artifact from" } }, "description": "A workflow Artifact Argument" }, "ArgumentParameter": { "title": "ArgumentParameter", "required": [ "name", "value" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the parameter" }, "value": { "title": "Value", "type": "string", "description": "The value of the parameter" } }, "description": "A workflow Parameter Argument" }, "Arguments": { "title": "Arguments", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/ArgumentParameter" }, "description": "A list of input parameters", "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/ArgumentArtifact" }, "description": "A list of input artifacts", "default": [] } }, "description": "Workflow Arguments" }, "Body_post_operator_registries__owner__operators_post": { "title": "Body_post_operator_registries__owner__operators_post", "required": [ "package" ], "type": "object", "properties": { "package": { "title": "Operator Package", "type": "string", "format": "binary" } } }, "Body_post_recipe_registries__owner__recipes_post": { "title": "Body_post_recipe_registries__owner__recipes_post", "required": [ "package" ], "type": "object", "properties": { "package": { "title": "Recipe Package", "type": "string", "format": "binary" } } }, "Config": { "title": "Config", "required": [ "docker" ], "type": "object", "properties": { "docker": { "title": "Docker", "allOf": [ { "$ref": "#/components/schemas/DockerConfig" } ], "description": "The configuration to use this operator in a docker container" }, "local": { "title": "Local", "allOf": [ { "$ref": "#/components/schemas/LocalConfig" } ], "description": "The configuration to use this operator locally" } }, "description": "Operator configuration.\n\nThe config is used to schedule functions on a desktop or in other contexts\n(ie: Docker)." }, "CreatedContent": { "title": "CreatedContent", "required": [ "id" ], "type": "object", "properties": { "id": { "title": "Id", "type": "string", "description": "Id for the newly created resource.", "format": "uuid", "example": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }, "message": { "title": "Message", "type": "string", "description": " A human readable message", "example": "Use Location in headers to access the new object." } }, "description": "Content for created response." }, "DAG": { "title": "DAG", "required": [ "name", "tasks" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "A unique name for this dag." }, "tasks": { "title": "Tasks", "type": "array", "items": { "$ref": "#/components/schemas/DAGTask" }, "description": "Tasks are a list of DAG steps" }, "inputs": { "title": "Inputs", "allOf": [ { "$ref": "#/components/schemas/DAGInputs" } ], "description": "Inputs for the DAG." }, "fail_fast": { "title": "Fail Fast", "type": "boolean", "description": "Stop scheduling new steps, as soon as it detects that one of the DAG nodes is failed. Default is True.", "default": true }, "outputs": { "title": "Outputs", "allOf": [ { "$ref": "#/components/schemas/DAGOutputs" } ], "description": "Outputs of the DAG that can be used by other DAGs" } }, "description": "A Directed Acyclic Graph containing a list of tasks." }, "DAGInputArtifact": { "title": "DAGInputArtifact", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the artifact within the scope of the DAG" }, "annotations": { "title": "Annotations", "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional annotations for Queenbee objects." }, "description": { "title": "Description", "type": "string", "description": "Optional description for the input artifact" }, "default": { "title": "Default", "anyOf": [ { "$ref": "#/components/schemas/HTTPSource" }, { "$ref": "#/components/schemas/S3Source" }, { "$ref": "#/components/schemas/ProjectFolderSource" } ], "description": "If no artifact is specified then pull it from this source location." }, "required": { "title": "Required", "type": "boolean", "description": "Whether this value must be specified in a task argument." } }, "description": "An artifact used within the DAG." }, "DAGInputParameter": { "title": "DAGInputParameter", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name is the parameter name. must be unique within a task's inputs." }, "annotations": { "title": "Annotations", "type": "object", "additionalProperties": { "type": "string" }, "description": "Optional annotations for Queenbee objects." }, "default": { "title": "Default", "type": "string", "description": "Default value to use for an input parameter if a value was not supplied." }, "description": { "title": "Description", "type": "string", "description": "Optional description for input parameter." }, "required": { "title": "Required", "type": "boolean", "description": "Whether this value must be specified in a task argument." } }, "description": "An input parameter used within the DAG." }, "DAGInputs": { "title": "DAGInputs", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/DAGInputParameter" }, "description": "A list of parameters the DAG will use as input values", "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/DAGInputArtifact" }, "description": "A list of artifacts the DAG will use", "default": [] } }, "description": "Inputs of a DAG." }, "DAGOutputArtifact": { "title": "DAGOutputArtifact", "required": [ "name", "from" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the output variable" }, "from": { "title": "From", "anyOf": [ { "$ref": "#/components/schemas/TaskArtifactReference" }, { "$ref": "#/components/schemas/FolderArtifactReference" } ], "description": "The task reference to pull this output variable from. Note, this must be an output variable." } }, "description": "An artifact sourced from within the DAG that is exposed as an output" }, "DAGOutputParameter": { "title": "DAGOutputParameter", "required": [ "name", "from" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the output variable" }, "from": { "title": "From", "allOf": [ { "$ref": "#/components/schemas/TaskParameterReference" } ], "description": "The task reference to pull this output variable from. Note, this must be an output variable." } }, "description": "A parameter sourced from within the DAG that is exposed as an output." }, "DAGOutputs": { "title": "DAGOutputs", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/DAGOutputParameter" }, "description": "A list of output parameters exposed by this DAG", "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/DAGOutputArtifact" }, "description": "A list of output artifacts exposed by this DAG", "default": [] } }, "description": "Artifacts and Parameters exposed by the DAG" }, "DAGTask": { "title": "DAGTask", "required": [ "name", "template" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name for this step. It must be unique in DAG." }, "template": { "title": "Template", "type": "string", "description": "Template name." }, "arguments": { "title": "Arguments", "allOf": [ { "$ref": "#/components/schemas/DAGTaskArgument" } ], "description": "The input arguments for this task" }, "dependencies": { "title": "Dependencies", "type": "array", "items": { "type": "string" }, "description": "Dependencies are name of other DAG steps which this depends on." }, "loop": { "title": "Loop", "allOf": [ { "$ref": "#/components/schemas/DAGTaskLoop" } ], "description": "List of inputs to loop over." }, "sub_folder": { "title": "Sub Folder", "type": "string", "description": "A path relative to the current folder context where artifacts should be saved. This is useful when performing a loop or invoking another workflow and wanting to save results in a specific folder." }, "outputs": { "title": "Outputs", "allOf": [ { "$ref": "#/components/schemas/DAGTaskOutputs" } ], "description": "The outputs of this task" } }, "description": "The instance of a function template matched with DAG inputs and outputs." }, "DAGTaskArgument": { "title": "DAGTaskArgument", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskParameterArgument" }, "description": "A list of input parameters to pass to the task", "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskArtifactArgument" }, "description": "A list of input artifacts to pass to the task", "default": [] } }, "description": "DAG task argument.\n\nThese arguments should match the inputs from the template referenced in the task." }, "DAGTaskArtifactArgument": { "title": "DAGTaskArtifactArgument", "required": [ "name", "from" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name of the argument variable" }, "from": { "title": "From", "anyOf": [ { "$ref": "#/components/schemas/InputArtifactReference" }, { "$ref": "#/components/schemas/TaskArtifactReference" }, { "$ref": "#/components/schemas/FolderArtifactReference" } ], "description": "The previous task or global workflow variable to pull this argument from" }, "subpath": { "title": "Subpath", "type": "string", "description": "Specify this value if your source artifact is a repository and you want to source an artifact from within that directory." } }, "description": "Input argument for a DAG task.\n\nThe name must correspond to an input artifact from the template function the task\nrefers to." }, "DAGTaskLoop": { "title": "DAGTaskLoop", "type": "object", "properties": { "from": { "title": "From", "anyOf": [ { "$ref": "#/components/schemas/InputParameterReference" }, { "$ref": "#/components/schemas/TaskParameterReference" } ], "description": "The task or DAG parameter to loop over (must be iterable)." }, "value": { "title": "Value", "type": "array", "items": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "number" }, { "type": "object" } ] }, "description": "A list of values or JSON objects to loop over." } }, "description": "Loop configuration for the task.\n\nThis will run the template provided multiple times and in parallel relative to an\ninput or task parameter which should be a list." }, "DAGTaskOutputArtifact": { "title": "DAGTaskOutputArtifact", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the output variable" }, "path": { "title": "Path", "type": "string", "description": "The path where the artifact should be saved relative to the DAG folder." } }, "description": "Output artifact for a DAG task.\n\nThe name must correspond to an output artifact from the template function the task\nrefers to." }, "DAGTaskOutputParameter": { "title": "DAGTaskOutputParameter", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the output variable" } }, "description": "Output parameter for a DAG task.\n\nThe name must correspond to an output parameter from the template function the task\nrefers to." }, "DAGTaskOutputs": { "title": "DAGTaskOutputs", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskOutputParameter" }, "description": "A list of output parameters to expose from the task", "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/DAGTaskOutputArtifact" }, "description": "A list of output artifacts to expose from the task", "default": [] } }, "description": "These outputs should match the outputs from the template referenced in the task" }, "DAGTaskParameterArgument": { "title": "DAGTaskParameterArgument", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name of the argument variable" }, "from": { "title": "From", "anyOf": [ { "$ref": "#/components/schemas/InputParameterReference" }, { "$ref": "#/components/schemas/TaskParameterReference" }, { "$ref": "#/components/schemas/ItemParameterReference" } ], "description": "The previous task or global workflow variable to pull this argument from" }, "value": { "title": "Value", "type": "string", "description": "The fixed value for this task argument" } }, "description": "Input argument for a DAG task.\n\nThe name must correspond to an input parameter from the template function the task\nrefers to." }, "Dependency": { "title": "Dependency", "required": [ "type", "name", "tag", "source" ], "type": "object", "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/DependencyType" } ], "description": "The type of dependency", "readOnly": true }, "name": { "title": "Name", "type": "string", "description": "Workflow name. This name should be unique among all the resources in your resource. Use an alias if this is not the case." }, "tag": { "title": "Tag", "type": "string", "description": "Tag of the resource." }, "source": { "title": "Source", "type": "string", "description": "URL to a repository where this resource can be found." }, "hash": { "title": "Hash", "type": "string", "description": "The digest hash of the dependency when retrieved from its source. This is locked when the resource dependencies are downloaded." }, "alias": { "title": "Alias", "type": "string", "description": "An optional alias to refer to this dependency. Useful if the name is already used somewhere else." } }, "description": "Configuration to fetch a Recipe or Operator that another Recipe depends on." }, "DependencyType": { "title": "DependencyType", "enum": [ "recipe", "operator" ], "type": "string", "description": "An enumeration." }, "DockerConfig": { "title": "DockerConfig", "required": [ "image", "workdir" ], "type": "object", "properties": { "image": { "title": "Image", "type": "string", "description": "Docker image name. Must include tag." }, "workdir": { "title": "Workdir", "type": "string", "description": "The working directory the entrypoint command of the container runsin. This is used to determine where to load artifacts when running in the container." }, "registry": { "title": "Registry", "type": "string", "description": "The container registry URLs that this container should be pulled from. Will default to Dockerhub if none is specified." } }, "description": "Operator Configuration to run in a Docker container" }, "FileMeta": { "title": "FileMeta", "required": [ "key", "type", "file_name" ], "type": "object", "properties": { "key": { "title": "Key", "type": "string" }, "type": { "title": "Type", "type": "string", "readOnly": true }, "file_name": { "title": "File Name", "type": "string" }, "last_modified": { "title": "Last Modified", "type": "string", "format": "date-time" }, "size": { "title": "Size", "type": "integer", "format": "int32" } } }, "FolderArtifactReference": { "title": "FolderArtifactReference", "required": [ "path" ], "type": "object", "properties": { "path": { "title": "Path", "type": "string", "description": "The path to the file or folder relative to the workflow output folder" }, "type": { "allOf": [ { "$ref": "#/components/schemas/FolderReference" } ], "default": "folder", "readOnly": true } }, "description": "A Base reference model" }, "FolderReference": { "title": "FolderReference", "enum": [ "folder" ], "description": "An enumeration." }, "Function": { "title": "Function", "required": [ "name", "command" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Function name. Must be unique within an operator." }, "command": { "title": "Command", "type": "string", "description": "Full shell command for this function. Each function accepts only one command. The command will be executed as a shell command in operator. For running several commands after each other use && between the commands or pipe data from one to another using |" }, "description": { "title": "Description", "type": "string", "description": "Function description. A short human readable description for this function." }, "inputs": { "title": "Inputs", "allOf": [ { "$ref": "#/components/schemas/FunctionInputs" } ], "description": "Input arguments for this function.", "default": { "parameters": [], "artifacts": [] } }, "outputs": { "title": "Outputs", "allOf": [ { "$ref": "#/components/schemas/FunctionOutputs" } ], "description": "List of output arguments.", "default": { "parameters": [], "artifacts": [] } } }, "description": "A Function with a single command" }, "FunctionArtifact": { "title": "FunctionArtifact", "required": [ "name", "path" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name of the artifact. Must be unique within a task's inputs / outputs." }, "path": { "title": "Path", "type": "string", "description": "Path to the artifact relative to the working directory where the command is executed." }, "description": { "title": "Description", "type": "string", "description": "Optional description for input parameter." } }, "description": "A Function Artifact object\n\nThis indicates the path within the function context at which a certain file or folder\n(ie: artifact) can be found." }, "FunctionInputs": { "title": "FunctionInputs", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/FunctionParameterIn" }, "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/FunctionArtifact" }, "default": [] } }, "description": "The Inputs of a Function" }, "FunctionOutputs": { "title": "FunctionOutputs", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/FunctionParameterOut" }, "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/FunctionArtifact" }, "default": [] } }, "description": "The Outputs of a Function" }, "FunctionParameterIn": { "title": "FunctionParameterIn", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name is the parameter name. must be unique within a task's inputs." }, "default": { "title": "Default", "type": "string", "description": "Default value to use for an input parameter if a value was not supplied." }, "description": { "title": "Description", "type": "string", "description": "Optional description for input parameter." }, "required": { "title": "Required", "type": "boolean", "description": "Whether this value must be specified in a task argument." } }, "description": "A Function Parameter\n\nParameter indicate a passed string parameter to a service template with an optional\ndefault value." }, "FunctionParameterOut": { "title": "FunctionParameterOut", "required": [ "name", "path" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Name of the artifact. Must be unique within a task's inputs / outputs." }, "path": { "title": "Path", "type": "string", "description": "Path to the artifact relative to the working directory where the command is executed." }, "description": { "title": "Description", "type": "string", "description": "Optional description for input parameter." } }, "description": "A Function Artifact object\n\nThis indicates the path within the function context at which a certain file or folder\n(ie: artifact) can be found." }, "HTTPSource": { "title": "HTTPSource", "required": [ "url" ], "type": "object", "properties": { "url": { "title": "Url", "type": "string", "description": "For a HTTP endpoint this can be http://climate.onebuilding.org." }, "type": { "title": "Type", "pattern": "^http$", "type": "string", "default": "http", "readOnly": true } }, "description": "HTTPSource\n\nA web HTTP to an FTP server or an API for example." }, "HTTPValidationError": { "title": "HTTPValidationError", "type": "object", "properties": { "detail": { "title": "Detail", "type": "array", "items": { "$ref": "#/components/schemas/ValidationError" } } } }, "InputArtifactReference": { "title": "InputArtifactReference", "required": [ "variable" ], "type": "object", "properties": { "variable": { "title": "Variable", "type": "string", "description": "The name of the DAG input variable" }, "type": { "allOf": [ { "$ref": "#/components/schemas/InputReference" } ], "default": "inputs", "readOnly": true } }, "description": "An Input Artifact Reference" }, "InputParameterReference": { "title": "InputParameterReference", "required": [ "variable" ], "type": "object", "properties": { "variable": { "title": "Variable", "type": "string", "description": "The name of the DAG input variable" }, "type": { "allOf": [ { "$ref": "#/components/schemas/InputReference" } ], "default": "inputs", "readOnly": true } }, "description": "An Input Parameter Reference" }, "InputReference": { "title": "InputReference", "enum": [ "inputs" ], "description": "An enumeration." }, "ItemParameterReference": { "title": "ItemParameterReference", "type": "object", "properties": { "type": { "allOf": [ { "$ref": "#/components/schemas/ItemReference" } ], "default": "item", "readOnly": true }, "variable": { "title": "Variable", "type": "string", "description": "The name of the looped item variable (use dot notation for nested json values)" } }, "description": "An Item Parameter Reference" }, "ItemReference": { "title": "ItemReference", "enum": [ "item" ], "description": "An enumeration." }, "KeyRequest": { "title": "KeyRequest", "required": [ "key" ], "type": "object", "properties": { "key": { "title": "Key", "type": "string" } } }, "License": { "title": "License", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The license name used for the package." }, "url": { "title": "Url", "type": "string", "description": "A URL to the license used for the package." } }, "description": "License information for the Package" }, "LocalConfig": { "title": "LocalConfig", "type": "object", "properties": {}, "description": "Operator Configuration to run on a desktop." }, "Maintainer": { "title": "Maintainer", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the author/maintainer person or organization." }, "email": { "title": "Email", "type": "string", "description": "The email address of the author/maintainer person or organization." } }, "description": "Maintainer information" }, "MetaData": { "title": "MetaData", "required": [ "name", "tag" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Package name. Make it descriptive and helpful ;)" }, "tag": { "title": "Tag", "type": "string", "description": "The tag of the package" }, "app_version": { "title": "App Version", "type": "string", "description": "The version of the application code underlying the manifest" }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "A list of keywords to search the package by" }, "maintainers": { "title": "Maintainers", "type": "array", "items": { "$ref": "#/components/schemas/Maintainer" }, "description": "A list of maintainers for the package" }, "home": { "title": "Home", "type": "string", "description": "The URL of this package's home page" }, "sources": { "title": "Sources", "type": "array", "items": { "type": "string" }, "description": "A list of URLs to source code for this project" }, "icon": { "title": "Icon", "type": "string", "description": "A URL to an SVG or PNG image to be used as an icon" }, "deprecated": { "title": "Deprecated", "type": "boolean", "description": "Whether this package is deprecated" }, "description": { "title": "Description", "type": "string", "description": "A description of what this package does" }, "license": { "title": "License", "allOf": [ { "$ref": "#/components/schemas/License" } ], "description": "The license information." } }, "description": "Package metadata information." }, "NewOperatorPackage": { "title": "NewOperatorPackage", "required": [ "manifest" ], "type": "object", "properties": { "manifest": { "title": "Manifest", "allOf": [ { "$ref": "#/components/schemas/Operator" } ], "description": "The Operator manifest to be created" }, "readme": { "title": "Readme", "type": "string", "description": "The README file to attach to this package", "default": "" }, "license": { "title": "License", "type": "string", "description": "The license file to attach to this package", "default": "" } } }, "NewRecipePackage": { "title": "NewRecipePackage", "required": [ "manifest" ], "type": "object", "properties": { "manifest": { "title": "Manifest", "allOf": [ { "$ref": "#/components/schemas/Recipe" } ], "description": "The Recipe manifest to be created" }, "readme": { "title": "Readme", "type": "string", "description": "The README file to attach to this package", "default": "" }, "license": { "title": "License", "type": "string", "description": "The license file to attach to this package", "default": "" } } }, "Operator": { "title": "Operator", "required": [ "metadata", "config", "functions" ], "type": "object", "properties": { "metadata": { "title": "Metadata", "allOf": [ { "$ref": "#/components/schemas/MetaData" } ], "description": "The Operator metadata information" }, "config": { "title": "Config", "allOf": [ { "$ref": "#/components/schemas/Config" } ], "description": "The configuration information to run this operator" }, "functions": { "title": "Functions", "type": "array", "items": { "$ref": "#/components/schemas/Function" }, "description": "List of Operator functions" } }, "description": "A Queenbee Operator.\n\nAn Operator contains runtime configuration for a Command Line Interface (CLI) and\na list of functions that can be executed using this CLI tool." }, "OperatorPackage": { "title": "OperatorPackage", "required": [ "digest", "tag", "manifest" ], "type": "object", "properties": { "digest": { "title": "Digest", "type": "string", "description": "The new package digest" }, "tag": { "title": "Tag", "type": "string", "description": "The new package tag" }, "manifest": { "title": "Manifest", "allOf": [ { "$ref": "#/components/schemas/Operator" } ], "description": "The operator manifest" }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "keywords" }, "description": { "title": "Description", "type": "string", "description": "description" }, "icon": { "title": "Icon", "type": "string", "description": "icon" }, "created_at": { "title": "Created At", "type": "string", "description": "Creation Timestamp", "format": "date-time" }, "readme": { "title": "Readme", "type": "string", "description": "The Repository Readme", "example": "# Daylight Factor \n This recipe runs a daylight factor simulation." }, "license": { "title": "License", "type": "string", "description": "The Repository license", "example": "No License" } } }, "Organization": { "title": "Organization", "required": [ "name", "picture", "contact_email", "id", "owner" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The display name for this org", "example": "Ladybug Tools" }, "picture": { "title": "Picture", "type": "string", "description": "URL to the picture associated with this org", "example": "https://avatars1.githubusercontent.com/u/38131342" }, "contact_email": { "title": "Contact Email", "type": "string", "description": "The contact email for the Organization", "example": "info@ladybug.tools" }, "id": { "title": "Id", "type": "string", "description": "The org ID", "example": "1eb8e60d-771d-4a30-8078-fe553eb2f0bc" }, "owner": { "title": "Owner", "allOf": [ { "$ref": "#/components/schemas/AccountPublic" } ], "description": "The account the organization represents", "example": { "id": "e4d0d922-2031-4b39-94d2-aa6d584d6bb2", "type": "org", "name": "ladybug-tools" } }, "description": { "title": "Description", "type": "string", "description": "A description of the org", "default": "", "example": "Making environmental design knowledge and tools freely accessible to every person, project and design process" }, "role": { "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleEnum" } ], "description": "The role the user has within the organization" }, "member_count": { "title": "Member Count", "type": "integer", "description": "The number of members that are part of this org", "default": 0, "example": 10, "format": "int32" }, "team_count": { "title": "Team Count", "type": "integer", "description": "The number of teams that are part of this org", "default": 0, "example": 3, "format": "int32" } } }, "OrganizationCreate": { "title": "OrganizationCreate", "required": [ "name", "picture", "contact_email", "account_name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The display name for this org", "example": "Ladybug Tools" }, "picture": { "title": "Picture", "type": "string", "description": "URL to the picture associated with this org", "example": "https://avatars1.githubusercontent.com/u/38131342" }, "contact_email": { "title": "Contact Email", "type": "string", "description": "The contact email for the Organization", "example": "info@ladybug.tools" }, "account_name": { "title": "Account Name", "type": "string", "description": "The unique name of the org in small case without spaces", "example": "ladybug-tools" }, "description": { "title": "Description", "type": "string", "description": "A description of the org", "default": "", "example": "Making environmental design knowledge and tools freely accessible to every person, project and design process" } } }, "OrganizationList": { "title": "OrganizationList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Organization" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "OrganizationMember": { "title": "OrganizationMember", "required": [ "user", "role" ], "type": "object", "properties": { "user": { "title": "User", "allOf": [ { "$ref": "#/components/schemas/UserPublic" } ], "description": "The organization member" }, "role": { "allOf": [ { "$ref": "#/components/schemas/OrganizationRoleEnum" } ], "description": "The role the user has within the organization" } } }, "OrganizationMemberList": { "title": "OrganizationMemberList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/OrganizationMember" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "OrganizationRoleEnum": { "title": "OrganizationRoleEnum", "enum": [ "owner", "member" ], "type": "string", "description": "An enumeration." }, "OrganizationUpdate": { "title": "OrganizationUpdate", "required": [ "name", "picture", "contact_email" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The display name for this org", "example": "Ladybug Tools" }, "picture": { "title": "Picture", "type": "string", "description": "URL to the picture associated with this org", "example": "https://avatars1.githubusercontent.com/u/38131342" }, "contact_email": { "title": "Contact Email", "type": "string", "description": "The contact email for the Organization", "example": "info@ladybug.tools" }, "description": { "title": "Description", "type": "string", "description": "A description of the org", "default": "", "example": "Making environmental design knowledge and tools freely accessible to every person, project and design process" } } }, "PackageVersion": { "title": "PackageVersion", "required": [ "name", "tag", "url", "created", "digest" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "Package name. Make it descriptive and helpful ;)" }, "tag": { "title": "Tag", "type": "string", "description": "The tag of the package" }, "url": { "title": "Url", "type": "string" }, "created": { "title": "Created", "type": "string", "format": "date-time" }, "digest": { "title": "Digest", "type": "string" }, "app_version": { "title": "App Version", "type": "string", "description": "The version of the application code underlying the manifest" }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "A list of keywords to search the package by" }, "maintainers": { "title": "Maintainers", "type": "array", "items": { "$ref": "#/components/schemas/Maintainer" }, "description": "A list of maintainers for the package" }, "home": { "title": "Home", "type": "string", "description": "The URL of this package's home page" }, "sources": { "title": "Sources", "type": "array", "items": { "type": "string" }, "description": "A list of URLs to source code for this project" }, "icon": { "title": "Icon", "type": "string", "description": "A URL to an SVG or PNG image to be used as an icon" }, "deprecated": { "title": "Deprecated", "type": "boolean", "description": "Whether this package is deprecated" }, "description": { "title": "Description", "type": "string", "description": "A description of what this package does" }, "license": { "title": "License", "type": "string", "description": "The License file string for this package" }, "slug": { "title": "Slug", "type": "string", "description": "A slug of the repository name and the package name." }, "type": { "title": "Type", "type": "string", "description": "The type of Queenbee package (ie: recipe or operator)", "default": "", "readOnly": true }, "readme": { "title": "Readme", "type": "string", "description": "The README file string for this package" }, "manifest": { "title": "Manifest", "anyOf": [ { "$ref": "#/components/schemas/Recipe" }, { "$ref": "#/components/schemas/Operator" } ], "description": "The package Recipe or Operator manifest" } }, "description": "Package Version\n\nA MetaData object to distinguish a specific package version within a repository\nindex." }, "Permission": { "title": "Permission", "enum": [ "admin", "write", "read" ], "type": "string", "description": "An enumeration." }, "PolicySubject": { "title": "PolicySubject", "required": [ "type", "name" ], "type": "object", "properties": { "type": { "$ref": "#/components/schemas/SubjectType", "readOnly": true }, "name": { "title": "Name", "type": "string", "description": "The name of the policy subject", "example": "ladybugbot" } } }, "Project": { "title": "Project", "required": [ "name", "id", "owner", "permissions", "slug" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the project. Must be unique to a given owner", "example": "Project Falcon" }, "id": { "title": "Id", "type": "string", "description": "The project ID", "example": "50bb7fe0-8f19-499e-972e-1ebec8af2c71" }, "owner": { "$ref": "#/components/schemas/AccountPublic" }, "permissions": { "$ref": "#/components/schemas/ProjectUserPermissions" }, "slug": { "title": "Slug", "type": "string", "description": "The project name in slug format", "example": "project-falcon" }, "description": { "title": "Description", "type": "string", "description": "A description of the project", "default": "", "example": "I always wanted to have a project called project Falcon" }, "public": { "title": "Public", "type": "boolean", "description": "Whether or not a project is publicly viewable", "default": true } } }, "ProjectAccessPolicy": { "title": "ProjectAccessPolicy", "required": [ "subject", "permission" ], "type": "object", "properties": { "subject": { "title": "Subject", "allOf": [ { "$ref": "#/components/schemas/PolicySubject" } ], "description": "The subject of the access policy" }, "permission": { "allOf": [ { "$ref": "#/components/schemas/Permission" } ], "description": "The permission given to the subject of the access policy" } } }, "ProjectAccessPolicyList": { "title": "ProjectAccessPolicyList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/ProjectAccessPolicy" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "ProjectCreate": { "title": "ProjectCreate", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the project. Must be unique to a given owner", "example": "Project Falcon" }, "description": { "title": "Description", "type": "string", "description": "A description of the project", "default": "", "example": "I always wanted to have a project called project Falcon" }, "public": { "title": "Public", "type": "boolean", "description": "Whether or not a project is publicly viewable", "default": true } } }, "ProjectFolderSource": { "title": "ProjectFolderSource", "type": "object", "properties": { "type": { "title": "Type", "pattern": "^project-folder$", "type": "string", "default": "project-folder", "readOnly": true }, "path": { "title": "Path", "type": "string", "description": "For a local filesystem this can be \"C:\\Users\\me\\simulations\\test\". This will correspond to the run specific folder ." } }, "description": "Project Folder Source\n\nThis is the path to a folder where files and folders can be sourced. In the context\nof a desktop run Workflow this folder will correspond to a local folder. In the\ncontext of a workflow run on Pollination this folder will correspond to a Project\nscoped folder." }, "ProjectList": { "title": "ProjectList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Project" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "ProjectPolicySubject": { "title": "ProjectPolicySubject", "required": [ "type", "name" ], "type": "object", "properties": { "type": { "$ref": "#/components/schemas/SubjectType", "readOnly": true }, "name": { "title": "Name", "type": "string", "description": "The name of the policy subject", "example": "ladybugbot" } } }, "ProjectRecipeFilter": { "title": "ProjectRecipeFilter", "required": [ "owner", "name" ], "type": "object", "properties": { "owner": { "title": "Owner", "type": "string", "description": "The name of the account the recipe belongs to", "example": "ladybug-tools" }, "name": { "title": "Name", "type": "string", "description": "The name of the recipe", "example": "daylight-factor" }, "tag": { "title": "Tag", "type": "string", "description": "The specific recipe tag", "example": "0.2.1" } } }, "ProjectRecipeFilterList": { "title": "ProjectRecipeFilterList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/ProjectRecipeFilter" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "ProjectUpdate": { "title": "ProjectUpdate", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the project. Must be unique to a given owner", "example": "Project Falcon" }, "description": { "title": "Description", "type": "string", "description": "A description of the project", "default": "", "example": "I always wanted to have a project called project Falcon" }, "public": { "title": "Public", "type": "boolean", "description": "Whether or not a project is publicly viewable", "default": true } } }, "ProjectUserPermissions": { "title": "ProjectUserPermissions", "type": "object", "properties": { "admin": { "title": "Admin", "type": "boolean", "description": "The user has admin permission to this resource", "default": false, "example": false }, "write": { "title": "Write", "type": "boolean", "description": "The user has write permission on this resource", "default": false, "example": false }, "read": { "title": "Read", "type": "boolean", "description": "The user has read permission on this resource", "default": false, "example": true } } }, "PublicAccountList": { "title": "PublicAccountList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/AccountPublic" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "Recipe": { "title": "Recipe", "required": [ "flow" ], "type": "object", "properties": { "flow": { "title": "Flow", "type": "array", "items": { "$ref": "#/components/schemas/DAG" }, "description": "A list of tasks to create a DAG recipe." }, "metadata": { "title": "Metadata", "allOf": [ { "$ref": "#/components/schemas/MetaData" } ], "description": "Recipe metadata information." }, "dependencies": { "title": "Dependencies", "type": "array", "items": { "$ref": "#/components/schemas/Dependency" }, "description": "A list of operators and other recipes this recipe depends on." } }, "description": "A Queenbee Recipe" }, "RecipePackage": { "title": "RecipePackage", "required": [ "digest", "tag", "manifest" ], "type": "object", "properties": { "digest": { "title": "Digest", "type": "string", "description": "The new package digest" }, "tag": { "title": "Tag", "type": "string", "description": "The new package tag" }, "manifest": { "title": "Manifest", "allOf": [ { "$ref": "#/components/schemas/Recipe" } ], "description": "The recipe manifest" }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "keywords" }, "description": { "title": "Description", "type": "string", "description": "description" }, "icon": { "title": "Icon", "type": "string", "description": "icon" }, "created_at": { "title": "Created At", "type": "string", "description": "Creation Timestamp", "format": "date-time" }, "readme": { "title": "Readme", "type": "string", "description": "The Repository Readme", "example": "# Daylight Factor \n This recipe runs a daylight factor simulation." }, "license": { "title": "License", "type": "string", "description": "The Repository license", "example": "No License" } } }, "RecipeSelection": { "title": "RecipeSelection", "required": [ "owner", "name" ], "type": "object", "properties": { "owner": { "title": "Owner", "type": "string", "description": "Name of the owner of the recipe", "example": "ladybug-tools" }, "name": { "title": "Name", "type": "string", "description": "Name of the recipe", "example": "daylight-factor" }, "tag": { "title": "Tag", "type": "string", "description": "The specific tag of the recipe to use", "default": "latest", "example": "0.2.1" }, "digest": { "title": "Digest", "type": "string", "description": "The specific digest of the recipe to use" } } }, "Repository": { "title": "Repository", "required": [ "name", "id", "latest_tag", "owner" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the repository", "example": "daylight-factor" }, "id": { "title": "Id", "type": "string", "description": "The recipe unique ID", "example": "5d5e7103-2c1e-413f-9332-f8ec4a9aace7" }, "latest_tag": { "title": "Latest Tag", "type": "string", "description": "The latest package version to be indexed", "example": "0.2.1" }, "owner": { "title": "Owner", "allOf": [ { "$ref": "#/components/schemas/AccountPublic" } ], "description": "The owner of the repository" }, "public": { "title": "Public", "type": "boolean", "description": "Whether or not a repository is publicly viewable", "default": true }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "A list of keywords to index the repository by", "example": [ "daylight", "radiance" ] }, "description": { "title": "Description", "type": "string", "description": "A description of the repository", "example": "Run daylight simulations the easy way!" }, "icon": { "title": "Icon", "type": "string", "description": "An icon to represent this repository", "example": "https://avatars1.githubusercontent.com/u/38131342" }, "permissions": { "title": "Permissions", "allOf": [ { "$ref": "#/components/schemas/RepositoryUserPermissions" } ], "description": "The permissions the user making the API call has on the resource", "default": { "admin": false, "write": false, "read": false } }, "slug": { "title": "Slug", "type": "string", "description": "The repository slug", "example": "ladybug-tools/daylight-factor" } } }, "RepositoryAccessPolicy": { "title": "RepositoryAccessPolicy", "required": [ "subject", "permission" ], "type": "object", "properties": { "subject": { "title": "Subject", "allOf": [ { "$ref": "#/components/schemas/PolicySubject" } ], "description": "The subject of the access policy" }, "permission": { "allOf": [ { "$ref": "#/components/schemas/Permission" } ], "description": "The permission given to the subject of the access policy" } } }, "RepositoryAccessPolicyList": { "title": "RepositoryAccessPolicyList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/RepositoryAccessPolicy" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "RepositoryCreate": { "title": "RepositoryCreate", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the repository", "example": "daylight-factor" }, "public": { "title": "Public", "type": "boolean", "description": "Whether or not a repository is publicly viewable", "default": true }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "A list of keywords to index the repository by", "example": [ "daylight", "radiance" ] }, "description": { "title": "Description", "type": "string", "description": "A description of the repository", "example": "Run daylight simulations the easy way!" }, "icon": { "title": "Icon", "type": "string", "description": "An icon to represent this repository", "example": "https://avatars1.githubusercontent.com/u/38131342" } } }, "RepositoryIndex": { "title": "RepositoryIndex", "type": "object", "properties": { "generated": { "title": "Generated", "type": "string", "description": "The timestamp at which the index was generated", "format": "date-time" }, "metadata": { "title": "Metadata", "allOf": [ { "$ref": "#/components/schemas/RepositoryMetadata" } ], "description": "Extra information about the repository", "default": { "description": "A Queenbee package repository", "operator_count": 0, "recipe_count": 0 } }, "operator": { "title": "Operator", "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/PackageVersion" } }, "description": "A dict of operators accessible by name. Each name key points to a list of operator versions", "default": {} }, "recipe": { "title": "Recipe", "type": "object", "additionalProperties": { "type": "array", "items": { "$ref": "#/components/schemas/PackageVersion" } }, "description": "A dict of recipes accessible by name. Each name key points to a list of recipesversions", "default": {} } }, "description": "A searchable index for a Queenbee Operator and Recipe repository" }, "RepositoryList": { "title": "RepositoryList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Repository" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "RepositoryMetadata": { "title": "RepositoryMetadata", "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the repository" }, "description": { "title": "Description", "type": "string", "description": "A short description of the repository", "default": "A Queenbee package repository" }, "source": { "title": "Source", "type": "string", "description": "The source path (url or local) to the repository" }, "operator_count": { "title": "Operator Count", "type": "integer", "description": "The number of operators hosted by the repository", "default": 0, "format": "int32" }, "recipe_count": { "title": "Recipe Count", "type": "integer", "description": "The number of recipes hosted by the repository", "default": 0, "format": "int32" } }, "description": "BaseModel with functionality to return the object as a yaml string\n\n " }, "RepositoryPackageAbriged": { "title": "RepositoryPackageAbriged", "required": [ "digest", "tag" ], "type": "object", "properties": { "digest": { "title": "Digest", "type": "string", "description": "The new package digest" }, "tag": { "title": "Tag", "type": "string", "description": "The new package tag" }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "keywords" }, "description": { "title": "Description", "type": "string", "description": "description" }, "icon": { "title": "Icon", "type": "string", "description": "icon" }, "created_at": { "title": "Created At", "type": "string", "description": "Creation Timestamp", "format": "date-time" } } }, "RepositoryPackageList": { "title": "RepositoryPackageList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/RepositoryPackageAbriged" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "RepositoryPolicySubject": { "title": "RepositoryPolicySubject", "required": [ "type", "name" ], "type": "object", "properties": { "type": { "$ref": "#/components/schemas/SubjectType", "readOnly": true }, "name": { "title": "Name", "type": "string", "description": "The name of the policy subject", "example": "ladybugbot" } } }, "RepositoryUpdate": { "title": "RepositoryUpdate", "type": "object", "properties": { "public": { "title": "Public", "type": "boolean", "description": "Whether or not a repository is publicly viewable", "default": true }, "keywords": { "title": "Keywords", "type": "array", "items": { "type": "string" }, "description": "A list of keywords to index the repository by", "example": [ "daylight", "radiance" ] }, "description": { "title": "Description", "type": "string", "description": "A description of the repository", "example": "Run daylight simulations the easy way!" }, "icon": { "title": "Icon", "type": "string", "description": "An icon to represent this repository", "example": "https://avatars1.githubusercontent.com/u/38131342" } } }, "RepositoryUserPermissions": { "title": "RepositoryUserPermissions", "type": "object", "properties": { "admin": { "title": "Admin", "type": "boolean", "description": "The user has admin permission to this resource", "default": false, "example": false }, "write": { "title": "Write", "type": "boolean", "description": "The user has write permission on this resource", "default": false, "example": false }, "read": { "title": "Read", "type": "boolean", "description": "The user has read permission on this resource", "default": false, "example": true } } }, "S3Source": { "title": "S3Source", "required": [ "key", "endpoint", "bucket" ], "type": "object", "properties": { "key": { "title": "Key", "type": "string", "description": "The path inside the bucket to source artifacts from." }, "endpoint": { "title": "Endpoint", "type": "string", "description": "The HTTP endpoint to reach the S3 bucket." }, "bucket": { "title": "Bucket", "type": "string", "description": "The name of the S3 bucket on the host server." }, "type": { "title": "Type", "pattern": "^s3$", "type": "string", "default": "s3", "readOnly": true }, "credentials_path": { "title": "Credentials Path", "type": "string", "description": "Path to the file holding the AccessKey and SecretAccessKey to authenticate to the bucket. Assumes public bucket access if none are specified." } }, "description": "S3Source\n\nAn S3 bucket artifact Source." }, "S3UploadRequest": { "title": "S3UploadRequest", "required": [ "url", "fields" ], "type": "object", "properties": { "url": { "title": "Url", "type": "string" }, "fields": { "title": "Fields", "type": "object", "additionalProperties": { "type": "string" } } } }, "Simulation": { "title": "Simulation", "required": [ "status", "started_at", "id", "recipe", "owner" ], "type": "object", "properties": { "status": { "title": "Status", "type": "string", "description": "The status of this task. Can be \"Running\", \"Succeeded\", \"Failed\" or \"Error\"" }, "started_at": { "title": "Started At", "type": "string", "description": "The time at which the task was started", "format": "date-time" }, "id": { "title": "Id", "type": "string", "description": "The ID of the individual workflow run." }, "recipe": { "title": "Recipe", "allOf": [ { "$ref": "#/components/schemas/RecipeSelection" } ], "description": "The recipe to use" }, "owner": { "$ref": "#/components/schemas/AccountPublic" }, "message": { "title": "Message", "type": "string", "description": "Any message produced by the task. Usually error/debugging hints." }, "finished_at": { "title": "Finished At", "type": "string", "description": "The time at which the task was completed", "format": "date-time" }, "entrypoint": { "title": "Entrypoint", "type": "string", "description": "The ID of the first task in the workflow" }, "tasks": { "title": "Tasks", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/TaskStatus" }, "default": {} }, "inputs": { "title": "Inputs", "allOf": [ { "$ref": "#/components/schemas/SimulationInputs" } ], "description": "Simulation inputs", "default": { "parameters": [], "artifacts": [] }, "example": { "parameters": [ { "name": "bounces", "value": 5 } ], "artifacts": [ { "name": "model", "source": { "type": "project-folder", "path": "path/to/model.hbjson" } } ] } }, "parallelism": { "title": "Parallelism", "type": "integer", "description": "The max number of parallel tasks allowed for this simulation", "format": "int32" } }, "description": "Workflow Status" }, "SimulationInputArtifact": { "title": "SimulationInputArtifact", "required": [ "name", "source" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the artifact" }, "source": { "title": "Source", "anyOf": [ { "$ref": "#/components/schemas/HTTPSource" }, { "$ref": "#/components/schemas/S3Source" }, { "$ref": "#/components/schemas/ProjectFolderSource" }, { "$ref": "#/components/schemas/SimulationOutputSource" } ], "description": "The source to pull the artifact from" } }, "description": "A workflow Artifact Argument" }, "SimulationInputParameter": { "title": "SimulationInputParameter", "required": [ "name", "value" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the parameter" }, "value": { "title": "Value", "type": "string", "description": "The value of the parameter" } }, "description": "A workflow Parameter Argument" }, "SimulationInputs": { "title": "SimulationInputs", "type": "object", "properties": { "parameters": { "title": "Parameters", "type": "array", "items": { "$ref": "#/components/schemas/SimulationInputParameter" }, "description": "A list of input parameters", "default": [] }, "artifacts": { "title": "Artifacts", "type": "array", "items": { "$ref": "#/components/schemas/SimulationInputArtifact" }, "description": "A list of input artifacts", "default": [], "example": [] } }, "description": "Simulation Arguments" }, "SimulationList": { "title": "SimulationList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/WorkflowStatus" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "SimulationOutputSource": { "title": "SimulationOutputSource", "required": [ "simulation" ], "type": "object", "properties": { "simulation": { "title": "Simulation", "type": "string", "description": "Simulation ID", "example": "563aeb80-af68-448a-8c41-ffa49547856b" }, "type": { "title": "Type", "pattern": "^simulation$", "type": "string", "default": "simulation", "readOnly": true }, "output": { "title": "Output", "type": "string", "description": "Simulation output artifact name", "example": "energyplus-results" }, "path": { "title": "Path", "type": "string", "description": "The path within the simulation outputs folder to a specified artifact", "example": "results/out.csv" } }, "description": "SimulationOutputSource\n\nAn artifact pulled from the outputs of another simulation" }, "StatusType": { "title": "StatusType", "enum": [ "function", "dag", "loop" ], "type": "string", "description": "An enumeration." }, "SubjectType": { "title": "SubjectType", "enum": [ "user", "team" ], "type": "string", "description": "An enumeration." }, "SubmitSimulation": { "title": "SubmitSimulation", "required": [ "recipe" ], "type": "object", "properties": { "recipe": { "title": "Recipe", "allOf": [ { "$ref": "#/components/schemas/RecipeSelection" } ], "description": "The recipe to use" }, "inputs": { "title": "Inputs", "allOf": [ { "$ref": "#/components/schemas/SimulationInputs" } ], "description": "Simulation inputs", "default": { "parameters": [], "artifacts": [] }, "example": { "parameters": [ { "name": "bounces", "value": 5 } ], "artifacts": [ { "name": "model", "source": { "type": "project-folder", "path": "path/to/model.hbjson" } } ] } } } }, "TaskArtifactReference": { "title": "TaskArtifactReference", "required": [ "name", "variable" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the task to pull output data from" }, "variable": { "title": "Variable", "type": "string", "description": "The name of the task output variable" }, "type": { "allOf": [ { "$ref": "#/components/schemas/TaskReference" } ], "default": "tasks", "readOnly": true } }, "description": "A Task Artifact Reference" }, "TaskParameterReference": { "title": "TaskParameterReference", "required": [ "name", "variable" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "description": "The name of the task to pull output data from" }, "variable": { "title": "Variable", "type": "string", "description": "The name of the task output variable" }, "type": { "allOf": [ { "$ref": "#/components/schemas/TaskReference" } ], "default": "tasks", "readOnly": true } }, "description": "A Task Parameter Reference" }, "TaskReference": { "title": "TaskReference", "enum": [ "tasks" ], "description": "An enumeration." }, "TaskStatus": { "title": "TaskStatus", "required": [ "status", "started_at", "id", "name", "type", "template_ref", "inputs", "outputs", "children", "outbound_tasks" ], "type": "object", "properties": { "status": { "title": "Status", "type": "string", "description": "The status of this task. Can be \"Running\", \"Succeeded\", \"Failed\" or \"Error\"" }, "started_at": { "title": "Started At", "type": "string", "description": "The time at which the task was started", "format": "date-time" }, "id": { "title": "Id", "type": "string", "description": "The task unique ID" }, "name": { "title": "Name", "type": "string", "description": "A human readable name for the task. Usually defined by the DAG task name but can be extended if the task is part of a loop for example. This name is unique within the boundary of the DAG/Workflow that generated it." }, "type": { "allOf": [ { "$ref": "#/components/schemas/StatusType" } ], "description": "The type of task this status is for. Can be \"function\", \"dag\" or \"loop\"", "readOnly": true }, "template_ref": { "title": "Template Ref", "type": "string", "description": "The name of the template that spawned this task" }, "inputs": { "title": "Inputs", "allOf": [ { "$ref": "#/components/schemas/Arguments" } ], "description": "The inputs used by this task" }, "outputs": { "title": "Outputs", "allOf": [ { "$ref": "#/components/schemas/Arguments" } ], "description": "The outputs produced by this task" }, "children": { "title": "Children", "type": "array", "items": { "type": "string" }, "description": "A list of child task IDs" }, "outbound_tasks": { "title": "Outbound Tasks", "type": "array", "items": { "type": "string" }, "description": "A list of the last tasks to ran in the context of this task. In the case of a DAG or a workflow this will be the last task that has been executed. It will remain empty for functions." }, "message": { "title": "Message", "type": "string", "description": "Any message produced by the task. Usually error/debugging hints." }, "finished_at": { "title": "Finished At", "type": "string", "description": "The time at which the task was completed", "format": "date-time" }, "command": { "title": "Command", "type": "string", "description": "The command used to run this task. Only applies to Function tasks." }, "boundary_id": { "title": "Boundary Id", "type": "string", "description": "This indicates the task ID of the associated template root task in which this task belongs to. A DAG task will have the id of the parent DAG for example." } }, "description": "The Status of a Workflow Task" }, "Team": { "title": "Team", "required": [ "name", "id", "slug" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "example": "Honeybee Contributors" }, "id": { "title": "Id", "type": "string", "description": "The team ID", "example": "142ee933-6110-4186-92ab-92df359aa108" }, "slug": { "title": "Slug", "type": "string", "description": "The slug of the team", "example": "honeybee-contributors" }, "description": { "title": "Description", "type": "string", "example": "The Honeybee team works on all things energy modelling" }, "member_count": { "title": "Member Count", "type": "integer", "description": "The number of members that are part of this team", "default": 0, "example": 5, "format": "int32" } } }, "TeamCreate": { "title": "TeamCreate", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "example": "Honeybee Contributors" }, "description": { "title": "Description", "type": "string", "example": "The Honeybee team works on all things energy modelling" } } }, "TeamList": { "title": "TeamList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/Team" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "TeamMember": { "title": "TeamMember", "required": [ "user", "role" ], "type": "object", "properties": { "user": { "title": "User", "allOf": [ { "$ref": "#/components/schemas/UserPublic" } ], "description": "The team member" }, "role": { "allOf": [ { "$ref": "#/components/schemas/TeamRoleEnum" } ], "description": "The role the user has within the team" } } }, "TeamMemberList": { "title": "TeamMemberList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/TeamMember" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "TeamRoleEnum": { "title": "TeamRoleEnum", "enum": [ "owner", "member" ], "type": "string", "description": "An enumeration." }, "TeamUpdate": { "title": "TeamUpdate", "required": [ "name" ], "type": "object", "properties": { "name": { "title": "Name", "type": "string", "example": "Honeybee Contributors" }, "description": { "title": "Description", "type": "string", "example": "The Honeybee team works on all things energy modelling" } } }, "UpdateAccepted": { "title": "UpdateAccepted", "type": "object", "properties": { "status": { "title": "Status", "type": "string", "default": "accepted" } }, "description": "Accepted request response for existing resource" }, "UserMetadata": { "title": "UserMetadata", "type": "object", "properties": { "company": { "title": "Company", "type": "string", "description": "The company the user works for", "example": "Ladybug Tools" }, "description": { "title": "Description", "type": "string", "description": "A short description of the user", "example": "A bot user that helps automate things at Ladybug Tools!" } } }, "UserPrivate": { "title": "UserPrivate", "required": [ "username", "id" ], "type": "object", "properties": { "username": { "title": "Username", "type": "string", "description": "The lowercase account name for this user", "example": "ladybugbot" }, "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string", "description": "The display name for this user", "example": "Ladybug Bot" }, "picture": { "title": "Picture", "type": "string", "description": "URL to the picture associated with this user", "example": "https://avatars1.githubusercontent.com/u/38131342" }, "metadata": { "$ref": "#/components/schemas/UserMetadata" } } }, "UserPublic": { "title": "UserPublic", "required": [ "username" ], "type": "object", "properties": { "username": { "title": "Username", "type": "string", "description": "The lowercase account name for this user", "example": "ladybugbot" }, "name": { "title": "Name", "type": "string", "description": "The display name for this user", "example": "Ladybug Bot" }, "picture": { "title": "Picture", "type": "string", "description": "URL to the picture associated with this user", "example": "https://avatars1.githubusercontent.com/u/38131342" } } }, "UserPublicList": { "title": "UserPublicList", "required": [ "page", "per_page", "page_count", "total_count", "resources" ], "type": "object", "properties": { "page": { "title": "Page", "type": "integer", "description": "The current page the pagination request is on", "format": "int32" }, "per_page": { "title": "Per Page", "type": "integer", "description": "The number of pages per pagination request", "format": "int32" }, "page_count": { "title": "Page Count", "type": "integer", "description": "The total number of pages", "format": "int32" }, "total_count": { "title": "Total Count", "type": "integer", "description": "The total number of resources matching the list request", "format": "int32" }, "resources": { "title": "Resources", "type": "array", "items": { "$ref": "#/components/schemas/UserPublic" } }, "next_page": { "title": "Next Page", "type": "integer", "description": "The next page, if this on is not the last", "format": "int32" } }, "description": "A list response from a pagination request" }, "ValidationError": { "title": "ValidationError", "required": [ "loc", "msg", "type" ], "type": "object", "properties": { "loc": { "title": "Location", "type": "array", "items": { "type": "string" } }, "msg": { "title": "Message", "type": "string" }, "type": { "title": "Error Type", "type": "string", "readOnly": true } } }, "WorkflowStatus": { "title": "WorkflowStatus", "required": [ "status", "started_at", "id" ], "type": "object", "properties": { "status": { "title": "Status", "type": "string", "description": "The status of this task. Can be \"Running\", \"Succeeded\", \"Failed\" or \"Error\"" }, "started_at": { "title": "Started At", "type": "string", "description": "The time at which the task was started", "format": "date-time" }, "id": { "title": "Id", "type": "string", "description": "The ID of the individual workflow run." }, "message": { "title": "Message", "type": "string", "description": "Any message produced by the task. Usually error/debugging hints." }, "finished_at": { "title": "Finished At", "type": "string", "description": "The time at which the task was completed", "format": "date-time" }, "entrypoint": { "title": "Entrypoint", "type": "string", "description": "The ID of the first task in the workflow" }, "tasks": { "title": "Tasks", "type": "object", "additionalProperties": { "$ref": "#/components/schemas/TaskStatus" }, "default": {} } }, "description": "Workflow Status" } }, "securitySchemes": { "JWTAuth": { "type": "http", "scheme": "bearer" }, "APIKeyAuth": { "type": "apiKey", "in": "header", "name": "x-pollination-token" } } } }